Partilhar via


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 de 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 que especifica Mdl.

Valor de retorno

Nenhum

Observações

A função WDF_MEMORY_DESCRIPTOR_INIT_MDL zera a estrutura de WDF_MEMORY_DESCRIPTOR especificada e define o membro tipo da estrutura como WdfMemoryDescriptorTypeMdl. Em seguida, ele define os membros u.MdlType.Mdl e membros u.MdlType.BufferLength para os valores que os parâmetros Mdl e BufferLength especificam, 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 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
                               );

Requisitos

Requisito Valor
da 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 de DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)

Consulte também

ExAllocatePoolWithTag

IoAllocateMdl

MmBuildMdlForNonPagedPool

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_HANDLE