Ausgabepuffergröße
Die IMiniport::D ataRangeIntersection-Methode des Miniporttreibers kopiert die Struktur, die das ausgehandelte Datenformat angibt, in einen Puffer, der vom Aufrufer zugewiesen wird. Der OutputBufferLength-Parameter der Methode gibt die Größe des Puffers in Bytes an. Beachten Sie, dass die Größe der Formatstruktur mit dem ausgewählten Format variiert. Um das Schreiben über das Ende des Puffers zu vermeiden, sollte die DataRangeIntersection-Methode zuerst überprüfen, ob der zugeordnete Puffer groß genug ist, um das Format zu enthalten.
Bei einem Mono- oder Stereoformat ist die Mindestgröße für den Ausgabepuffer entweder sizeof(KSDATAFORMAT_WAVEFORMATEX) oder sizeof(KSDATAFORMAT_DSOUND), je nachdem, ob ein WAVEFORMATEX- oder DirectSound-Format ausgewählt wurde.
Wenn das Wellenformat mehr als zwei Kanäle unterstützt, wird die WAVEFORMATEX-Struktur , die am Ende derKSDATAFORMAT_WAVEFORMATEX-Struktur eingebettet ist, erweitert, um eine zusätzliche Anzahl von Bytes zu belegen, die dem Unterschied entspricht.
sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)