Freigeben über


WDF_MEMORY_DESCRIPTOR_INIT_MDL-Funktion (wdfmemory.h)

[Gilt für KMDF und UMDF]

Die WDF_MEMORY_DESCRIPTOR_INIT_MDL-Funktion initialisiert eine WDF_MEMORY_DESCRIPTOR Struktur, sodass eine angegebene Speicherbeschreibungsliste (MDL) beschrieben wird.

Syntax

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

Die Parameter

[out] Descriptor

Ein Zeiger auf eine WDF_MEMORY_DESCRIPTOR Struktur.

[in] Mdl

Ein Zeiger auf eine MDL, die einen Puffer beschreibt.

[in] BufferLength

Die Größe des Puffers in Bytes, der Mdl- angibt.

Rückgabewert

Nichts

Bemerkungen

Die WDF_MEMORY_DESCRIPTOR_INIT_MDL-Funktion stellt die angegebene WDF_MEMORY_DESCRIPTOR Struktur null und legt den Type Member der Struktur auf WdfMemoryDescriptorTypeMdlfest. Anschließend wird die u.MdlType.Mdl und u.MdlType.BufferLength Member auf die Werte festgelegt, die die Mdl und BufferLength Parameter angeben.

Beispiele

Im folgenden Codebeispiel wird ein Puffer zugewiesen, eine MDL für den Puffer erstellt und die MDL verwendet, um eine WDF_MEMORY_DESCRIPTOR Struktur zu initialisieren.

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

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Kopfzeile wdfmemory.h (include Wdf.h)
DDI-Complianceregeln MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)

Siehe auch

ExAllocatePoolWithTag-

IoAllocateMdl-

MmBuildMdlForNonPagedPool

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_HANDLE