estructura PCPROPERTY_ITEM (portcls.h)
La estructura PCPROPERTY_ITEM describe una propiedad compatible con un filtro, un pin o un nodo determinados.
Sintaxis
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
Miembros
Set
Especifica el conjunto de propiedades. Este miembro es un puntero a un GUID que identifica de forma única el conjunto de propiedades. Vea la lista de GUID del conjunto de propiedades en Conjuntos de propiedades de controladores de audio.
Id
Especifica el identificador de propiedad. Este miembro identifica un elemento de propiedad dentro del conjunto de propiedades. Si el conjunto de propiedades contiene N elementos, los identificadores de propiedad válidos son enteros en el intervalo de 0 a N-1.
Flags
Especifica los tipos de solicitudes de propiedad que admite el controlador. Establezca este miembro en el OR bit a bit de algunos o todos los bits de marca que aparecen en la tabla siguiente.
Los bits de marca | Tipo de solicitud de propiedad |
---|---|
PCPROPERTY_ITEM_FLAG_GET | Solicite obtener la configuración de datos de propiedad actual. |
PCPROPERTY_ITEM_FLAG_SET | Solicite establecer la configuración de datos de propiedad actual. |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | Solicite los valores predeterminados del controlador para los datos de propiedad. |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | Solicitud de soporte técnico básico, que especifica qué tipos de solicitud controla el controlador para esta propiedad, y también especifica el tipo de datos válido y los intervalos válidos para los datos de propiedad. |
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE | Solicite el tamaño de los datos de propiedad para esta propiedad cuando se serializa como parte de una solicitud de KSPROPERTY_TYPE_SERIALIZESET. |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | Solicitud para serializar esta propiedad de forma dependiente del controlador. Esta operación es la inversa de PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | Solicite deserializar esta propiedad de forma dependiente del controlador. Esta operación es la inversa de PCPROPERTY_ITEM_FLAG_SERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_SERIALIZE | PCPROPERTY_ITEM_FLAG_SERIALIZERAW | PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | PCPROPERTY_ITEM_FLAG_SERIALIZESIZE |
Handler
Puntero a la rutina del controlador de propiedades. Este miembro es un puntero de función de tipo PCPFNPROPERTY_HANDLER, que se define de la siguiente manera:
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
(
IN PPCPROPERTY_REQUEST PropertyRequest
);
Consulte la sección Comentarios siguiente.
Comentarios
La estructura PCPROPERTY_ITEM especifica un elemento de propiedad determinado en una tabla de automatización. La estructura PCAUTOMATION_TABLE apunta a una matriz de estructuras de PCPROPERTY_ITEM .
Al llamar a la rutina handler , el autor de la llamada pasa un único parámetro de llamada, que es un puntero a una estructura de PCPROPERTY_REQUEST . El autor de la llamada asigna esta estructura y el autor de la llamada lo libera en cualquiera de las condiciones siguientes:
- Si la rutina Handler devuelve cualquier código de estado distinto de STATUS_PENDING, el autor de la llamada libera la estructura. En este caso, el controlador de minipuerto no debe intentar acceder a la estructura después de que se devuelva la rutina handler .
- La rutina handler también puede devolver STATUS_PENDING, en cuyo caso el controlador de miniporte está obligado a llamar a PcCompletePendingPropertyRequest más adelante para completar la solicitud de propiedad pendiente. La función PcCompletePendingPropertyRequest libera la estructura. Después de llamar a PcCompletePendingPropertyRequest, el controlador de miniport no debe intentar acceder a la estructura.
Para obtener más información sobre la serialización y la serialización sin procesar de un conjunto de propiedades, vea Propiedades de KS.
Requisitos
Requisito | Valor |
---|---|
Header | portcls.h (incluya Portcls.h) |