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) |
库 | Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI 符合性规则 | DriverCreate(kmdf),FileObjectConfigured(kmdf),InvalidReqAccess(kmdf),InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |