Condividi tramite


funzione WDF_MEMORY_DESCRIPTOR_INIT_MDL (wdfmemory.h)

[Si applica a KMDF e UMDF]

La funzione WDF_MEMORY_DESCRIPTOR_INIT_MDL inizializza una struttura WDF_MEMORY_DESCRIPTOR in modo da descrivere un elenco di descrittori di memoria specificato (MDL).

Sintassi

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

Parametri

[out] Descriptor

Puntatore a una struttura WDF_MEMORY_DESCRIPTOR .

[in] Mdl

Puntatore a un MDL che descrive un buffer.

[in] BufferLength

Dimensioni, in byte, del buffer specificato da Mdl .

Valore restituito

nessuno

Osservazioni

La funzione WDF_MEMORY_DESCRIPTOR_INIT_MDL zero la struttura di WDF_MEMORY_DESCRIPTOR specificata e imposta il membro Type della struttura su WdfMemoryDescriptorTypeMdl. Imposta quindi i membri u.MdlType.Mdl.Mdl e u.MdlType.BufferLength sui valori specificati rispettivamente dai parametri Mdl e BufferLength.

Esempio

Nell'esempio di codice seguente viene allocato un buffer, viene creato un MDL per il buffer e viene usato MDL per inizializzare una struttura 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
                               );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfmemory.h (include Wdf.h)
Regole di conformità DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)

Vedi anche

ExAllocatePoolWithTag

IoAllocateMdl

MmBuildMdlForNonPagedPool

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_HANDLE