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 回调函数调用此函数,则当设备停止时,将自动启用接口。 为防止自动启用,驱动程序可以使用设置为 FALSEIsInterfaceEnabled 参数调用 WdfDeviceSetDeviceInterfaceStateEx。
如果驱动程序在设备启动后调用此函数,接口将保持禁用状态。 驱动程序可以根据需要调用 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) |
库 | Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | DriverCreate(kmdf),KmdfIrql(kmdf),KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf) |