Partager via


PFREE_DMA_ENGINE fonction de rappel (hdaudio.h)

La routine FreeDmaEngine libère un moteur DMA précédemment alloué par un appel à AllocateCaptureDmaEngine ou AllocateRenderDmaEngine.

Le type de pointeur de fonction pour une routine FreeDmaEngine est défini comme suit.

Syntaxe

PFREE_DMA_ENGINE PfreeDmaEngine;

NTSTATUS PfreeDmaEngine(
  [in] PVOID _context,
  [in] HANDLE Handle
)
{...}

Paramètres

[in] _context

Spécifie la valeur de contexte du membre Context du HDAUDIO_BUS_INTERFACE, de la structure HDAUDIO_BUS_INTERFACE_V2 ou HDAUDIO_BUS_INTERFACE_BDL.

[in] Handle

Gérer l’identification du moteur DMA. Cette valeur de handle a été obtenue à partir d’un appel précédent à AllocateCaptureDmaEngine ou AllocateRenderDmaEngine.

Valeur de retour

FreeDmaEngine retourne STATUS_SUCCESS si l’appel réussit à libérer le moteur DMA. Sinon, la routine retourne un code d’erreur approprié. Le tableau suivant présente certains des codes d’état de retour possibles.

Retourner le code Description
STATUS_INVALID_HANDLE
Indique que la valeur du paramètre de handle n’est pas valide.
STATUS_INVALID_DEVICE_REQUEST
Indique que le flux n’est pas dans l’état de réinitialisation ou qu’une mémoire tampon est toujours allouée pour le moteur DMA.

Remarques

Cette routine libère un moteur DMA précédemment réservé par un appel à la routine AllocateCaptureDmaEngine ou AllocateRenderDmaEngine routine.

Cette routine échoue et retourne le code d’erreur STATUS_INVALID_DEVICE_REQUEST dans l’une des circonstances suivantes :

  • Toute mémoire tampon DMA précédemment allouée n’a pas été libérée (en appelant FreeDmaBuffer ou FreeContiguousDmaBuffer).
  • Le flux est dans un état autre que la réinitialisation.
Un pilote audio appelle cette routine pour fermer la broche (et détruire le flux).

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête hdaudio.h (include Hdaudio.h)
IRQL <=DISPATCH_LEVEL

Voir aussi

AllocateCaptureDmaEngine

AllocateRenderDmaEngine

FreeContiguousDmaBuffer

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2