IMiniportWaveRTStreamNotification::AllocateBufferWithNotification-Methode (portcls.h)
Die AllocateAudioBufferWithNotification
-Methode weist einen zyklischen Puffer für Audiodaten zu, wenn Sie die DMA-gesteuerte Ereignisbenachrichtigung implementieren möchten. Wenn Sie keine Ereignisbenachrichtigung wünschen, müssen Sie IMiniportWaveRTStream::AllocateAudioBufferverwenden.
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 pro Pufferzyklus benötigten Benachrichtigungen an. Gültige Werte sind 1 oder 2, wobei 1 eine einzelne Benachrichtigung am Ende des zyklischen Puffers angibt und 2 zwei Benachrichtigungen pro Pufferzyklus angibt, eine an der Mitte des Puffers und eine am Ende.
[in] RequestedSize
Gibt die angeforderte Größe des Audiopuffers in Bytes an.
[out] AudioBufferMdl
Ausgabezeiger für eine Speicherbeschreibungsliste (MDL-), die den Audiopuffer beschreibt. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene 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 Bytes. Dieser Parameter verweist auf eine ULONG-Variable, in die die Methode den Größenwert schreibt.
[out] OffsetFromFirstPage
Ausgabezeiger für den Offset (in Byte) des Puffers vom Anfang der ersten Seite in der MDL. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene ULONG-Variable, in die die Methode den Offsetwert schreibt.
[out] CacheType
Gibt den Zwischenspeicherungstyp an, den 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 Anruf erfolgreich war. Andernfalls gibt die Methode einen entsprechenden Fehlerstatuscode zurück. In der folgenden Tabelle sind einige der möglichen Fehlerstatuscodes aufgeführt.
Rückgabecode | Beschreibung |
---|---|
|
Der Treiber unterstützt nicht die angegebene Kombination von Pufferattributen. |
|
Es ist nicht genügend Arbeitsspeicher verfügbar, um den Puffer zuzuweisen. |
|
Das Gerät ist nicht bereit. |
Bemerkungen
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 AllocateBufferWithNotification
den WaveRT-Porttreiber, dass die DMA-gesteuerte Ereignisbenachrichtigung gesucht wird, und gibt an, wie viele Benachrichtigungen pro Zyklus des zyklischen Puffers erforderlich sind.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Vista und höheren Windows-Betriebssystemen. |
Zielplattform- | Universal |
Header- | portcls.h |
IRQL- | Passive Ebene. |
Siehe auch
IMiniportWaveRTStream::AllocateAudioBuffer
IMiniportWaveRTStreamNotification