Partager via


EVT_WDF_PROGRAM_DMA fonction de rappel (wdfdmatransaction.h)

[S’applique uniquement à KMDF]

La fonction de rappel d’événement EvtProgramDma d’un pilote basé sur l’infrastructure programme un appareil spécifié pour effectuer une opération de transfert DMA.

Syntaxe

EVT_WDF_PROGRAM_DMA EvtWdfProgramDma;

BOOLEAN EvtWdfProgramDma(
  [in] WDFDMATRANSACTION Transaction,
  [in] WDFDEVICE Device,
  [in] WDFCONTEXT Context,
  [in] WDF_DMA_DIRECTION Direction,
  [in] PSCATTER_GATHER_LIST SgList
)
{...}

Paramètres

[in] Transaction

Handle de l’objet de transaction DMA qui représente la transaction DMA actuelle.

[in] Device

Handle d’un objet d’appareil framework.

[in] Context

Pointeur de contexte que le pilote a spécifié dans un appel précédent à WdfDmaTransactionExecute.

[in] Direction

Valeur de type WDF_DMA_DIRECTION qui spécifie le sens de l’opération de transfert DMA.

[in] SgList

Pointeur vers une structure SCATTER_GATHER_LIST .

Valeur retournée

La fonction de rappel EvtProgramDma doit retourner TRUE si elle démarre correctement l’opération de transfert DMA. Sinon, cette fonction de rappel doit retourner FALSE. Toutefois, l’infrastructure ignore actuellement la valeur de retour.

Remarques

Les pilotes inscrivent une fonction de rappel d’événement EvtProgramDma en appelant WdfDmaTransactionInitializeUsingRequest ou WdfDmaTransactionInitialize.

L’infrastructure appelle la fonction de rappel d’événement EvtProgramDma d’un pilote lorsqu’un transfert DMA est disponible. La fonction de rappel doit programmer le matériel pour démarrer le transfert.

Le pilote ne doit pas manipuler les mémoires tampons de données associées à la transaction tant que WdfDmaTransactionDmaCompleted Xxx n’a pas retourné TRUE.

Pour les transferts de paquets uniques, la liste de points/regroupement vers laquelle pointe le paramètre SgList contient un seul élément.

Pour plus d’informations sur cette fonction de rappel, consultez Programmation de matériel DMA.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfdmatransaction.h (inclure Wdf.h)
IRQL DISPATCH_LEVEL

Voir aussi

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest