Lire en anglais

Partager via


fonction de rappel PBUILD_MDL_FROM_SCATTER_GATHER_LIST (wdm.h)

La routine BuildMdlFromScatterGatherList génère un MDL à partir d’une liste de points/regroupement allouée par le système.

Cette routine est réservée à l’utilisation du système.

Syntaxe

C++
PBUILD_MDL_FROM_SCATTER_GATHER_LIST PbuildMdlFromScatterGatherList;

NTSTATUS PbuildMdlFromScatterGatherList(
  [in]  PDMA_ADAPTER DmaAdapter,
  [in]  PSCATTER_GATHER_LIST ScatterGather,
  [in]  PMDL OriginalMdl,
  [out] PMDL *TargetMdl
)
{...}

Paramètres

[in] DmaAdapter

Pointeur vers la structure DMA_ADAPTER retournée par IoGetDmaAdapter qui représente l’adaptateur maître de bus ou le contrôleur DMA.

[in] ScatterGather

Pointeur vers la structure SCATTER_GATHER_LIST passée à la routine AdapterListControl du pilote.

[in] OriginalMdl

Pointeur vers le MDL d’origine utilisé par le pilote pour générer la liste de nuages de points/regroupements.

[out] TargetMdl

Pointeur vers une variable utilisée pour renvoyer le MDL créé pour contenir la mémoire tampon décrite par la liste de nuages de points/regroupements. La valeur retournée peut être identique à OriginalMdl.

Valeur de retour

BuildMdlFromScatterGatherList retourne l’un des codes d’état suivants :

Retourner le code Description
STATUS_SUCCESS L’opération a réussi.
STATUS_INVALID_PARAMETER Le paramètre OriginalMdl est NULL.
STATUS_INSUFFICIENT_RESOURCES Il n’y a pas suffisamment de mémoire disponible pour allouer un nouveau MDL.
STATUS_NONE_MAPPED Le système a déjà créé un MDL pour les emplacements de mémoire dans la liste de nuages de points/regroupements. (Cela se produit uniquement si la routine est appelée deux fois sur la même liste de points/regroupements.)

Remarques

BuildMdlFromScatterGatherList n’est pas une routine système qui peut être appelée directement par nom. Cette routine peut être appelée uniquement par le pointeur de l’adresse retournée dans une structure DMA_OPERATIONS. Les pilotes obtiennent l’adresse de cette routine en appelant IoGetDmaAdapter avec le membre version du paramètre DeviceDescription défini sur DEVICE_DESCRIPTION_VERSION2. Si IoGetDmaAdapter retourne NULL, la routine n’est pas disponible sur votre plateforme.

Lorsqu’un pilote crée une liste de nuages/regroupements pour écrire sur un appareil, le système peut effectuer une copie des données à écrire et utiliser cette copie pour effectuer l’opération DMA. Utilisez cette routine pour accéder aux emplacements de mémoire dans la liste de nuages de points/regroupements, que ces emplacements soient une copie.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows XP et versions ultérieures de Windows.
plateforme cible Bureau
d’en-tête wdm.h (include Wdm.h)
IRQL <= DISPATCH_LEVEL
règles de conformité DDI irqlDispatch(wdm)

Voir aussi

BuildScatterGatherList

DEVICE_DESCRIPTION

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter

SCATTER_GATHER_LIST