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 |
---|---|
|
Indique que la valeur du paramètre de handle n’est pas valide. |
|
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.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | hdaudio.h (include Hdaudio.h) |
IRQL | <=DISPATCH_LEVEL |