WdfDeviceInitSetFileObjectConfig 函数 (wdfdevice.h)
[适用于 KMDF 和 UMDF]
WdfDeviceInitSetFileObjectConfig 方法注册事件回调函数并设置驱动程序框架文件对象的配置信息。
语法
void WdfDeviceInitSetFileObjectConfig(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PWDF_FILEOBJECT_CONFIG FileObjectConfig,
[in, optional] PWDF_OBJECT_ATTRIBUTES FileObjectAttributes
);
参数
[in] DeviceInit
指向 WDFDEVICE_INIT 结构的指针。
[in] FileObjectConfig
指向调用方分配 的WDF_FILEOBJECT_CONFIG 结构的指针。
[in, optional] FileObjectAttributes
指向调用方分配 的WDF_OBJECT_ATTRIBUTES 结构的指针,该结构包含驱动程序为驱动程序的框架文件对象提供的对象属性。 此参数是可选的,可以WDF_NO_OBJECT_ATTRIBUTES。
返回值
无
备注
如果驱动程序调用 WdfDeviceInitSetFileObjectConfig,则必须在调用 WdfDeviceCreate 之前执行此操作。
默认情况下,每个框架文件对象都从其父设备对象继承其同步范围和执行级别。 如果父设备对象的同步范围和执行级别不是 WdfSynchronizationScopeNone 和 WdfExecutionLevelPassive,则驱动程序必须在 FileObjectAttributes 参数指定的WDF_OBJECT_ATTRIBUTES结构中设置 WdfSynchronizationScopeNone 和 WdfExecutionLevelPassive 值。 否则, WdfDeviceCreate 将返回错误状态代码。 有关同步范围和执行级别的详细信息,请参阅 使用自动同步。
有关调用 WdfDeviceCreate 的详细信息,请参阅 创建框架设备对象。
有关框架文件对象的详细信息,请参阅 框架文件对象
示例
下面的代码示例初始化 WDF_OBJECT_ATTRIBUTES 结构和 WDF_FILEOBJECT_CONFIG 结构,然后调用 WdfDeviceInitSetFileObjectConfig。
WDF_OBJECT_ATTRIBUTES attributes;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.SynchronizationScope = WdfSynchronizationScopeNone;
WDF_FILEOBJECT_CONFIG_INIT(
&deviceConfig,
MyEvtDeviceFileCreate,
MyEvtFileClose,
WDF_NO_EVENT_CALLBACK // No cleanup callback function
);
WdfDeviceInitSetFileObjectConfig(
DeviceInit,
&deviceConfig,
&attributes
);
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfdevice.h (包括 Wdf.h) |
Library | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | ChildDeviceInitAPI (kmdf) 、 ControlDeviceInitAPI (kmdf) 、 DeviceInitAPI (kmdf) 、 DriverCreate (kmdf) 、 FileObjectConfigured (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) , PdoDeviceInitAPI (kmdf) |