すっきりした。

色々書き直したら SysInfo のこーどよりずっとすっきりしました。

__readmsr() が使えるのは便利ですねぇ。 


NTSTATUS
ReadMSR( ULONG IoctlCode,
	void *lpInBuffer,
	ULONG nInBufferSize,
	void *lpOutBuffer,
	ULONG nOutBufferSize,
	ULONG* lpBytesReturned)
{
#ifndef _NT4
	try{
#endif
	ULONGLONG data = __readmsr(*(ULONG*)lpInBuffer);
	memcpy((PULONG)lpOutBuffer, &data, 8);
	*lpBytesReturned = 8;
	return STATUS_SUCCESS;
#ifndef _NT4
	}
	except(EXCEPTION_EXECUTE_HANDLER)
	{
	*lpBytesReturned = 0;
	return STATUS_UNSUCCESSFUL;
	}
#endif
}

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です