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


структура KSDEVICE_DESCRIPTOR (ks.h)

Структура KSDEVICE_DESCRIPTOR описывает характеристики конкретного устройства.

Синтаксис

typedef struct _KSDEVICE_DESCRIPTOR {
  const KSDEVICE_DISPATCH   *Dispatch;
  ULONG                     FilterDescriptorsCount;
  const KSFILTER_DESCRIPTOR const * * FilterDescriptors;
  ULONG                     Version;
  ULONG                     Flags;
  PVOID                     Alignment;
} KSDEVICE_DESCRIPTOR, *PKSDEVICE_DESCRIPTOR;

Члены

Dispatch

Указатель на таблицу отправки клиента для этого устройства. Эта таблица диспетчеризации содержит функции диспетчеризации клиента для сообщений PNP, таких как Add, Start, Stop, Remove. Клиенты не обязаны предоставлять таблицу отправки, если они не хотят получать обратные вызовы для сообщений PNP, описанных в таблице диспетчеризации. Любой элемент таблицы отправки может иметь значение NULL , чтобы указать, что клиент не хочет получать уведомления для этого конкретного сообщения. Дополнительные сведения см. в разделе KSDEVICE_DISPATCH.

FilterDescriptorsCount

Этот элемент содержит количество дескрипторов фильтра для этого устройства, которое будет указано в элементе FilterDescriptors . Ноль является допустимым значением для этого элемента; Клиенты могут динамически создавать фабрики фильтров с помощью функции KsCreateFilterFactory , а не статически описывать их в дескрипторове устройства.

FilterDescriptors

Указатель на массив дескрипторов фильтров, описывающих фильтры, которые могут быть созданы этим устройством. Этот элемент может иметь значение NULL , если FilterDescriptorsCount равно нулю. Дополнительные сведения см. в разделе KSFILTER_DESCRIPTOR.

Version

Значение типа ULONG. Это должно быть одно и только одно из значений в следующей таблице или задать значение нулю при написании предварительной версии 0x100 драйвера.

Значение Описание
KSDEVICE_DESCRIPTOR_VERSION Указывает на поддержку диспетчеризации AVStrMiniDeviceQueryInterfaceKSDEVICE_DISPATCH.
KSDEVICE_DESCRIPTOR_VERSION_2 Указывает поддержку элемента Flags KSDEVICE_DESCRIPTOR.

Flags

Значение типа ULONG. В настоящее время определен только один флаг.

Flag Описание
KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP Указывает, что устройство поддерживает удаленный пробуждение.

Alignment

Комментарии

Чаще всего эта структура используется в сочетании с KsInitializeDriver в клиентской функции DriverEntry для инициализации устройства. Эта структура также используется для инициализации или создания устройств вручную с помощью функций KsInitializeDevice и KsCreateDevice .

Если задать для версии значение KSDEVICE_DESCRIPTOR_VERSION_2 и запустить драйвер в более ранней версии AVStream, которая не поддерживает флаги, все флаги будут считаться равными нулю.

Аналогичным образом, использование дескриптора более ранней версии в более поздних версиях AVStream не приводит к тому, что флаги не указываются.

Требования

Требование Значение
Заголовок ks.h (включая Ks.h)

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

KSDEVICE_DISPATCH

KSFILTER_DESCRIPTOR

KsCreateDevice

KsInitializeDevice

KsInitializeDriver