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

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

Context

指向包含设备的上下文信息的内存位置的指针。 AVStream 在此成员中存储指向设备扩展的指针,用于在 AVStrMiniDeviceStart中分配设备扩展的微型驱动程序。 应使用 KsAddItemToObjectBag将为上下文分配的内存放置在对象包中。 上下文 在创建时初始化为 NULL

FunctionalDeviceObject

指向所描述设备的 WDM 功能设备对象的 DEVICE_OBJECT 结构的指针。

PhysicalDeviceObject

指向所描述设备的 WDM 物理设备对象的 DEVICE_OBJECT 结构的指针。

NextDeviceObject

指向驱动程序堆栈中下一个设备的 DEVICE_OBJECT 结构的指针,该结构由 IoAttachDeviceToDeviceStack确定。

Started

此成员指示是否已启动此特定设备。 如果 TRUE,则设备已启动。 如果 FALSE,则设备尚未启动。 此标志是在处理 IRP_MN_START_DEVICE 期间设置的,并在处理 IRP_MN_STOP_DEVICE期间重置。 未启动的设备将返回STATUS_DEVICE_NOT_READY,以响应创建筛选器的所有请求。

SystemPowerState

指示系统的当前电源状态的SYSTEM_POWER_STATE类型值。 wdm.h中定义了SYSTEM_POWER_STATE值。

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