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 concretos.

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. Consulte la lista de GUID del conjunto de propiedades en conjuntos de propiedades 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.

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 siguiente sección Comentarios.

Observaciones

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 PCPROPERTY_ITEM.

Al llamar a la rutina controlador de, 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 controlador de devuelve cualquier código de estado distinto de STATUS_PENDING, el autor de la llamada libera la estructura. En este caso, el controlador de miniporte no debe intentar acceder a la estructura después de que el controlador de rutina vuelva.
  2. La rutina controlador de 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 miniporte intenta acceder a la estructura después de liberarla, es probable que esta acción cause 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
encabezado de portcls.h (incluya Portcls.h)

Consulte también

PCPROPERTY_REQUEST

pcCompletePendingPropertyRequest