Partager via


fonction WDF_MEMORY_DESCRIPTOR_INIT_MDL (wdfmemory.h)

[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)

Voir aussi

ExAllocatePoolWithTag

IoAllocateMdl

MmBuildMdlForNonPagedPool

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_HANDLE