PCPROPERTY_ITEM结构(portcls.h)
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 结构的数组。
调用 处理程序 例程时,调用方传入单个调用参数,该参数是指向 PCPROPERTY_REQUEST 结构的指针。 此结构由调用方分配,调用方在以下任一条件下释放它:
- 如果 处理程序 例程返回除STATUS_PENDING以外的任何状态代码,则调用方释放结构。 在这种情况下,微型端口驱动程序不应在 处理程序 例程返回后尝试访问结构。
- 处理程序 例程也可以返回STATUS_PENDING,在这种情况下,微型端口驱动程序必须稍后调用 PcCompletePendingPropertyRequest 以完成挂起的属性请求。 PcCompletePendingPropertyRequest 函数释放结构。 调用 PcCompletePendingPropertyRequest后,微型端口驱动程序不应尝试访问结构。
有关属性集的序列化和原始序列化的详细信息,请参阅 KS 属性。
要求
要求 | 价值 |
---|---|
标头 | portcls.h (包括 Portcls.h) |