Как сделать ссылку на NTQueryKey в режиме ядра - PullRequest
1 голос
/ 13 октября 2010

Из жизни я не могу понять, как разрешить объявленное значение NTQueryKey в моем драйвере устройства. Я искал форум с драйверами устройств, но не нашел.

Может кто-нибудь указать мне правильное место? OSR не очень отзывчив на такие глупые вопросы, как ссылки на NTQueryKey.

Вот мой прототип:

NTSYSAPI NTSTATUS NTAPI NtQueryKey(HANDLE, KEY_INFORMATION_CLASS, PVOID, ULONG, ULONG *);

и он прекрасно компилируется, но компоновщику это не нравится.

Спасибо

Ответы [ 2 ]

2 голосов
/ 13 октября 2010

Функции NtXXXX не должны вызываться из режима ядра. Вместо этого используйте функции ZwXXXX. В вашем случае вы хотите ZwQueryKey. Он имеет ту же сигнатуру, что и NtQueryKey, но он выполняет действия на x86, необходимые для общения в режиме ядра, и предоставляется ntoskrnl.exe, а не ntdll.dll.

0 голосов
/ 13 октября 2010

В режиме ядра вы ссылаетесь на эквивалентные функции Zw .... Смотрите здесь . Функции NT .... вызываются из пользовательского режима (например, подсистема Win32 будет вызывать функции NT ...).

...