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


Структура 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 сохраняет указатель на расширение устройства в этом элементе для мини-drivers, которые выделяют расширение устройства в 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 или Power Management, которое не предоставляется AVStream. Указатель на структуру KSDEVICE является первым параметром для всех подпрограмм отправки, указанных в KSDEVICE_DISPATCH, и клиент может использовать сведения о контексте для присоединения собственного контекста к этим подпрограммам. Кроме того, клиенты могут получить указатель на структуру KSDEVICE из указателя объекта устройства WDM, вызвав KsGetDeviceForDeviceObject.

Как упоминалось выше, контекст инициализируется для null во время создания. Однако потомки этой структуры KSDEVICE имеют соответствующие элементы контекста контекста, заданные для значения элемента контекста родительского объекта. Это происходит при создании нового объекта. Дополнительные сведения см. в иерархии объектов AVStream и пакетах объектов. Также см. справочные страницы для возможных объектов потомков AVStream: KSFILTERFACTORY, KSFILTER и KSPIN.

Требования

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

См. также

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject