Мне очень интересно, какой API-интерфейс для Windows. Я искал сеть и не смог найти пример вызова функции Native API из пользовательского режима. Я считаю, что у меня есть общее понимание того, что это влечет за собой - в частности, я должен определить константы и собственную функцию API в своей программе и использовать GetProcAddress для поиска функции в файле ntdll.dll, а затем вызвать функцию.Доступ к внутреннему API-интерфейсу Windows из пользовательского режима
Это правильно, и может ли кто-нибудь направить меня в правильном направлении? Образец кода сделает мой день, поскольку я не могу найти абсолютно ничего.
Я наткнулся на этот код здесь (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++, так как вы, вероятно, догадались об этом.
Заранее спасибо.