WdfDeviceCreateDeviceInterface 函数 (wdfdevice.h)
[适用于 KMDF 和 UMDF]
WdfDeviceCreateDeviceInterface 方法为指定设备创建设备接口。
语法
NTSTATUS WdfDeviceCreateDeviceInterface(
[in] WDFDEVICE Device,
[in] const GUID *InterfaceClassGUID,
[in, optional] PCUNICODE_STRING ReferenceString
);
参数
[in] Device
框架设备对象的句柄。
[in] InterfaceClassGUID
指向标识设备接口类的 GUID 的指针。
[in, optional] ReferenceString
指向描述设备接口的引用字符串 的 UNICODE_STRING 结构的指针。 字符串不得包含任何路径分隔符 (“/”或“\”) 。 此参数是可选的,可以为 NULL。 有关更多信息,请参见下面的“备注”部分。
返回值
如果操作成功,WdfDeviceCreateDeviceInterface 将返回STATUS_SUCCESS。
有关 WdfDeviceCreateDeviceInterface 可以返回的其他返回值的列表,请参阅 框架对象创建错误。
该方法可能会返回其他 NTSTATUS 值。
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
注解
驱动程序可以从EVT_WDF_DRIVER_DEVICE_ADD或设备启动后调用 WdfDeviceCreateDeviceInterface。
如果驱动程序从其 EVT_WDF_DRIVER_DEVICE_ADD 回调函数调用此函数,则接口会在设备启动时自动启用,并在设备停止时禁用。 若要阻止自动启用,驱动程序可以调用 WdfDeviceSetDeviceInterfaceStateEx ,并将 IsInterfaceEnabled 参数设置为 FALSE。
如果驱动程序在设备启动后调用此函数,则接口将保持禁用状态。 驱动程序可以根据需要调用 WdfDeviceSetDeviceInterfaceState 。
驱动程序可以使用 ReferenceString 参数来区分单个接口的不同实例。 换句话说,如果驱动程序为同一设备接口类调用 WdfDeviceCreateDeviceInterface 两次,则驱动程序每次都可以指定不同的 ReferenceString 参数。 打开接口的实例时,I/O 管理器会将实例的引用字符串传递给驱动程序。 引用字符串追加到接口实例名称的路径组件。 然后,驱动程序可以使用引用字符串来确定要打开的设备接口类的哪个实例。
有关设备接口和 WdfDeviceCreateDeviceInterface 方法的详细信息,请参阅 使用设备接口。
示例
以下示例为设备注册 COM 端口接口类。
NTSTATUS status;
status = WdfDeviceCreateDeviceInterface(
Device,
(LPGUID) &GUID_DEVINTERFACE_COMPORT,
NULL
);
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfdevice.h (包括 Wdf.h) |
Library | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) |