[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 没有将新功能添加到 UMDF 1,并且对较新版本的 Windows 10 上的 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅 UMDF入门 。]
CreateDeviceInterface 方法创建设备接口类的实例。
语法
HRESULT CreateDeviceInterface(
[in] LPCGUID pDeviceInterfaceGuid,
[in, optional] PCWSTR pReferenceString
);
参数
[in] pDeviceInterfaceGuid
指向设备接口类的 GUID 的指针。
[in, optional] pReferenceString
指向包含设备接口实例名称的 NULL终止字符串的指针。 此参数是可选的。 如果驱动程序不需要提供名称,驱动程序可以传递 NULL。 如果驱动程序必须提供名称,则驱动程序传递的字符串不得包含任何路径分隔符(“/”或“\”)。
返回值
CreateDeviceInterface 如果作成功,则返回S_OK。 否则,此方法返回在 Winerror.h 中定义的错误代码之一。
言论
驱动程序可以使用 pReferenceString 参数来区分单个接口的不同实例。 换句话说,如果驱动程序针对同一设备接口类调用 CreateDeviceInterface 两次,驱动程序可以为每个 pReferenceString 指定不同的字符串。 当打开接口的实例时,框架会将实例的引用字符串传递给驱动程序。 引用字符串追加到接口实例名称的路径组件。 然后,驱动程序可以使用引用字符串来确定正在打开的设备接口类的实例。
如果 CreateDeviceInterface 成功,则会禁用接口的初始状态。 如果创建成功,框架将根据设备的 PnP 状态自动启用和禁用接口。 此外,驱动程序可以通过调用 IWDFDevice::AssignDeviceInterfaceState来根据需要禁用和重新启用设备接口。
有关设备接口的详细信息,请参阅 在基于 UMDF 的驱动程序中使用设备接口。
例子
下面的代码示例演示如何创建设备接口实例。 在此示例中,驱动程序显式调用 IWDFDevice::AssignDeviceInterfaceState 以启用接口。
//
// Create the device interface.
//
HRESULT hr;
if (S_OK == hr) {
hr = m_FxDevice->CreateDeviceInterface(
&GUID_DEVINTERFACE_OSRUSBFX2,
NULL);
}
if (S_OK == hr) {
hr = m_FxDevice->AssignDeviceInterfaceState(
&GUID_DEVINTERFACE_OSRUSBFX2,
NULL,
TRUE);
}
要求
要求 | 价值 |
---|---|
终止支持 | 在 UMDF 2.0 及更高版本中不可用。 |
目标平台 | 桌面 |
最低 UMDF 版本 | 1.5 |
标头 | wudfddi.h (包括 Wudfddi.h) |
DLL | WUDFx.dll |