função WDF_MEMORY_DESCRIPTOR_INIT_MDL (wdfmemory.h)

[Aplica-se a KMDF e UMDF]

A função WDF_MEMORY_DESCRIPTOR_INIT_MDL inicializa uma estrutura WDF_MEMORY_DESCRIPTOR para que ela descreva uma MDL (lista de descritores de memória) especificada.

Sintaxe

void WDF_MEMORY_DESCRIPTOR_INIT_MDL(
  [out] PWDF_MEMORY_DESCRIPTOR Descriptor,
  [in]  PMDL                   Mdl,
  [in]  ULONG                  BufferLength
);

Parâmetros

[out] Descriptor

Um ponteiro para uma estrutura WDF_MEMORY_DESCRIPTOR .

[in] Mdl

Um ponteiro para um MDL que descreve um buffer.

[in] BufferLength

O tamanho, em bytes, do buffer especificado pelo Mdl .

Retornar valor

Nenhum

Comentários

A função WDF_MEMORY_DESCRIPTOR_INIT_MDL zerar a estrutura de WDF_MEMORY_DESCRIPTOR especificada e define o membro Type da estrutura como WdfMemoryDescriptorTypeMdl. Em seguida, ele define os membros u.MdlType.Mdl e u.MdlType.BufferLength da estrutura como os valores especificados pelos parâmetros Mdl e BufferLength , respectivamente.

Exemplos

O exemplo de código a seguir aloca um buffer, cria um MDL para o buffer e usa o MDL para inicializar uma estrutura 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
                               );

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfmemory.h (inclua Wdf.h)
Regras de conformidade da DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)

Confira também

ExAllocatePoolWithTag

IoAllocateMdl

MmBuildMdlForNonPagedPool

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_HANDLE