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