Fungsi WdfLookasideListCreate (wdfmemory.h)
[Berlaku untuk KMDF saja]
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 jenis POOL_TYPE 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. Men-debug 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 lookaside-list baru.
Nilai kembali
WdfLookasideListCreate mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Parameter yang tidak valid terdeteksi. |
|
Memori tidak cukup. |
Untuk daftar nilai pengembalian lain yang mungkin dikembalikan oleh metode WdfLookasideListCreate , lihat Kesalahan Pembuatan Objek Kerangka Kerja.
Metode ini juga mungkin 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 tampilan, 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
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), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |