Méthode IMiniportWaveRTStreamNotification ::AllocateBufferWithNotification (portcls.h)
La AllocateAudioBufferWithNotification
méthode alloue une mémoire tampon cyclique pour les données audio lorsque vous souhaitez implémenter une notification d’événement pilotée par DMA. Si vous ne souhaitez pas de notification d’événement, vous devez utiliser IMiniportWaveRTStream ::AllocateAudioBuffer.
Syntaxe
NTSTATUS AllocateBufferWithNotification(
[in] ULONG NotificationCount,
[in] ULONG RequestedSize,
[out] PMDL *AudioBufferMdl,
[out] ULONG *ActualSize,
[out] ULONG *OffsetFromFirstPage,
[out] MEMORY_CACHING_TYPE *CacheType
);
Paramètres
[in] NotificationCount
Spécifie le nombre de notifications souhaitées par cycle de mémoire tampon. Les valeurs valides sont 1 ou 2, où 1 indique une seule notification à la fin de la mémoire tampon cyclique et 2 indique deux notifications par cycle de mémoire tampon, une au milieu de la mémoire tampon et une à la fin.
[in] RequestedSize
Spécifie la taille demandée, en octets, de la mémoire tampon audio.
[out] AudioBufferMdl
Pointeur de sortie pour une liste de descripteurs mémoire (MDL) qui décrit la mémoire tampon audio. Ce paramètre pointe vers une variable de pointeur allouée par l’appelant dans laquelle la méthode écrit un pointeur vers le MDL.
[out] ActualSize
Pointeur de sortie pour la taille réelle, en octets, de la mémoire tampon allouée. Ce paramètre pointe vers une variable ULONG dans laquelle la méthode écrit la valeur de taille.
[out] OffsetFromFirstPage
Pointeur de sortie pour le décalage (en octets) de la mémoire tampon, à partir du début de la première page du MDL. Ce paramètre pointe vers une variable ULONG allouée par l’appelant dans laquelle la méthode écrit la valeur de décalage.
[out] CacheType
Spécifie le type de mise en cache que le client demande pour la mémoire tampon audio. Ce paramètre est une valeur d’énumération MEMORY_CACHING_TYPE
Valeur retournée
AllocateBufferWithNotification
retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne une erreur appropriée status code. Le tableau suivant présente quelques-uns des codes d’erreur possibles status.
Code de retour | Description |
---|---|
|
Le pilote ne prend pas en charge la combinaison spécifiée d’attributs de mémoire tampon. |
|
La mémoire disponible est insuffisante pour allouer la mémoire tampon. |
|
Le périphérique n’est pas prêt. |
Remarques
AllocateBufferWithNotification
méthode pour allouer une mémoire tampon cyclique que le pilote de port peut mapper ultérieurement à l’espace d’adressage virtuel du client. AllocateBufferWithNotification
fonctionne d’une manière similaire à IMiniportWaveRTStream ::AllocateAudioBuffer. En outre, AllocateBufferWithNotification
identifie au pilote de port WaveRT que la notification d’événement pilotée par DMA est souhaitée et spécifie le nombre de notifications nécessaires par cycle de la mémoire tampon cyclique.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans les systèmes d’exploitation Windows Vista et ultérieurs. |
Plateforme cible | Universal |
En-tête | portcls.h |
IRQL | Niveau passif. |
Voir aussi
IMiniportWaveRTStream ::AllocateAudioBuffer
IMiniportWaveRTStreamNotification