IMiniportWaveRTStreamNotification ::AllocateBufferWithNotification, méthode (portcls.h)
La méthode AllocateAudioBufferWithNotification
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 notification unique à 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 de 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 dans 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 de retour
AllocateBufferWithNotification
retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne un code d’état d’erreur approprié. Le tableau suivant présente certains des codes d’état d’erreur possibles.
Retourner le code | 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. |
|
L’appareil n’est pas prêt. |
Remarques
AllocateBufferWithNotification
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 de 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 par cycle de la mémoire tampon cyclique nécessaire.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista et les systèmes d’exploitation Windows ultérieurs. |
plateforme cible | Universel |
d’en-tête | portcls.h |
IRQL | Niveau passif. |
Voir aussi
IMiniportWaveRTStream ::AllocateAudioBuffer
IMiniportWaveRTStreamNotification