Мне очень любопытно, что Windows Native API. Я искал по сети и не смог найти пример вызова функции Native 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);
Как этот код можно изменить для работы в пользовательском режиме? Я работаю на С ++, как вы, вероятно, догадались по этому вопросу.
Заранее спасибо.