ufxFdoInit 函数 (ufxclient.h)
初始化客户端驱动程序随后在调用 WdfDeviceCreate 时提供的WDFDEVICE_INIT结构。
语法
NTSTATUS UfxFdoInit(
[in] WDFDRIVER WdfDriver,
[in, out] PWDFDEVICE_INIT DeviceInit,
[in, out] PWDF_OBJECT_ATTRIBUTES FdoAttributes
);
参数
[in] WdfDriver
驱动程序的 WDF 驱动程序对象的句柄,该句柄是驱动程序从以前调用 WdfDriverCreate 或 WdfGetDriver 时获取的。
[in, out] DeviceInit
指向 WDFDEVICE_INIT 结构的指针。
[in, out] FdoAttributes
指向调用方分配 WDF_OBJECT_ATTRIBUTES 结构的指针,该结构描述 的对象属性
返回值
如果操作成功,该方法将返回STATUS_SUCCESS或NT_SUCCESS (状态) 等于 TRUE 的另一个状态值。 否则,它将返回一个状态值,NT_SUCCESS (状态) 等于 FALSE。
注解
客户端驱动程序在其 EvtDriverDeviceAdd 回调函数中接收指向框架分配WDFDEVICE_INIT结构的指针。 然后,它使用此指针调用 UfxFdoInit ,然后调用 WdfDeviceCreate 来创建 WDFDEVICE 对象。
默认情况下,对于 WDF 驱动程序,设备的功能驱动程序是电源策略所有者。
以下代码片段演示如何调用 UfxFdoInit。
NTSTATUS
UfxClientDeviceCreate(
_In_ WDFDRIVER Driver,
_In_ PWDFDEVICE_INIT DeviceInit
)
/*++
Routine Description:
Worker routine called to create a device and its software resources.
Arguments:
Driver - WDF driver object
DeviceInit - Pointer to an opaque init structure. Memory for this
structure will be freed by the framework when WdfDeviceCreate
succeeds. So don't access the structure after that point.
Return Value:
Appropriate NTSTATUS value
--*/
{
WDF_OBJECT_ATTRIBUTES DeviceAttributes;
WDFDEVICE WdfDevice;
PAGED_CODE();
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&DeviceAttributes, CONTROLLER_CONTEXT);
//
// Do UFX-specific initialization
//
Status = UfxFdoInit(Driver, DeviceInit, &DeviceAttributes);
//
// Proceed to WdfDeviceCreate
//
...
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 |
目标平台 | Windows |
标头 | ufxclient.h |
Library | ufxstub.lib |
IRQL | PASSIVE_LEVEL |