Fungsi WdfMemoryCreateFromLookaside (wdfmemory.h)

[Berlaku untuk KMDF saja]

Metode WdfMemoryCreateFromLookaside membuat objek memori kerangka kerja dan mendapatkan buffer memori dari daftar lookaside tertentu.

Sintaks

NTSTATUS WdfMemoryCreateFromLookaside(
  [in]  WDFLOOKASIDE Lookaside,
  [out] WDFMEMORY    *Memory
);

Parameter

[in] Lookaside

Handel ke objek daftar lookaside kerangka kerja yang diperoleh dengan memanggil WdfLookasideListCreate.

[out] Memory

Penunjuk ke lokasi yang menerima handel ke objek memori kerangka kerja baru.

Nilai kembali

WdfMemoryCreateFromLookaside mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter yang tidak valid terdeteksi.
STATUS_INSUFFICIENT_RESOURCES
Memori tidak cukup.
 

Metode ini juga mungkin mengembalikan nilai NTSTATUS lainnya.

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Keterangan

Setelah driver Anda memanggil WdfLookasideListCreate untuk membuat objek lookaside-list, driver dapat memanggil WdfMemoryCreateFromLookaside untuk mendapatkan buffer dari daftar lookaside.

Kerangka kerja menyediakan handel ke objek memori yang mewakili buffer. Ketika kerangka kerja membuat objek memori, ia menggunakan atribut objek yang disediakan driver ketika disebut WdfMemoryCreateFromLookaside.

Ketika driver Anda telah selesai menggunakan objek memori yang diperolehnya dari daftar lookaside, driver harus memanggil WdfObjectDelete untuk mengembalikan objek memori ke daftar lookaside.

Untuk informasi selengkapnya tentang objek memori kerangka kerja dan daftar tampilan, lihat Menggunakan Buffer Memori.

Jika buffer lookaside-list dialokasikan dari kumpulan memori yang dapat dipaginasi, metode WdfMemoryCreateFromLookaside harus dipanggil di IRQL <= APC_LEVEL. Jika tidak, metode dapat dipanggil di IRQL <= DISPATCH_LEVEL.

Contoh

Contoh kode berikut membuat daftar lookaside dan menyimpan handel daftar di ruang konteks objek perangkat yang ditentukan driver. Kemudian, driver mendapatkan buffer dari daftar lookaside.

PDRIVER_CONTEXT  driverContext;
WDFMEMORY  memHandle;

driverContext = GetDriverContext(driver);

status = WdfLookasideListCreate(
                                WDF_NO_OBJECT_ATTRIBUTES,
                                sizeof(MY_LOOKASIDE_BUFFER),
                                NonPagedPool,
                                WDF_NO_OBJECT_ATTRIBUTES,
                                MY_POOL_TAG,
                                &driverContext->LookasideListHandle
                                );
...
status = WdfMemoryCreateFromLookaside(
                                      driverContext->LookasideListHandle,
                                      &memHandle
                                      );

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Header wdfmemory.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.)
IRQL Lihat bagian Keterangan.
Aturan kepatuhan DDI DriverCreate(kmdf)

Lihat juga

WdfLookasideListCreate

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectDelete