struttura PCPROPERTY_ITEM (portcls.h)
La struttura PCPROPERTY_ITEM descrive una proprietà supportata da un determinato filtro, pin o nodo.
Sintassi
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
Members
Set
Specifica il set di proprietà. Questo membro è un puntatore a un GUID che identifica in modo univoco il set di proprietà. Vedere l'elenco dei GUID set di proprietà nei set di proprietà Audio Drivers.
Id
Specifica l'ID proprietà. Questo membro identifica un elemento della proprietà all'interno del set di proprietà. Se il set di proprietà contiene elementi N, gli ID proprietà validi sono interi nell'intervallo da 0 a N-1.
Flags
Specifica i tipi di richieste di proprietà supportate dal driver. Impostare questo membro sull'OR bit per bit di alcuni o tutti i bit di flag visualizzati nella tabella seguente.
Bit di flag | Tipo di richiesta di proprietà |
---|---|
PCPROPERTY_ITEM_FLAG_GET | Richiedere di ottenere l'impostazione dei dati della proprietà corrente. |
PCPROPERTY_ITEM_FLAG_SET | Richiedere di impostare l'impostazione dei dati della proprietà corrente. |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | Richiedere i valori predefiniti del driver per i dati delle proprietà. |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | Richiedere il supporto di base, che specifica quali tipi di richiesta vengono gestiti dal driver per questa proprietà e specifica anche il tipo di dati valido e gli intervalli validi per i dati delle proprietà. |
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE | Richiedere le dimensioni dei dati della proprietà per questa proprietà quando viene serializzata come parte di una richiesta di KSPROPERTY_TYPE_SERIALIZESET. |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | Richiedere di serializzare questa proprietà in modo dipendente dal driver. Questa operazione è l'inverso di PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | Richiedere di annullare la creazione di questa proprietà in modo dipendente dal driver. Questa operazione è l'inverso di PCPROPERTY_ITEM_FLAG_SERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_SERIALIZE | PCPROPERTY_ITEM_FLAG_SERIALIZERAW | PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | PCPROPERTY_ITEM_FLAG_SERIALIZESIZE |
Handler
Puntatore alla routine del gestore delle proprietà. Questo membro è un puntatore di funzione di tipo PCPFNPROPERTY_HANDLER, definito come segue:
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
(
IN PPCPROPERTY_REQUEST PropertyRequest
);
Vedere la sezione Osservazioni seguenti.
Commenti
La struttura PCPROPERTY_ITEM specifica un elemento di proprietà specifico in una tabella di automazione. La struttura PCAUTOMATION_TABLE punta a una matrice di strutture PCPROPERTY_ITEM .
Quando si chiama la routine del gestore , il chiamante passa un singolo parametro di chiamata, ovvero un puntatore a una struttura di PCPROPERTY_REQUEST . Questa struttura viene allocata dal chiamante e il chiamante lo libera in una delle condizioni seguenti:
- Se la routine del gestore restituisce qualsiasi codice di stato diverso da STATUS_PENDING, il chiamante libera la struttura. In questo caso, il driver miniport non deve tentare di accedere alla struttura dopo che la routine del gestore restituisce.
- La routine del gestore può anche restituire STATUS_PENDING, nel qual caso il driver miniport è obbligato a chiamare PcCompletePendingPropertyRequest in un secondo momento per completare la richiesta di proprietà in sospeso. La funzione PcCompletePendingPropertyRequest libera la struttura. Dopo aver chiamato PcCompletePendingPropertyRequest, il driver miniport non deve tentare di accedere alla struttura.
Per altre informazioni sulla serializzazione e la serializzazione non elaborata di un set di proprietà, vedere Proprietà KS.
Requisiti
Requisito | Valore |
---|---|
Intestazione | portcls.h (includere Portcls.h) |