阅读:1737回复:3
不死心,问根据盘符获取设备名获取问题
status = ZwQuerySymbolicLinkObject(
linkhandle, &target, &length); KdPrint(("target= \"%wZ\"",&target)); Dbgview显示结果为target=“?”。。。。。。。。。。。。。。 有哪位大牛帮我下吧,我不知哪里出问题了? |
|
沙发#
发布于:2008-12-16 21:31
是这个问题太低级了吗?怎么没人帮我
|
|
板凳#
发布于:2008-12-16 22:17
你都不把你传下去内容发出来,怎么看哪
|
|
地板#
发布于:2008-12-17 15:36
程序大概是这样的:
InitializeObjectAttributes( &attrib, &symbolic, OBJ_KERNEL_HANDLE | OBJ_CASE_INSENSITIVE, NULL,NULL); fsd=attrib.ObjectName; mod=*fsd; KdPrint(("ObjectName= \"%wZ\"",&mod));//打印出objectname=\DosDevices\c: status = ZwOpenSymbolicLinkObject( &linkhandle, GENERIC_READ, &attrib); if( !NT_SUCCESS(status)) { KdPrint(("ZwOpenSymbolicLinkObject failed")); // return NULL; } RtlInitEmptyUnicodeString(&target, buf, 8 * sizeof(WCHAR)); status = ZwQuerySymbolicLinkObject( linkhandle, &target, &length); if( status == STATUS_BUFFER_TOO_SMALL) { dbuf = ExAllocatePool(NonPagedPool, length + 2); if( NULL == dbuf ) { KdPrint(("dbuf open failed")); ZwClose(linkhandle); // return NULL; } RtlInitEmptyUnicodeString( &target, dbuf, length + 2); status = ZwQuerySymbolicLinkObject( linkhandle, &target, &length); } 调用符号连接的函数来通过盘符获取设备名需要我们把符号连接建立起来吗? 大牛帮帮我吧! |
|