struttura PCPROPERTY_REQUEST (portcls.h)
La struttura PCPROPERTY_REQUEST specifica una richiesta di proprietà.
Sintassi
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;
Members
MajorTarget
Puntatore IUnknown all'oggetto miniport principale. Questo membro contiene il valore del parametro UnknownMiniport passato in precedenza al metodo IPort::Init .
MinorTarget
Puntatore IUnknown a un oggetto di flusso associato all'oggetto miniport MajorTarget . Se la destinazione per la richiesta di proprietà è un'istanza pin, questo membro contiene il puntatore a oggetti di flusso restituito in precedenza dal metodo IMiniport Xxx::NewStream al driver della porta, ad esempio il parametro di Stream del metodo IMiniportWaveCyclic::NewStream. In caso contrario, se la destinazione per la richiesta di proprietà è un'istanza di filtro, questo membro è NULL.
Node
Specifica un ID nodo. Questo membro identifica il nodo di destinazione per la richiesta. Se la destinazione non è un nodo, questo membro è impostato su ULONG(-1).
PropertyItem
Puntatore all'elemento della proprietà, ovvero una struttura di tipo PCPROPERTY_ITEM.
Verb
Specifica il tipo di richiesta di proprietà. Il verbo è impostato sull'OR bit per bit di uno o più dei bit di flag seguenti dal file di intestazione 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
Specifica le dimensioni in byte del buffer dell'istanza di proprietà.
Instance
Puntatore al buffer dell'istanza di proprietà
ValueSize
Specifica le dimensioni in byte del buffer di proprietà-valore.
Value
Puntatore al buffer di proprietà-valore
Irp
Puntatore all'IRP contenente la richiesta originale della proprietà del client
Commenti
Si tratta della struttura che il driver della porta passa alla routine del gestore delle proprietà del driver miniport. La struttura PCPROPERTY_ITEM contiene un puntatore di funzione a un gestore di proprietà che accetta un puntatore PCPROPERTY_REQUEST come solo parametro di chiamata. Il driver di porta alloca una struttura PCPROPERTY_REQUEST , estrae le informazioni pertinenti dalla richiesta di proprietà originale (a cui punta il membro Irp ) e carica le informazioni in questa struttura prima di chiamare il gestore.
Nell'audio WDM la destinazione di una richiesta di proprietà può essere un'istanza di filtro o un'istanza di pin. La destinazione può includere anche un ID nodo.
Nella richiesta di proprietà originale del client, i dati dell'istanza della proprietà iniziano sempre con una struttura KSPROPERTY o KSNODEPROPERTY, ma possono includere informazioni aggiuntive. Il driver di porta regola il membro dell'istanza della struttura di PCPROPERTY_REQUEST per puntare a queste informazioni aggiuntive, se presente. Per informazioni dettagliate, vedere Gestori di proprietà audio.
I membri MajorTarget e MinorTarget sono rispettivamente puntatori IUnknown all'oggetto miniport principale e a un oggetto di flusso associato. Il gestore delle proprietà può eseguire query su questi oggetti per le interfacce miniport e stream. Se la destinazione per la richiesta di proprietà è un'istanza di filtro, MajorTarget punta all'oggetto miniport per tale istanza di filtro e MinorTarget è NULL. Se la destinazione è un'istanza di pin, MinorTarget punta all'oggetto stream per tale pin e MajorTarget punta all'oggetto miniport per il filtro a cui è collegato il pin.
Ad esempio, se la destinazione per la richiesta di proprietà è un'istanza di pin in un filtro WaveCyclic:
- Il gestore può chiamare QueryInterface nell'interfaccia IUnknown dell'oggetto MajorTarget per ottenere un riferimento all'interfaccia IMiniportWaveCyclic dell'oggetto.
- Il gestore può chiamare QueryInterface nell'interfaccia IUnknown dell'oggetto MinorTarget per ottenere un riferimento all'interfaccia IMiniportWaveCyclicStream dell'oggetto.
Requisiti
Requisito | Valore |
---|---|
Intestazione | portcls.h (includere Portcls.h) |