Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[S’applique à KMDF et UMDF]
La fonction WDF_MEMORY_DESCRIPTOR_INIT_MDL initialise une structure WDF_MEMORY_DESCRIPTOR afin qu’elle décrit une liste de descripteurs de mémoire spécifiée (MDL).
Syntaxe
VOID WDF_MEMORY_DESCRIPTOR_INIT_MDL(
[out] PWDF_MEMORY_DESCRIPTOR Descriptor,
[in] PMDL Mdl,
[in] ULONG BufferLength
);
Paramètres
[out] Descriptor
Pointeur vers une structure WDF_MEMORY_DESCRIPTOR.
[in] Mdl
Pointeur vers un MDL qui décrit une mémoire tampon.
[in] BufferLength
Taille, en octets, de la mémoire tampon qui Mdl spécifie.
Valeur de retour
Aucun
Remarques
La fonction WDF_MEMORY_DESCRIPTOR_INIT_MDL zéro la structure de WDF_MEMORY_DESCRIPTOR spécifiée et définit le membre type de la structure sur WdfMemoryDescriptorTypeMdl. Ensuite, il définit les membres u.MdlType.MdlType.Mdl et u.MdlType.BufferLength aux valeurs que les paramètres Mdl et BufferLength spécifient, respectivement.
Exemples
L’exemple de code suivant alloue une mémoire tampon, crée un MDL pour la mémoire tampon et utilise la bibliothèque MDL pour initialiser une structure WDF_MEMORY_DESCRIPTOR.
PVOID pBuffer = NULL;
PMDL pMdl = NULL;
pBuffer = ExAllocatePoolWithTag(
NonPagedPool,
BUFFER_LENGTH,
IOTARGET_DRIVER_TAG
);
if (pBuffer == NULL){
Status = STATUS_UNSUCCESSFUL;
goto Cleanup;
}
pMdl = IoAllocateMdl(
pBuffer,
BUFFER_LENGTH,
FALSE,
TRUE,
NULL
);
if (pMdl == NULL){
Status = STATUS_UNSUCCESSFUL;
goto Cleanup;
}
MmBuildMdlForNonPagedPool(pMdl);
WDF_MEMORY_DESCRIPTOR_INIT_MDL(
pInputBuffer,
pMdl,
BUFFER_LENGTH
);
Spécifications
| Besoin | Valeur |
|---|---|
| plateforme cible | Universel |
| version minimale de KMDF | 1.0 |
| version minimale de UMDF | 2.0 |
| En-tête | wdfmemory.h (include Wdf.h) |
| règles de conformité DDI | mdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf) |