BSOD? 今天蓝屏蓝疯了 首先是
NTSTATUS
RtlVolumeDeviceToDosName(
IN PVOID VolumeDeviceObject,
OUT PUNICODE_STRING DosName);
NTSTATUS
IoVolumeDeviceToDosName(
IN PVOID VolumeDeviceObject,
OUT PUNICODE_STRING DosName);
这两个函数都蓝屏 貌似原因是这函数会引发IRP_MT_CREATE 导致了重入
可惜我不会调试啊 所以只能先避免使用了
再就是
NTSTATUS
ObQueryNameString(
IN PVOID Object,
OUT POBJECT_NAME_INFORMATION ObjectNameInfo,
IN ULONG Length,
OUT PULONG ReturnLength
);
这个函数不会使用我给分配的ObjectNameInfo->Name.Buffer
而是会直接在ObjectNameInfo后进行数据写入 也是在网上看到的
解决的方法是这样:
POBJECT_NAME_INFORMATION ObjectNameInfo;
CHAR Buf[256];
ObjectNameInfo=(POBJECT_NAME_INFORMATION )Buf;
这样调用就不会蓝了
我模仿sfilter中写的
开始发现我的驱动能够蓝屏感到开心
现在蓝屏让我抓狂 !!!