阅读:2817回复:2
ZwDeviceIoControlFile的句柄如何获得!!!
XP ifs kit中有osr的文档,其中有一片是irpman,我读了其中的一段代码,我想LOCK_VOLUME比如说lock c:,通过包含入ntifs.h我的程序能够编译,连接了,但是我调用 zwdeviceiofilecontrol,所需的第一个参数我无法获得.
我试图通过zwcreatefile来获取 KUstring l_str(L\"\\\\Device\\\\FileDisk\\\\FileDisk0\"); InitializeObjectAttributes(&object_attributes, &l_str.UnicodeString(), //OBJ_KERNEL_HANDLE, OBJ_CASE_INSENSITIVE, 0, 0); IO_STATUS_BLOCK iosb; status = ZwCreateFile(l_hfile, GENERIC_READ | SYNCHRONIZE, &object_attributes, &iosb, 0, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_WRITE | FILE_SHARE_READ, //FILE_SHARE_VALID_FLAGS, FILE_OPEN, FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, 0, 0); switch(iosb.Information) { case FILE_CREATED: { int i = 0; break; } case FILE_OPENED: { int i = 0; break; } case FILE_OVERWRITTEN: { int i = 0; break; } case FILE_SUPERSEDED: { int i = 0; break; } case FILE_EXISTS: { int i = 0; break; } case FILE_DOES_NOT_EXIST: { int i = 0; break; } } 我发现每次都市落入FILE_SUPERSEDED,而status显示0xc0000005就是拒绝访问。 任何提示,或者帮助,都非常感谢!! |
|
沙发#
发布于:2003-04-07 01:01
\\\\Device\\\\FileDisk\\\\FileDisk0 ???????
|
|
板凳#
发布于:2003-04-09 16:02
不好意思,应该是\"\\\\??\\\\X:\" 其中x是filedisk生成的
|
|