Richieste di proprietà audio

I client di un driver audio WDM (Microsoft Windows Driver Model) possono inviare richieste di proprietà KS ai filtri KS e ai pin di cui è stata creata un'istanza. Ad esempio, un client in modalità utente può inviare una richiesta di proprietà KS chiamando la funzione DeviceIoControl (vedere la documentazione di Microsoft Windows SDK) con un codice di controllo I/O di IOCTL_KS_PROPERTY. Questa funzione invia un IRP contenente la richiesta di proprietà al filtro o all'oggetto pin specificato.

I driver audio supportano richieste di recupero, impostazione e supporto di base per le proprietà (KSPROPERTY_TYPE_GET, KSPROPERTY_TYPE_SET e KSPROPERTY_TYPE_BASICSUPPORT). Per altre informazioni, vedere Set di proprietà driver audio.

Un client può inviare richieste per tre tipi di proprietà: proprietà di filtro, proprietà pin e proprietà del nodo. Per altre informazioni, vedere Filtrare, aggiungere e properties dei nodi.

Quando si invia una richiesta di proprietà filtro a un oggetto filtro, il client specifica il filtro di destinazione in base al relativo handle di istanza (vedere Filter Factory). Analogamente, quando si invia una richiesta di proprietà pin a un oggetto pin, il pin di destinazione viene specificato dal relativo handle di istanza (vedere Pin Factory). Uno dei tipi di richiesta contiene una struttura KSPROPERTY che specifica quanto segue:

  • GUID che identifica il set di proprietà

  • Indice che identifica un elemento della proprietà all'interno del set di proprietà specificato

  • Flag che indicano il tipo di richiesta di proprietà (get, set o basic-support)

Le proprietà correlate vengono raccolte insieme per formare un set di proprietà. Una particolare proprietà viene identificata dal set di proprietà e da un indice che ne specifica la posizione all'interno di tale set.

Una richiesta di proprietà del nodo contiene una struttura KSNODEPROPERTY , che combina una struttura KSPROPERTY e un ID nodo. A seconda della proprietà del nodo, la destinazione per la richiesta di proprietà è un'istanza del filtro o un'istanza di pin.

Se un filtro può creare più istanze di un determinato tipo di nodo, la destinazione per la richiesta viene specificata da un handle pin. L'handle identifica l'istanza del pin all'inizio o alla fine del percorso dati in cui risiede l'istanza del nodo. Nel caso di un filtro contenente un nodo SUM o MUX (vedere KSNODETYPE_SUM e KSNODETYPE_MUX), si applicano le regole seguenti:

  • Se la proprietà appartiene a un nodo che si trova a valle da un pin sink (input) e upstream dal nodo SUM o MUX, la richiesta di proprietà viene inviata al pin sink.

  • Se la proprietà appartiene a un nodo che si trova a valle da un nodo SUM o MUX e a monte da un pin di origine (output), la richiesta di proprietà viene inviata al pin di origine. Viene inoltre inviata una richiesta di proprietà per un nodo SUM o MUX al pin di origine.

Con queste convenzioni, è possibile identificare in modo univoco un nodo specifico in un percorso dati specifico.

Per informazioni sull'uso dell'API mixer per attraversare i nodi in un percorso dati, vedere Kernel Streaming Topology to Audio Mixer API Translation .For information about using the mixer API Translation to Audio Mixer API Translation.