IMiniportWaveRTStreamNotification::AllocateBufferWithNotification-Methode (portcls.h)
Die AllocateAudioBufferWithNotification
-Methode weist einen zyklischen Puffer für Audiodaten zu, wenn Sie DMA-gesteuerte Ereignisbenachrichtigungen implementieren möchten. Wenn Sie keine Ereignisbenachrichtigung wünschen, müssen Sie IMiniportWaveRTStream::AllocateAudioBuffer verwenden.
Syntax
NTSTATUS AllocateBufferWithNotification(
[in] ULONG NotificationCount,
[in] ULONG RequestedSize,
[out] PMDL *AudioBufferMdl,
[out] ULONG *ActualSize,
[out] ULONG *OffsetFromFirstPage,
[out] MEMORY_CACHING_TYPE *CacheType
);
Parameter
[in] NotificationCount
Gibt die Anzahl der gewünschten Benachrichtigungen pro Pufferzyklus an. Gültige Werte sind 1 oder 2, wobei 1 eine einzelne Benachrichtigung am Ende des zyklischen Puffers und 2 zwei Benachrichtigungen pro Pufferzyklus angibt, eine am Mittleren Punkt des Puffers und eine am Ende des Puffers.
[in] RequestedSize
Gibt die angeforderte Größe des Audiopuffers in Bytes an.
[out] AudioBufferMdl
Ausgabezeiger für eine Speicherdeskriptorliste (Memory Descriptor List, MDL), die den Audiopuffer beschreibt. Dieser Parameter verweist auf eine vom Aufrufer zugeordnete Zeigervariable, in die die Methode einen Zeiger auf die MDL schreibt.
[out] ActualSize
Ausgabezeiger für die tatsächliche Größe des zugeordneten Puffers in Byte. Dieser Parameter verweist auf eine ULONG-Variable, in die die Methode den Größenwert schreibt.
[out] OffsetFromFirstPage
Ausgabezeiger für den Offset (in Bytes) des Puffers vom Anfang der ersten Seite in der MDL. Dieser Parameter verweist auf eine vom Aufrufer zugeordnete ULONG-Variable, in die die Methode den Offsetwert schreibt.
[out] CacheType
Gibt den Typ der Zwischenspeicherung an, die der Client für den Audiopuffer anfordert. Dieser Parameter ist ein MEMORY_CACHING_TYPE-Enumerationswert .
Rückgabewert
AllocateBufferWithNotification
gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich war. Andernfalls gibt die Methode einen geeigneten Fehler status Code zurück. In der folgenden Tabelle sind einige der möglichen Fehler status Codes aufgeführt.
Rückgabecode | Beschreibung |
---|---|
|
Der Treiber unterstützt die angegebene Kombination von Pufferattributen nicht. |
|
Es ist nicht genügend Arbeitsspeicher verfügbar, um den Puffer zuzuweisen. |
|
Das Gerät ist nicht bereit. |
Hinweise
AllocateBufferWithNotification
-Methode auf, um einen zyklischen Puffer zuzuweisen, den der Porttreiber später dem virtuellen Adressraum des Clients zuordnen kann. AllocateBufferWithNotification
funktioniert ähnlich wie IMiniportWaveRTStream::AllocateAudioBuffer. Darüber hinaus identifiziert der WaveRT-Porttreiber, AllocateBufferWithNotification
dass eine DMA-gesteuerte Ereignisbenachrichtigung gewünscht wird, und gibt an, wie viele Benachrichtigungen pro Zyklus des zyklischen Puffers erforderlich sind.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Windows-Betriebssystemen. |
Zielplattform | Universell |
Header | portcls.h |
IRQL | Passive Ebene. |
Weitere Informationen
IMiniportWaveRTStream::AllocateAudioBuffer
IMiniportWaveRTStreamNotification