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 后代对象的参考页:KSFILTERFACTORY、KSFILTER 和 KSPIN。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Microsoft Windows XP 及更高版本的作系统和 Microsoft DirectX 8.0 及更高版本中提供。 |
标头 | ks.h (包括 Ks.h) |