Функция WdfDeviceRetrieVeDeviceInterfaceString (wdfdevice.h)

[Применимо к KMDF и UMDF]

Метод WdfDeviceRetrieVeDeviceInterfaceString извлекает символьное имя ссылки, назначенное операционной системой интерфейсу устройства, зарегистрированному драйвером для указанного устройства.

Синтаксис

NTSTATUS WdfDeviceRetrieveDeviceInterfaceString(
  [in]           WDFDEVICE        Device,
  [in]           const GUID       *InterfaceClassGUID,
  [in, optional] PCUNICODE_STRING ReferenceString,
  [in]           WDFSTRING        String
);

Параметры

[in] Device

Дескриптор объекта устройства платформы.

[in] InterfaceClassGUID

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

[in, optional] ReferenceString

Указатель на структуру UNICODE_STRING , описывающую ссылочные строки для интерфейса устройства. Этот параметр является необязательным и может иметь значение NULL , если драйвер не указал ссылочной строки при вызове WdfDeviceCreateDeviceInterface.

[in] String

Дескриптор для объекта строки платформы. Платформа назначит строковую строку Юникода имени символьной ссылки строке объекта .

Возвращаемое значение

WdfDeviceRetrieVeDeviceInterfaceString возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае метод может вернуть одно из следующих значений:

Код возврата Описание
STATUS_INVALID_DEVICE_REQUEST

WdfDeviceRetrieveDeviceInterfaceString не был вызван в IRQL = PASSIVE_LEVEL.

STATUS_INVALID_PARAMETER
Указан недопустимый параметр.
STATUS_INVALID_DEVICE_REQUEST
Указанный объект устройства инициализирован WdfControlDeviceInitAllocate.
STATUS_OBJECT_NAME_NOT_FOUND
Не удалось найти интерфейс устройства, соответствующий указанному GUID и ссылочной строке.
STATUS_INVALID_DEVICE_STATE
Драйвер называется WdfDeviceCreateDeviceInterface, но система еще не назначила символьное имя ссылки интерфейсу устройства.
 

WdfDeviceRetrieveDeviceInterfaceString также может возвращать другие значения NTSTATUS.

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

Комментарии

Дополнительные сведения об интерфейсах устройств см. в разделе Использование интерфейсов устройств.

Примеры

В следующем примере кода создается строковый объект, а затем извлекается символьное имя указанного интерфейса устройства.

NTSTATUS status;
WDFSTRING string;

status = WdfStringCreate(
                         NULL,
                         WDF_NO_OBJECT_ATTRIBUTES,
                         &string
                         );
if (NT_SUCCESS(status)) {
    status = WdfDeviceRetrieveDeviceInterfaceString(
                         Device,
                         &GUID_DEVINTERFACE_DDI_TEST1,
                         NULL,
                         string
                         );
    if (!NT_SUCCESS(status)) {
        return status;
    }
}

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия 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

WdfControlDeviceInitAllocate

WdfDeviceCreateDeviceInterface

WdfStringCreate