KSDEVICE 结构 (ks.h)

KSDEVICE 结构描述由 AVStream 管理的 WDM 功能设备。

语法

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

此成员指定与与设备关联的 PVOID) 类型等效的KSOBJECT_BAG (。 请参阅 对象包

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 中定义。

注解

如果客户端必须实现 AVStream 未提供的特定 PnP 或电源管理行为,则通常使用此结构。 指向 KSDEVICE 结构的指针是 KSDEVICE_DISPATCH中指定的所有调度例程的第一个参数,客户端可以使用上下文信息为这些例程附加自己的上下文。 此外,客户端可以通过调用 KsGetDeviceForDeviceObject 从 WDM 设备对象指针获取指向 KSDEVICE 结构的指针。

如上所述, 上下文 在创建时初始化为 NULL 。 但是,此 KSDEVICE 结构的后代将其对应的 Context 成员设置为父对象的 Context 成员的值。 创建新对象时会发生这种情况。 有关详细信息,请参阅 AVStream 对象层次结构对象包。 另请参阅可能的 AVStream 后代对象的参考页: KSFILTERFACTORYKSFILTERKSPIN

要求

要求
最低受支持的客户端 适用于 Microsoft Windows XP 及更高版本的操作系统以及 Microsoft DirectX 8.0 及更高版本。
标头 ks.h (包括 Ks.h)

另请参阅

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject