Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die AllocateRenderDmaEngine Routine weist ein DMA-Modul für einen Renderdatenstrom zu.
Der Funktionszeigertyp für eine AllocateRenderDmaEngine Routine wird wie folgt definiert.
Syntax
PALLOCATE_RENDER_DMA_ENGINE PallocateRenderDmaEngine;
NTSTATUS PallocateRenderDmaEngine(
[in] PVOID _context,
[in] PHDAUDIO_STREAM_FORMAT StreamFormat,
[in] BOOLEAN Stripe,
[out] PHANDLE Handle,
[out] PHDAUDIO_CONVERTER_FORMAT ConverterFormat
)
{...}
Parameter
[in] _context
Gibt den Kontextwert aus den Context- Elementen der HDAUDIO_BUS_INTERFACE,HDAUDIO_BUS_INTERFACE_V2oder HDAUDIO_BUS_INTERFACE_BDL Strukturen an.
[in] StreamFormat
Gibt das angeforderte Datenstromformat an. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene Struktur des Typs HDAUDIO_STREAM_FORMAT, die ein Datenformat für den Datenstrom angibt.
[in] Stripe
Gibt an, ob das Streifen aktiviert werden soll. Wenn TRUE, ermöglicht die Routine das Streifen in den DMA-Übertragungen. Wenn FALSE-, ist die Streifenung deaktiviert.
[out] Handle
Ruft den Handle zum DMA-Modul ab. Dieser Parameter verweist auf eine handle-Variable, in die die Routine ein Handle schreibt, das das DMA-Modul identifiziert.
[out] ConverterFormat
Ruft das Konverterformat ab. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene Struktur des Typs HDAUDIO_CONVERTER_FORMAT, in die die Routine das codierte Format schreibt.
Rückgabewert
AllocateRenderDmaEngine gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ein DMA-Modul reserviert. Andernfalls gibt die Routine einen geeigneten Fehlercode zurück. In der folgenden Tabelle sind einige der möglichen Rückgabefehlercodes aufgeführt.
| Rückgabecode | Beschreibung |
|---|---|
|
Gibt an, dass das DMA-Modul nicht genügend internen FIFO-Speicher zuordnen kann, um das angeforderte Datenstromformat zu unterstützen. |
|
Gibt an, dass entweder kein DMA-Modul verfügbar ist oder die Anforderung die verfügbaren Bandbreitenressourcen überschreitet. |
|
Gibt an, dass einer der Parameterwerte falsch ist (ungültiger Parameterwert oder ungültiger Zeiger). |
Bemerkungen
Diese Routine weist ein Render-DMA-Modul zu und gibt das Datenformat für den Datenstrom an. Bei erfolgreicher Ausführung gibt die Routine einen Handle aus, den der Aufrufer anschließend verwendet, um das DMA-Modul zu identifizieren.
Die AllocateRenderDmaEngine Routine reserviert Hardwareressourcen (das DMA-Modul), konfiguriert jedoch nicht die DMA-Hardware. Nach dem Aufrufen dieser Routine zum Reservieren eines DMA-Moduls muss ein Funktionstreiber dem DMA-Modul einen DMA-Puffer zuweisen und das Modul so konfigurieren, dass er den Puffer verwendet:
- Wenn Sie die HDAUDIO_BUS_INTERFACE Version der HD Audio DDI verwenden, ruft der Funktionstreiber die AllocateDmaBuffer-Routine auf, damit der HD-Audiobustreiber einen Datenpuffer für DMA-Übertragungen zuweist und das DMA-Modul für die Verwendung des Puffers einrichten kann.
- Wenn Sie die HDAUDIO_BUS_INTERFACE_BDL Version der DDI verwenden, ruft der Funktionstreiber AllocateContiguousDmaBuffer auf, um den DMA-Puffer zuzuweisen, und ruft die SetupDmaEngineWithBdl Routine auf, um das DMA-Modul für die Verwendung des Puffers einzurichten.
AllocateRenderDmaEnginekann das Format des Datenstroms durch Aufrufen ChangeBandwidthAllocationgeändert werden.
Der Stripe Parameter gibt an, ob das DMA-Modul streifen soll, um Datenübertragungen zu beschleunigen. Weitere Informationen finden Sie unter Streifen.
Über den Handle-Parameter gibt die Routine ein Handle aus, das der Aufrufer verwendet, um das zugeordnete DMA-Modul in nachfolgenden Aufrufen von AllocateDmaBuffer, ChangeBandwidthAllocation, FreeDmaBuffer, SetupDmaEngineWithBdlund SetDmaEngineState. Der Funktionstreiber gibt den Handle frei, indem FreeDmaEngineaufgerufen wird.
Über den converterFormat Parameter gibt die Routine einen Datenstromdeskriptorwert aus, den der Aufrufer zum Programmieren der Ausgabekonverter verwenden kann. Die Routine codiert die Informationen aus dem streamFormat Parameter in eine 16-Bit-Ganzzahl. Weitere Informationen finden Sie unter HDAUDIO_CONVERTER_FORMAT.
Unmittelbar nach einem erfolgreichen Aufruf von AllocateRenderDmaEnginebefindet sich das DMA-Modul im Zustand "Datenstrom zurücksetzen". Bevor Sie SetDmaEngineState- aufrufen, um das DMA-Modul in den ausgeführten, angehaltenen oder angehaltenen Zustand zu ändern, muss der Client zunächst einen DMA-Puffer für das Modul zuweisen.
Ein WDM-Audiotreiber ruft AllocateRenderDmaEngine während der Ausführung der NewStream--Methode AllocateRenderDmaEngine auf (siehe z. B. IMiniportWavePci::NewStream).
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Desktop |
| Header- | hdaudio.h (einschließlich Hdaudio.h) |
| IRQL- | PASSIVE_LEVEL |