Fungsi WdfLookasideListCreate (wdfmemory.h)

[Hanya berlaku untuk KMDF]

Metode WdfLookasideListCreate membuat objek lookaside-list, tempat driver dapat memperoleh objek memori.

Sintaks

NTSTATUS WdfLookasideListCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES LookasideAttributes,
  [in]           size_t                 BufferSize,
  [in]           POOL_TYPE              PoolType,
  [in, optional] PWDF_OBJECT_ATTRIBUTES MemoryAttributes,
  [in, optional] ULONG                  PoolTag,
  [out]          WDFLOOKASIDE           *Lookaside
);

Parameter

[in, optional] LookasideAttributes

Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang berisi atribut objek untuk objek lookaside-list baru. Parameter ini bersifat opsional dan dapat WDF_NO_OBJECT_ATTRIBUTES.

[in] BufferSize

Ukuran bukan nol, dalam byte, dari buffer yang akan dialokasikan kerangka kerja untuk setiap objek memori.

[in] PoolType

Nilai POOL_TYPE-typed yang menentukan jenis memori yang akan dialokasikan.

[in, optional] MemoryAttributes

Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang berisi atribut objek untuk setiap objek memori yang diperoleh driver dari daftar lookaside. Parameter ini bersifat opsional dan dapat WDF_NO_OBJECT_ATTRIBUTES.

[in, optional] PoolTag

Tag kumpulan yang ditentukan driver untuk setiap buffer objek memori. Debugger menampilkan tag ini. Driver biasanya menentukan string karakter hingga empat karakter, dibatasi oleh tanda kutip tunggal, dalam urutan terbalik (misalnya, 'dcba'). Nilai ASCII dari setiap karakter dalam tag harus antara 0 dan 127. Penelusuran kesalahan driver Anda lebih mudah jika setiap tag kumpulan unik.

Jika PoolTag nol, kerangka kerja menyediakan tag kumpulan default yang menggunakan empat karakter pertama dari nama layanan mode kernel driver Anda. Jika nama layanan dimulai dengan "WDF" (namanya tidak peka huruf besar/kecil dan tidak menyertakan tanda kutip), empat karakter berikutnya akan digunakan. Jika kurang dari empat karakter tersedia, "FxDr" digunakan.

Untuk KMDF versi 1.5 dan yang lebih baru, driver Anda dapat menggunakan anggota DriverPoolTag dari struktur WDF_DRIVER_CONFIG untuk menentukan tag kumpulan default.

[out] Lookaside

Penunjuk ke lokasi yang menerima handel ke objek daftar lookaside baru.

Mengembalikan nilai

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

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

Untuk daftar nilai pengembalian lain yang mungkin dikembalikan oleh metode WdfLookasideListCreate , lihat Kesalahan Pembuatan Objek Kerangka Kerja.

Metode ini juga dapat mengembalikan nilai NTSTATUS lainnya.

Keterangan

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

Secara default, induk objek lookaside-list baru adalah objek driver kerangka kerja yang dibuat metode WdfDriverCreate . Anda dapat menggunakan anggota ParentObject dari struktur WDF_OBJECT_ATTRIBUTES untuk menentukan induk yang berbeda. Kerangka kerja menghapus objek lookaside-list saat menghapus objek induk. Jika driver Anda tidak mengubah induk default, driver harus menghapus objek lookaside-list ketika telah selesai menggunakan objek ; jika tidak, objek lookaside-list akan tetap ada sampai manajer I/O membongkar driver Anda.

Jika driver Anda menyediakan struktur WDF_OBJECT_ATTRIBUTES untuk parameter LookasideAttributes dan MemoryAttributes , dan jika kedua struktur menentukan objek perangkat sebagai objek induk, handel objek perangkat harus sama.

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

Jika driver Anda menentukan PagedPool untuk parameter PoolType , metode WdfLookasideListCreate harus dipanggil di IRQL <= APC_LEVEL. Jika tidak, metode dapat dipanggil di IRQL <= DISPATCH_LEVEL.

Contoh

Untuk contoh kode yang menggunakan WdfLookasideListCreate, lihat WdfMemoryCreateFromLookaside.

Persyaratan

   
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), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Lihat juga

WDF_OBJECT_ATTRIBUTES

WdfDriverBuat

WdfMemoryCreateFromLookaside