怎么调用NTDLL.DLL中的函数ZwQueryDirectoryFile
extern NTSYSAPI NTSTATUS NTAPI ZwQueryDirectoryFile(
IN HANDLE hFile,
IN HANDLE hEvent OPTIONAL,
IN PIO_APC_ROUTINE IoApcRoutine OPTIONAL,
IN PVOID IoApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK pIoStatusBlock,
OUT PVOID FileInformationBuffer,
IN ULONG FileInformationBufferLength,
IN FILE_INFORMATION_CLASS FileInfoClass,
IN BOOLEAN bReturnOnlyOneEntry,
IN PUNICODE_STRING PathMask OPTIONAL,
IN BOOLEAN bRestartQuery);
然后调用该函数,编译后出现以下连接错误:
error LNK2001: unresolved external symbol "__declspec(dllimport) long __stdcall ZwQueryDirectoryFile(void *,void *,void (__stdcall*)(void *,struct _IO_STATUS_BLOCK *,unsigned long),void *,struct _IO_STATUS_BLOCK *,void *,unsigned long,enu
m _FILE_INFORMATION_CLASS,unsigned char,struct _UNICODE_STRING *,unsigned char)" (__imp_?ZwQueryDirectoryFile@@YGJPAX0P6GX0PAU_IO_STATUS_BLOCK@@K@Z010KW4_FILE_INFORMATION_CLASS@@EPAU_UNICODE_STRING@@E@Z)
.\objchk\i386\File.sys : fatal error LNK1120: 1 unresolved externals
这个问题其实已经有人问过了,人家告诉说:
1.到DDK中找到ntdll.lib
2.链接ntdll.lib
3.制作头文件,该头文件需要定义函数原型中需要的结构,可以从DDK中参考,
4.定义需要使用的函数的原型,声明 extern "C"或项目使用C语法编译。
我是一菜鸟。对于2、3、4步骤我实在不知道该怎么弄。 能请各位知道的说的详细一些吗?
期待着您能给我指点一下,qq:165389837.mail:consel@qq.com. PLEASE!!!