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