WDF_MEMORY_DESCRIPTOR_INIT_MDL (wdfmemory.h)
[Berlaku untuk KMDF dan UMDF]
Fungsi WDF_MEMORY_DESCRIPTOR_INIT_MDL menginisialisasi struktur WDF_MEMORY_DESCRIPTOR sehingga menjelaskan daftar deskriptor memori (MDL) yang ditentukan.
Sintaks
void WDF_MEMORY_DESCRIPTOR_INIT_MDL(
[out] PWDF_MEMORY_DESCRIPTOR Descriptor,
[in] PMDL Mdl,
[in] ULONG BufferLength
);
Parameter
[out] Descriptor
Penunjuk ke struktur WDF_MEMORY_DESCRIPTOR .
[in] Mdl
Penunjuk ke MDL yang menjelaskan buffer.
[in] BufferLength
Ukuran, dalam byte, dari buffer yang ditentukan Mdl .
Nilai kembali
Tidak ada
Keterangan
Fungsi WDF_MEMORY_DESCRIPTOR_INIT_MDL nol struktur WDF_MEMORY_DESCRIPTOR yang ditentukan dan mengatur anggota Jenis struktur ke WdfMemoryDescriptorTypeMdl. Kemudian mengatur anggota u.MdlType.Mdl dan u.MdlType.BufferLength struktur ke nilai yang ditentukan oleh parameter Mdl dan BufferLength .
Contoh
Contoh kode berikut mengalokasikan buffer, membuat MDL untuk buffer, dan menggunakan MDL untuk menginisialisasi struktur 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
);
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | wdfmemory.h (termasuk Wdf.h) |
Aturan kepatuhan DDI | MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf) |