PBUILD_MDL_FROM_SCATTER_GATHER_LIST fonction de rappel (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
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 master 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 points/regroupements.
[out] TargetMdl
Pointeur vers une variable que la routine utilise pour renvoyer le MDL créé pour contenir la mémoire tampon décrite par la liste de points/regroupements. La valeur retournée peut être identique à OriginalMdl.
Valeur retournée
BuildMdlFromScatterGatherList retourne l’un des codes status suivants :
Code de retour | Description |
---|---|
STATUS_SUCCESS | L’opération a réussi. |
STATUS_INVALID_PARAMETER | Le paramètre OriginalMdl a la valeur NULL. |
STATUS_INSUFFICIENT_RESOURCES | Il n’y a pas assez de mémoire disponible pour allouer une nouvelle MDL. |
STATUS_NONE_MAPPED | Le système a déjà créé une mdl pour les emplacements de mémoire dans la liste 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 un pointeur à partir de l’adresse retournée dans une structure de 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 points/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 points/regroupements, qu’il s’agisse ou non d’une copie.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows XP et les versions ultérieures de Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | wdm.h (inclure Wdm.h) |
IRQL | <= DISPATCH_LEVEL |
Règles de conformité DDI | IrqlDispatch(wdm) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour