Структура 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) |