Поделиться через


Метод IWDFDevice::CreateDeviceInterface (wudfddi.h)

[ предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе Начало работы с UMDF.]

Метод CreateDeviceInterface создает экземпляр класса интерфейса устройства.

Синтаксис

HRESULT CreateDeviceInterface(
  [in]           LPCGUID pDeviceInterfaceGuid,
  [in, optional] PCWSTR  pReferenceString
);

Параметры

[in] pDeviceInterfaceGuid

Указатель на GUID для класса интерфейса устройства.

[in, optional] pReferenceString

Указатель на строку NULL-terminated, содержащую имя экземпляра интерфейса устройства. Этот параметр является необязательным. Драйвер может передать 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 (include Wudfddi.h)
DLL WUDFx.dll

См. также

IWDFDevice

IWDFDevice::AssignDeviceInterfaceState