KSPROPERTY_ITEM struttura (ks.h)
I driver usano la struttura KSPROPERTY_ITEM per descrivere come supportano una proprietà in un set di proprietà.
Sintassi
typedef struct {
ULONG PropertyId;
union {
PFNKSHANDLER GetPropertyHandler;
BOOLEAN GetSupported;
};
ULONG MinProperty;
ULONG MinData;
union {
PFNKSHANDLER SetPropertyHandler;
BOOLEAN SetSupported;
};
const KSPROPERTY_VALUES *Values;
ULONG RelationsCount;
const KSPROPERTY *Relations;
PFNKSHANDLER SupportHandler;
ULONG SerializedSize;
} KSPROPERTY_ITEM, *PKSPROPERTY_ITEM;
Members
PropertyId
Specifica l'ID della proprietà descritta.
GetPropertyHandler
Puntatore a un minidriver fornito da KStrGetPropertyHandler. Se NULL non è possibile leggere la proprietà. Questo membro viene usato solo dai driver che usano le interfacce di classe AVStream o Stream.
GetSupported
Impostare su TRUE se questa proprietà supporta le richieste di recupero, FALSE se non lo fa. Il driver di classe soddisfa la richiesta tramite SRB_GET_DEVICE_PROPERTY o SRB_GET_STREAM_PROPERTY richieste. Questo membro viene usato solo dai minidriver in esecuzione nella classe di flusso.
MinProperty
Specifica la lunghezza minima del buffer per contenere l'identificatore della proprietà. Questo deve essere almeno sizeof(KSPROPERTY).
MinData
Specifica la lunghezza minima del buffer per contenere i dati letti da o scritti in questa proprietà.
SetPropertyHandler
Puntatore a un minidriver fornito da KStrSetPropertyHandler. Se NULL, la proprietà non può essere impostata. Questo membro viene usato solo dai driver che usano le interfacce di classe AVStream o Stream.
SetSupported
Impostare su TRUE se questa proprietà supporta le richieste impostate, FALSE se non lo fa. Il driver di classe soddisfa la richiesta tramite la SRB_SET_DEVICE_PROPERTY o le richieste di SRB_SET_STREAM_PROPERTY.
Values
Puntatore a una struttura di tipo KSPROPERTY_VALUES. Specifica i valori predefiniti e/o accettabili per la proprietà. Questi sono gli stessi dei valori segnalati da un driver in risposta a una richiesta di IOCTL_KS_PROPERTY con i flag di KSPROPERTY_TYPE_BASICSUPPORT e KSPROPERTY_TYPE_DEFAULTVALUES impostati.
RelationsCount
Specifica il numero di voci nella matrice a cui punta il membro Relazioni .
Relations
Punta a una matrice di strutture KSPROPERTY che rappresentano le proprietà correlate a questa. Due proprietà vengono considerate correlate se la modifica di una proprietà può influire sul valore dell'altra proprietà. Il membro Flag di ogni voce è inutilizzato.
SupportHandler
Specificare questo membro solo se implementa il proprio formato per la serializzazione non elaborata o l'annullamento non elaborato. Le query di supporto di base, le query di intervallo e le query di relazione vengono gestite automaticamente da AVStream, che restituisce i valori pertinenti da altri membri di questa struttura KSPROPERTY_ITEM.
SerializedSize
Specifica le dimensioni della proprietà quando viene serializzata in una richiesta di KSPROPERTY_TYPE_SERIALIZESET. Questo valore deve essere zero se la proprietà non può essere serializzata. Per altre informazioni, vedere KSPROPERTY .
Commenti
Stream minidriver di classe usano KSPROPERTY_ITEM per descrivere al client come soddisfare le richieste di proprietà in ogni proprietà all'interno di un set. La gestione per il set di proprietà come intero viene specificata nella struttura KSPROPERTY_SET, che contiene puntatori a matrici di strutture KSPROPERTY_ITEM .
Il driver della classe di flusso gestisce le richieste di proprietà per conto del minidriver. Quando il driver della classe di flusso richiede altre informazioni dal minidriver, passa una richiesta di SRB_XXX a una delle routine StrMiniReceiveXXXRequest del minidriver. Il driver della classe di flusso gestisce i diversi tipi di richiesta elencati nella tabella seguente.
Valore dei flag delle richieste di proprietà | Risposta |
---|---|
KSPROPERTY_TYPE_GET | Se GetSupported è TRUE, il driver della classe di flusso invia una richiesta di SRB_GET_DEVICE_PROPERTY o SRB_GET_STREAM_PROPERTY alla routine StrMiniReceiveXXXRequest appropriata. |
KSPROPERTY_TYPE_SET | Se SetSupported è TRUE, il driver della classe di flusso invia una richiesta di SRB_SET_DEVICE_PROPERTY o SRB_SET_STREAM_PROPERTY alla routine StrMiniReceiveXXXRequest appropriata. |
KSPROPERTY_TYPE_BASICSUPPORT | Il driver della classe di flusso usa KSPROPERTY_ITEM per ottenere le informazioni necessarie per soddisfare questa richiesta. Ad esempio, per specificare il tipo di dati e gli intervalli consentiti dei dati delle proprietà, ognuno usa il membro Valori di questa struttura. |
KSPROPERTY_TYPE_SETSUPPORT | Il driver della classe di flusso completa l'IRP della proprietà come STATUS_SUCCESS solo se il driver fornisce una voce per la proprietà impostata all'interno della relativa struttura di KSPROPERTY_SET . |
KSPROPERTY_TYPE_DEFAULTVALUES | Il driver della classe di flusso usa il membro Valori di questa struttura per determinare i valori predefiniti per i dati delle proprietà. |
KSPROPERTY_TYPE_RELATIONS | Il driver della classe di flusso usa il membro Relazioni per determinare quali proprietà sono correlate a questa proprietà. |
Se il client specifica KSPROPERTY_TYPE_DEFAULTVALUES, il driver usa il buffer di dati per restituire una descrizione del relativo tipo di valore, incluso eventualmente il relativo intervallo consentito e il valore predefinito. Questo flag è simile al risultato di KSPROPERTY_TYPE_BASICSUPPORT, ad eccezione del fatto che tutti i valori restituiti sono quelli contrassegnati con KSPROPERTY_MEMBER_FLAG_DEFAULT nel membro Flag della struttura KSPROPERTY_MEMBERSHEADER.
Per altre informazioni, vedere Proprietà KS.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ks.h (include Ks.h) |