WDF_FILEOBJECT_CONFIG结构(wdfdevice.h)

[适用于 KMDF 和 UMDF]

WDF_FILEOBJECT_CONFIG 结构包含驱动程序框架文件对象的配置信息。

语法

typedef struct _WDF_FILEOBJECT_CONFIG {
  ULONG                      Size;
  PFN_WDF_DEVICE_FILE_CREATE EvtDeviceFileCreate;
  PFN_WDF_FILE_CLOSE         EvtFileClose;
  PFN_WDF_FILE_CLEANUP       EvtFileCleanup;
  WDF_TRI_STATE              AutoForwardCleanupClose;
  WDF_FILEOBJECT_CLASS       FileObjectClass;
} WDF_FILEOBJECT_CONFIG, *PWDF_FILEOBJECT_CONFIG;

成员

Size

此结构的大小(以字节为单位)。

EvtDeviceFileCreate

指向驱动程序 EvtDeviceFileCreate 回调函数的指针,或 NULL

EvtFileClose

指向驱动程序的 EvtFileClose 回调函数的指针,或 NULL

EvtFileCleanup

指向驱动程序 EvtFileCleanup 回调函数的指针,或 NULL

AutoForwardCleanupClose

WDF_TRI_STATE类型化值。 有关此成员的详细信息,请参阅以下注释部分。

FileObjectClass

一个 WDF_FILEOBJECT_CLASS类型的值,该值标识驱动程序是否需要框架文件对象来表示应用程序或其他驱动程序创建或打开的每个文件。 此外,此值指定框架可以存储对象的句柄的位置。

注解

WDF_FILEOBJECT_CONFIG 结构用作 WdfDeviceInitSetFileObjectConfig 方法的输入。

WDF_FILEOBJECT_CONFIG 必须通过调用 WDF_FILEOBJECT_CONFIG_INIT来初始化。

AutoForwardCleanupClose框架行为

如果 AutoForwardCleanupClose 设置为 WdfTrue,则框架将执行以下作:
  • 如果驱动程序不提供 EvtDeviceFileCreate 回调函数,并且未调用 WdfDeviceConfigureRequestDispatching 来设置 I/O 队列以接收文件创建请求,则框架会将文件创建请求转发到下一个较低的驱动程序。 如果驱动程序提供回调函数或队列来处理请求,则框架不会转发文件创建请求,因此驱动程序必须 转发完成取消 请求。
  • 在调用驱动程序的 EvtFileCleanupEvtFileClose 回调函数后,框架会将文件清理和关闭请求发送到下一个较低的驱动程序。
如果 AutoForwardCleanupClose 设置为 WdfFalse,则框架不会转发文件创建、清理或关闭请求。 相反,框架会完成驱动程序的请求。

如果 AutoForwardCleanupClose 设置为 WdfUseDefault,则框架将 WdfTrue 行为用于筛选器驱动程序,WdfFalse 行为。

AutoForwardCleanupClose 驱动程序行为

驱动程序的本地 I/O 目标必须始终接收相同数量的 I/O 请求,请求类型为 WdfRequestTypeCreateWdfRequestTypeCleanup,以及 WdfRequestTypeClose。 因此,如果驱动程序提供 EvtDeviceFileCreate 回调函数或接收文件创建请求的 I/O 队列,则必须使用以下规则:
  • 如果驱动程序 AutoForwardCleanupClose 设置为 WdfTrue,驱动程序必须将所有文件创建请求转发到本地 I/O 目标。 必须遵循此规则,因为框架会将所有清理和关闭请求转发到本地目标,无论驱动程序是否 EvtFileCleanupEvtFileClose 回调函数。
  • 如果驱动程序 AutoForwardCleanupClose 设置为 WdfFalse,驱动程序必须 将文件创建请求转发到本地 I/O 目标。 必须遵循此规则,因为框架 不会 将清理和关闭请求转发到本地目标,无论驱动程序是否提供 EvtFileCleanupEvtFileClose 回调函数。
  • 如果驱动程序 AutoForwardCleanupClose 设置为 WdfDefault,则驱动程序必须遵循 WdfTrue 规则(如果是筛选器驱动程序)。 驱动程序必须遵循 WdfFalse(如果它是函数驱动程序)的规则。

要求

要求 价值
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfdevice.h (包括 Wdf.h)