estructura PCPROPERTY_REQUEST (portcls.h)
La estructura PCPROPERTY_REQUEST especifica una solicitud de propiedad.
Sintaxis
typedef struct _PCPROPERTY_REQUEST {
PUNKNOWN MajorTarget;
PUNKNOWN MinorTarget;
ULONG Node;
const PCPROPERTY_ITEM *PropertyItem;
ULONG Verb;
ULONG InstanceSize;
PVOID Instance;
ULONG ValueSize;
PVOID Value;
PIRP Irp;
} PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;
Miembros
MajorTarget
Puntero IUnknown al objeto miniport principal. Este miembro contiene el valor del parámetro UnknownMiniport que el controlador del adaptador pasó anteriormente al método IPort::Init .
MinorTarget
Puntero IUnknown a un objeto de secuencia asociado al objeto MajorTarget miniport. Si el destino de la solicitud de propiedad es una instancia de pin, este miembro contiene el puntero de objeto de secuencia que el método IMiniport Xxx::NewStream genera previamente al controlador de puerto (por ejemplo, el parámetro Stream del método IMiniportWave::NewStream). De lo contrario (si el destino de la solicitud de propiedad es una instancia de filtro), este miembro es NULL.
Node
Especifica un identificador de nodo. Este miembro identifica el nodo de destino de la solicitud. Si el destino no es un nodo, este miembro se establece en ULONG(-1).
PropertyItem
Puntero al elemento de propiedad, que es una estructura de tipo PCPROPERTY_ITEM.
Verb
Especifica el tipo de solicitud de propiedad. El verbo se establece en el OR bit a bit de uno o varios de los siguientes bits de marca del archivo de encabezado ks.h:
- KSPROPERTY_TYPE_GET
- KSPROPERTY_TYPE_SET
- KSPROPERTY_TYPE_SETSUPPORT
- KSPROPERTY_TYPE_BASICSUPPORT
- KSPROPERTY_TYPE_RELATIONS
- KSPROPERTY_TYPE_SERIALIZESET
- KSPROPERTY_TYPE_UNSERIALIZESET
- KSPROPERTY_TYPE_SERIALIZERAW
- KSPROPERTY_TYPE_UNSERIALIZERAW
- KSPROPERTY_TYPE_SERIALIZESIZE
- KSPROPERTY_TYPE_DEFAULTVALUES
- KSPROPERTY_TYPE_TOPOLOGY
InstanceSize
Especifica el tamaño en bytes del búfer de instancia de propiedad.
Instance
Puntero al búfer de instancia de propiedad
ValueSize
Especifica el tamaño en bytes del búfer de valor de propiedad.
Value
Puntero al búfer de valor de propiedad
Irp
Puntero al IRP que contiene la solicitud de propiedad original del cliente
Comentarios
Esta es la estructura que pasa el controlador de puerto a la rutina de controlador de propiedades del controlador de miniporte. La estructura PCPROPERTY_ITEM contiene un puntero de función a un controlador de propiedades que toma un puntero PCPROPERTY_REQUEST como único parámetro de llamada. El controlador de puerto asigna una estructura de PCPROPERTY_REQUEST , extrae la información pertinente de la solicitud de propiedad original (a la que apunta el miembro Irp ) y carga la información en esta estructura antes de llamar al controlador.
En el audio WDM, el destino de una solicitud de propiedad puede ser una instancia de filtro o una instancia de anclaje. El destino también puede incluir un identificador de nodo.
En la solicitud de propiedad original del cliente, los datos de la instancia de propiedad siempre comienzan con una estructura KSPROPERTY o KSNODEPROPERTY , pero pueden incluir información adicional. El controlador de puerto ajusta el miembro instance de la estructura PCPROPERTY_REQUEST para que apunte a esta información adicional, si existe. Para obtener más información, consulte Controladores de propiedades de audio.
Los miembros MajorTarget y MinorTarget son punteros IUnknown al objeto miniport principal y a un objeto de secuencia asociado, respectivamente. El controlador de propiedades puede consultar estos objetos para sus interfaces de minipuerto y secuencia. Si el destino de la solicitud de propiedad es una instancia de filtro, MajorTarget apunta al objeto miniport para esa instancia de filtro y MinorTarget es NULL. Si el destino es una instancia de pin, MinorTarget apunta al objeto stream de ese pin y MajorTarget apunta al objeto miniport para el filtro al que está asociado el pin.
Por ejemplo, si el destino de la solicitud de propiedad es una instancia de pin en un filtro WaveCíclico:
- El controlador puede llamar a QueryInterface en la interfaz IUnknown del objeto MajorTarget para obtener una referencia a la interfaz IMiniportWaveCíclica del objeto.
- El controlador puede llamar a QueryInterface en la interfaz IUnknown del objeto MinorTarget para obtener una referencia a la interfaz IMiniportWaveStream del objeto.
Requisitos
Requisito | Valor |
---|---|
Header | portcls.h (incluya Portcls.h) |