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