Windows Native API に興味があります。私はネットを検索してきましたが、ユーザーモードからネイティブ API 関数を呼び出す例を見つけることができませんでした。これが何を伴うかについての基本的な理解があると思います。具体的には、プログラムで定数とネイティブ API 関数を定義し、GetProcAddress を使用して ntdll.dll で関数を見つけ、関数を呼び出す必要があります。
これは正しいですか、誰かが私を正しい方向に導くことができますか? サンプルコードは、まったく見つからないので、私の一日になります。
ここでこのコードに出くわしました(http://www.eggheadcafe.com/software/aspnet/31520494/native-application--ntc.aspx)が、カーネルモードで動作することを意図しているようです:
NTSTATUS ntStatus = STATUS_SUCCESS;
UNICODE_STRING szPath = {0};
OBJECT_ATTRIBUTES Attr = {0};
IO_STATUS_BLOCK IoStatusBlock = {0};
HANDLE hBeep = 0;
RtlInitUnicodeString(&szPath, L"\\??\\C:\\A.TXT");
InitializeObjectAttributes(&Attr, &szPath, 0, NULL, NULL);
ntStatus = NtCreateFile(&hBeep, GENERIC_READ, &Attr, &IoStatusBlock, NULL,
0, FILE_SHARE_READ, FILE_OPEN, 0, NULL, 0);
if (hBeep != NULL)
{
NtClose(ntStatus);
ユーザーモードで動作するように、このコードをどのように変更できますか? おそらくこの時点で推測されているように、私はc ++で作業しています。
前もって感謝します。