Partager via


WDF_MEMORY_DESCRIPTOR_INIT_MDL, fonction (wdfmemory.h)

[S’applique à KMDF et UMDF]

La fonction WDF_MEMORY_DESCRIPTOR_INIT_MDL initialise une structure WDF_MEMORY_DESCRIPTOR afin qu’elle décrive une liste de descripteurs mémoire (MDL) spécifiée.

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 une MDL qui décrit une mémoire tampon.

[in] BufferLength

Taille, en octets, de la mémoire tampon spécifiée par Mdl .

Valeur de retour

None

Remarques

La fonction WDF_MEMORY_DESCRIPTOR_INIT_MDL met à zéro la structure 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.Mdl et u.MdlType.BufferLength de la structure sur les valeurs que les paramètres Mdl et BufferLength spécifient, respectivement.

Exemples

L’exemple de code suivant alloue une mémoire tampon, crée une MDL pour la mémoire tampon et utilise la MDL pour initialiser une structure de 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
                               );

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 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