PHDAUDIO_BDL_ISR Rückruffunktion (hdaudio.h)
Die HDAudioBdlIsr-Routine ist die ISR, die der HD-Audiobustreiber jedes Mal aufruft, wenn ein IOC-Interrupt im Stream auftritt. Es handelt sich um einen Funktionszeiger vom Typ PHDAUDIO_BDL_ISR, der wie folgt definiert wird.
Syntax
PHDAUDIO_BDL_ISR PhdaudioBdlIsr;
void PhdaudioBdlIsr(
[in] VOID *Context,
[in] ULONG InterruptBitMask
)
{...}
Parameter
[in] Context
Der HD Audio Bus-Treiber ruft den ISR mit demselben Kontextwert auf, den der Client im Kontextparameter des vorherigen SetupDmaEngineWithBdl-Aufrufs angegeben hat. Weitere Informationen finden Sie unter PSETUP_DMA_ENGINE_WITH_BDL.
[in] InterruptBitMask
Der interruptBitMask-Parameter enthält die Bits aus dem Stream des HD-Audiocontrollergeräts status Register, die den Grund für den Interrupt angeben. Die folgende Tabelle zeigt die Bedeutung der einzelnen Bits in interruptBitMask.
Bitzahlen | Bedeutung |
---|---|
31:5 | Nicht verwendet. |
4 | Deskriptorfehler (DESE). Wenn beim Abrufen eines Pufferdeskriptors ein Fehler auftritt, legt der HD-Audiocontroller das DESE-Bit auf 1 fest. |
3 | FIFO-Fehler (FIFOE). Wenn ein FIFO-Fehler auftritt (ein Überlauf für einen Ausgabedatenstrom oder ein Unterlauf in einem Eingabedatenstrom), legt der HD-Audiocontroller das FIFOE-Bit auf 1 fest. |
2 | Pufferabschlussunterbrechungsstatus (Buffer Completion Interrupt Status, BCIS). Wenn das IOC-Bit im Befehlsbyte des Pufferdeskriptors auf 1 festgelegt ist, legt der HD-Audiocontroller das BCIS-Bit auf 1 fest, nachdem das letzte Beispiel eines Puffers verarbeitet wurde. |
1:0 | Nicht verwendet. |
Der HD Audio Bus-Treiber legt die nicht verwendeten Bits auf 0 (null) fest. Anstatt davon auszugehen, dass ein IOC-Interrupt aufgetreten ist, muss der ISR immer den interruptBitMask-Parameter überprüfen, um festzustellen, ob ein Streamfehler aufgetreten ist. Weitere Informationen zu den interrupt status Bits, die in der obigen Tabelle gezeigt werden, finden Sie in der Beschreibung der Stream-status Register in der Intel High Definition Audio Specification.
Die FIFO-Größe ist die maximale Anzahl von Bytes, die die DMA-Engine jederzeit in ihrem internen Puffer enthalten kann.
Abhängig von der Hardwareimplementierung kann die FIFO-Größe einer DMA-Engine entweder statisch sein oder dynamisch mit Änderungen im Streamformat variieren. Weitere Informationen zur FIFO-Größe finden Sie in der Intel High Definition Audio Specification.
Rückgabewert
Keine
Bemerkungen
Der Aufrufer muss den Pufferspeicher und die BDL aus dem nicht auslagerten Pool zuordnen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | hdaudio.h (hdaudio.h einschließen) |
IRQL | DIRQL |