IWDFDevice::CreateDeviceInterface 方法 (wudfddi.h)

[警告: 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

另请参阅

IWDFDevice

IWDFDevice::AssignDeviceInterfaceState