WdfRequestGetFileObject 函数 (wdfrequest.h)
[适用于 KMDF 和 UMDF]
WdfRequestGetFileObject 方法检索与指定 I/O 请求关联的框架文件对象。
语法
WDFFILEOBJECT WdfRequestGetFileObject(
[in] WDFREQUEST Request
);
参数
[in] Request
框架请求对象的句柄。
返回值
如果框架已为指定请求创建文件对象,则 WdfRequestGetFileObject 返回框架文件对象的句柄。 否则,此方法返回 NULL。 (驱动程序通常仅当在 WDF_FILEOBJECT_CONFIG 结构中设置 WdfFileObjectCanBeOptional 位标志时,才测试 NULL 返回值。)
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
注解
如果以下任一情况, WdfRequestGetFileObject 方法返回 NULL :
- 驱动程序尚未调用 WdfDeviceInitSetFileObjectConfig ,并指定了导致框架创建文件对象的 WDF_FILEOBJECT_CLASS 值。
- 另一个驱动程序向驱动程序发送了读取、写入或 I/O 控制请求,而无需先发送 WdfRequestTypeCreate 的请求类型。
示例
下面的代码示例获取 I/O 请求的文件对象,然后调用驱动程序定义的例程,该例程获取指向文件对象的上下文空间的指针。
VOID
MyEvtIoWrite(
IN WDFQUEUE Queue,
IN WDFREQUEST Request,
IN size_t Length
)
{
WDFFILEOBJECT fileObject;
PFILE_OPEN_CONTEXT pOpenContext;
fileObject = WdfRequestGetFileObject(Request);
pOpenContext = GetFileObjectContext(fileObject)->OpenContext;
}
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfrequest.h (包括 Wdf.h) |
Library | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI 符合性规则 | DriverCreate (kmdf) 、 FileObjectConfigured (kmdf) 、 InvalidReqAccess (kmdf) 、 InvalidReqAccessLocal () kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、KmdfIrqlExplicit (kmdf) |