Compartir a través de


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:

  1. 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 .
  2. 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.
Si el controlador de minipuerto intenta acceder a la estructura después de liberarla, es probable que esta acción provoque una comprobación de errores o dañe la memoria de otro controlador.

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)

Consulte también

PCPROPERTY_REQUEST

PcCompletePendingPropertyRequest