阅读:1096回复:5
为什么我可以得到完整的路迳.但是得不到盘符??
为什么我可以得到完整的路迳.
但是得不到盘符?? 我使用SFILTER PFILE_OBJECT file = irpSp->FileObject; if( file->FileName.Buffer && !(file->Flags & FO_DIRECT_DEVICE_OPEN) ) RtlCopyUnicodeString(&name,&file->FileName); |
|
沙发#
发布于:2005-04-06 14:54
盘符在devicobject中呀
用那个RtlDeviceT0DosName |
|
|
板凳#
发布于:2005-04-06 16:04
楼上的方法我使用过了.
PIO_STACK_LOCATION irpSp = IoGetCurrentIrpStackLocation(Irp); PFILE_OBJECT file = irpSp->FileObject; status=IoVolumeDeviceToDosName(file->DeviceObject,&dosname); if(!NT_SUCCESS(status)) { DbgPrint(\"ERROR %d\",status); } DbgPrint(\"the volume DOS name is %ws n\" , dosname.Buffer ); ExFreePool(dosname.Buffer) ; 我这段在IRP MJ READ中. 但是写了这段以后,我SFILTER DBGPRINT的所有信息都打印不出来了 [编辑 - 4/6/05 by zhjie374] |
|
地板#
发布于:2005-04-07 09:16
大家快帮助我呀,郁闷
明明看到以前的贴说这个方法可以的,我怎么就不行... |
|
地下室#
发布于:2005-04-07 12:03
你在softice中看一下你的dosname的length有没有
|
|
|
5楼#
发布于:2005-04-07 12:15
解决了,需要加几个判断,
|
|