portcls.h) (PCPROPERTY_ITEM 结构
PCPROPERTY_ITEM 结构描述特定筛选器、引脚或节点支持的属性。
语法
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
成员
Set
指定属性集。 此成员是指向唯一标识属性集的 GUID 的指针。 请参阅 音频驱动程序属性集中的属性集 GUID 列表。
Id
指定属性 ID。 此成员标识属性集中的属性项。 如果属性集包含 N 个项,则有效的属性 ID 是 0 到 N-1 范围内的整数。
Flags
指定驱动程序支持的属性请求的类型。 将此成员设置为下表中显示的部分或全部标志位的按位 OR。
标志位 | 属性请求的类型 |
---|---|
PCPROPERTY_ITEM_FLAG_GET | 请求获取当前属性数据设置。 |
PCPROPERTY_ITEM_FLAG_SET | 请求设置当前属性数据设置。 |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | 请求属性数据的驱动程序默认值。 |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | 请求基本支持,指定驱动程序为此属性处理的请求类型,还指定属性数据的有效数据类型和有效范围。 |
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE | 当此属性序列化为KSPROPERTY_TYPE_SERIALIZESET请求的一部分时,请求此属性的属性数据的大小。 |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | 请求以依赖于驱动程序的方式序列化此属性。 此操作与PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW相反。 |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | 请求以与驱动程序相关的方式取消序列化此属性。 此操作与PCPROPERTY_ITEM_FLAG_SERIALIZERAW相反。 |
PCPROPERTY_ITEM_FLAG_SERIALIZE | PCPROPERTY_ITEM_FLAG_SERIALIZERAW |PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW |PCPROPERTY_ITEM_FLAG_SERIALIZESIZE |
Handler
指向属性处理程序例程的指针。 此成员是 PCPFNPROPERTY_HANDLER 类型的函数指针,定义如下:
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
(
IN PPCPROPERTY_REQUEST PropertyRequest
);
请参阅以下“备注”部分。
注解
PCPROPERTY_ITEM 结构指定自动化表中的特定属性项。 PCAUTOMATION_TABLE 结构指向PCPROPERTY_ITEM结构的数组。
调用 Handler 例程时,调用方传入单个调用参数,该参数是指向 PCPROPERTY_REQUEST 结构的指针。 此结构由调用方分配,调用方在以下任一条件下释放它:
- 如果 Handler 例程返回除 STATUS_PENDING 之外的任何状态代码,则调用方释放 结构。 在这种情况下,微型端口驱动程序不应在 处理程序 例程返回后尝试访问 结构。
- 处理程序例程还可以返回STATUS_PENDING,在这种情况下,微型端口驱动程序必须在以后调用 PcCompletePendingPropertyRequest 来完成挂起的属性请求。 PcCompletePendingPropertyRequest 函数释放 结构。 调用 PcCompletePendingPropertyRequest 后,微型端口驱动程序不应尝试访问结构。
有关属性集的序列化和原始序列化的详细信息,请参阅 KS 属性。
要求
要求 | 值 |
---|---|
Header | portcls.h (包括 Portcls.h) |