【发布时间】:2013-03-11 03:20:29
【问题描述】:
我正在使用pFileObject->FileName来获取内核模式过滤驱动程序中打开的文件名,this返回的文件名格式为UNICODE_STRING强>。我想把它转换成std String。什么方法???如果可能,请提供示例... 下面是代码
NTSTATUS FsFilterDispatchCreate(
__in PDEVICE_OBJECT DeviceObject,
__in PIRP Irp
)
{
PFILE_OBJECT pFileObject = IoGetCurrentIrpStackLocation(Irp)->FileObject;
DbgPrint("%wZ\n", &pFileObject->FileName);
return FsFilterDispatchPassThrough(DeviceObject, Irp);
}
【问题讨论】:
-
在设备驱动程序中你永远不应该做的两件事:假设默认的 new 操作符有效并且假设有一个有效的代码页。 不要在驱动程序中使用 std::string。
-
正如汉斯所说,这个计划是行不通的。内核模式下没有MSVCR90.DLL。
-
@Hans 我不打算在 KM 中使用 std::string 而是在 UM 中使用它
标签: windows driver kernel-mode filter-driver