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


Функция 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.

Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

Драйвер может вызвать WdfDeviceCreateDeviceInterface из EVT_WDF_DRIVER_DEVICE_ADD или после запуска устройства.

Если драйвер вызывает эту функцию из функции обратного вызова EVT_WDF_DRIVER_DEVICE_ADD , интерфейс автоматически включается при запуске устройства и отключается при остановке устройства. Чтобы предотвратить автоматическое включение, драйвер может вызвать WdfDeviceSetDeviceInterfaceStateEx с параметром IsInterfaceEnabled, равнымFALSE.

Если драйвер вызывает эту функцию после запуска устройства, интерфейс остается отключенным. Драйвер может вызывать WdfDeviceSetDeviceInterfaceState соответствующим образом.

Драйверы могут использовать параметр ReferenceString для различения разных экземпляров одного интерфейса. Иными словами, если драйвер дважды вызывает WdfDeviceCreateDeviceInterface для одного класса интерфейса устройства, драйвер может каждый раз указать другой параметр ReferenceString . При открытии экземпляра интерфейса диспетчер ввода-вывода передает ссылочной строке экземпляра драйверу. Строка ссылки добавляется к компоненту пути имени экземпляра интерфейса. Затем драйвер может использовать ссылочные строки, чтобы определить, какой экземпляр класса интерфейса устройства открывается.

Дополнительные сведения об интерфейсах устройств и методе 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)

См. также раздел

UNICODE_STRING

WdfDeviceSetDeviceInterfaceState