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


Функция WdfPdoInitAssignRawDevice (wdfpdo.h)

[Применяется только к KMDF]

Метод WdfPdoInitAssignRawDevice указывает, что вызывающий драйвер может поддерживать указанное устройство в необработанном режиме.

Синтаксис

NTSTATUS WdfPdoInitAssignRawDevice(
  [in] PWDFDEVICE_INIT DeviceInit,
  [in] const GUID      *DeviceClassGuid
);

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT .

[in] DeviceClassGuid

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

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

Дополнительные сведения см. в разделе "Примечания".

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

Если операция выполнена успешно, метод возвращает STATUS_SUCCESS. В противном случае возвращается STATUS_INVALID_PARAMETER.

Комментарии

Драйвер должен вызвать WdfPdoInitAssignRawDevice перед вызовом WdfDeviceCreate. Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Создание объекта устройства платформы.

Реестр может содержать значения, которые переопределяют значения, заданные драйвером при вызове WdfDeviceInitAssignSDDLString, WdfDeviceInitSetDeviceType, WdfDeviceInitSetCharacteristics и WdfDeviceInitSetExclusive. Параметр DeviceClassGuid метода WdfPdoInitAssignRawDevice указывает GUID, который идентифицирует раздел реестра, содержащий переопределяемые значения. Параметр DeviceClassGuid определяет только раздел реестра и фактически не задает класс настройки устройства для устройства. Раздел INF Version в INF-файле вашего устройства и драйвера задает класс установки устройства. Как правило, GUID параметра DeviceClassGuid должен соответствовать ИДЕНТИФИКАТОРу GUID, указанному в разделе INF Version .

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

Примеры

Следующий фрагмент кода из примера драйвера kmdf_enumswitches указывает, что драйвер может поддерживать указанное устройство в режиме необработанного кода.

NTSTATUS  status;
DEFINE_GUID(GUID_DEVCLASS_MYUNIQUEID,
0xf149fe88, 0x f6cc, 0x47e3, 0x85, 0x94, 0xe2, 0xaa, 0xb6, 0xe0, 0x3b, 0xdf);

status = WdfPdoInitAssignRawDevice(
                                   pDeviceInit,
                                   &GUID_DEVCLASS_MYUNIQUEID
                                   );

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfpdo.h (включая Wdf.h)
Библиотека Wdf01000.sys (см. раздел Управление версиями библиотеки платформы).
IRQL PASSIVE_LEVEL
Правила соответствия DDI ChildDeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)

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

WdfDeviceInitAssignSDDLString

WdfDeviceInitSetCharacteristics

WdfDeviceInitSetDeviceType

WdfDeviceInitSetExclusive