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


Структура KSDEVICE (ks.h)

Структура KSDEVICE описывает функциональное устройство WDM, управляемое AVStream.

Синтаксис

typedef struct _KSDEVICE {
  const KSDEVICE_DESCRIPTOR *Descriptor;
  KSOBJECT_BAG              Bag;
  PVOID                     Context;
  PDEVICE_OBJECT            FunctionalDeviceObject;
  PDEVICE_OBJECT            PhysicalDeviceObject;
  PDEVICE_OBJECT            NextDeviceObject;
  BOOLEAN                   Started;
  SYSTEM_POWER_STATE        SystemPowerState;
  DEVICE_POWER_STATE        DevicePowerState;
} KSDEVICE, *PKSDEVICE;

Члены

Descriptor

Указатель на структуру KSDEVICE_DESCRIPTOR , которая описывает характеристики устройства и поддерживаемые им статические фильтры.

Bag

Этот элемент задает KSOBJECT_BAG (эквивалентный типу PVOID), связанный с устройством. См. раздел Контейнеры объектов.

Context

Указатель на расположение памяти, содержащее сведения о контексте для устройства. AVStream сохраняет указатель на расширение устройства в этом элементе для мини-драйверов, которые выделяют расширение устройства в AVStrMiniDeviceStart. Память, выделенная для контекста, должна быть помещена в контейнер объектов с помощью KsAddItemToObjectBag. Контекст инициализируется значением NULL во время создания.

FunctionalDeviceObject

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

PhysicalDeviceObject

Указатель на структуру DEVICE_OBJECT , которая является объектом физического устройства WDM для описываемого устройства.

NextDeviceObject

Указатель на структуру DEVICE_OBJECT , которая является следующим устройством в стеке драйверов, как определено IoAttachDeviceToDeviceStack.

Started

Этот элемент указывает, было ли запущено конкретное устройство. Если задано значение TRUE, устройство запущено. Если значение РАВНО FALSE, устройство не запущено. Этот флаг устанавливается во время обработки IRP_MN_START_DEVICE и сбрасывается во время обработки IRP_MN_STOP_DEVICE. Устройство, которое не запущено, возвращает STATUS_DEVICE_NOT_READY в ответ на все запросы на создание фильтра.

SystemPowerState

SYSTEM_POWER_STATE типизированное значение, указывающее текущее состояние системы. SYSTEM_POWER_STATE значения определяются в wdm.h.

DevicePowerState

DEVICE_POWER_STATE типизированное значение, указывающее текущее состояние питания устройства. DEVICE_POWER_STATE значения определяются в wdm.h.

Комментарии

Клиенты обычно используют эту структуру, если им необходимо реализовать определенное поведение PnP или управления питанием, которое не предоставляется AVStream. Указатель на структуру KSDEVICE является первым параметром для всех подпрограмм диспетчеризации, указанных в KSDEVICE_DISPATCH, и клиент может использовать сведения о контексте для присоединения собственного контекста к этим подпрограммам. Кроме того, клиенты могут получить указатель на структуру KSDEVICE из указателя объекта устройства WDM, вызвав KsGetDeviceForDeviceObject.

Как упоминалось выше, контекст инициализируется значением NULL во время создания. Однако потомки этой структуры KSDEVICE имеют соответствующие члены Context , равные значению элемента Context родительского объекта. Это происходит при создании нового объекта. Дополнительные сведения см. в разделе AvStream Object Hierarchy and ObjectМешки. См. также справочные страницы для возможных объектов-потомков AVStream: KSFILTERFACTORY, KSFILTER и KSPIN.

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также в Microsoft DirectX 8.0 и более поздних версиях.
Верхняя часть ks.h (включая Ks.h)

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

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject