Supporto di una combinazione di pin 2D e 3D
Se il driver audio WDM supporta una combinazione di pin 2D e 3D, un pin 3D può essere usato come pin 2D, ma non viceversa. Quando DirectSound richiede un pin 2D, può sostituire un pin 3D inutilizzato per tale scopo, se disponibile dal driver. Se DirectSound richiede un pin 3D, tuttavia, continua a cercare l'elenco delle istanze di pin del driver finché non trova un pin 3D, ignorando eventuali pin 2D rilevati durante la ricerca. DirectSound controlla l'elenco di pin factory dell'autista nell'ordine in cui sono elencati fino a quando non trova un'istanza di pin che soddisfa i requisiti.
Quando si segnala il conteggio dei pin 2D, il driver deve specificare il numero di istanze pin 2D più il numero di istanze pin 3D. Quando si segnala il conteggio dei pin 3D, il driver deve ignorare i pin 2D e specificare solo il numero di istanze del pin 3D.
Le versioni DirectSound distribuite con Microsoft Windows 2000 e Windows 98 hanno un problema noto nella gestione di una factory pin che espone una combinazione di pin 2D e pin 3D: DirectSound segnala in modo errato il conteggio dei pin 3D per essere il numero di istanze di pin 2D e il numero di istanze pin 3D. Una soluzione alternativa a questo problema consiste nel scrivere il driver in modo da separare i pin 2D e 3D in due pin separati. Una factory espone solo i pin 2D e l'altra factory espone solo i pin 3D.
Con i driver WDM, DirectSound segnala correttamente il conteggio dei pin 2D come somma dei conteggi dei pin 2D e 3D delle due factory e segnala correttamente il conteggio dei pin 3D come numero di pin 3D dalla fabbrica 3D. Quando si espongono factory separate per i pin 2D e 3D, il driver deve elencare la factory con pin 2D prima della factory del pin 3D. Questo è necessario perché quando DirectSound cerca un pin 2D, usa il primo pin 2D o 3D trovato e DirectSound controlla le pin factory nell'ordine in cui il driver li elenca. Se il driver elenca prima la fabbrica 3D, rischia di avere DirectSound esaurito la fornitura di pin 3D inutilmente usandoli al posto di pin 2D.
In riepilogo, se il driver espone una combinazione di pin 2D e 3D, è consigliabile seguire queste regole per eseguire correttamente nelle versioni precedenti di DirectSound:
Specificare rispettivamente due pin factory separati per i pin 2D e 3D.
Elencare la factory con pin 2D prima della factory con pin 3D.
Queste soluzioni alternative non sono necessarie con versioni successive di DirectSound. Il problema descritto sopra è risolto in Windows Me e in Windows XP e versioni successive. È anche corretto in DirectSound 8, che viene ridistribuito per l'uso con le versioni precedenti di Windows. Con questa correzione, il driver può combinare in modo sicuro i pin 2D e 3D in una singola factory pin e DirectSound segnalano correttamente i conteggi 2D e 3D. Inoltre, quando DirectSound richiede un pin 2D, usa un pin 3D al posto di un pin 2D solo quando ha esaurito la fornitura di pin 2D da tutte le pin factory.