Fungsi RtlLookupElementGenericTableAvl (ntddk.h)
Rutinitas RtlLookupElementGenericTableAvl mencari tabel generik untuk elemen yang cocok dengan data yang ditentukan.
Sintaks
NTSYSAPI PVOID RtlLookupElementGenericTableAvl(
[in] PRTL_AVL_TABLE Table,
[in] PVOID Buffer
);
Parameter
[in] Table
Penunjuk ke tabel Adelson-Velsky/Landis (AVL) generik (RTL_AVL_TABLE). Tabel harus diinisialisasi dengan memanggil RtlInitializeGenericTableAvl.
[in] Buffer
Buffer data pencarian untuk diteruskan ke CompareRoutine yang terdaftar ketika RtlInitializeGenericTableAvl menginisialisasi tabel generik. Untuk informasi selengkapnya, lihat deskripsi RtlInitializeGenericTableAvl.
Nilai kembali
RtlLookupElementGenericTableAvl mengembalikan penunjuk ke data pengguna yang terkait dengan elemen pencocokan dalam tabel generik, atau NULL jika tabel generik saat ini tidak memiliki elemen atau jika tidak ada elemen yang cocok yang ditemukan.
Keterangan
Secara default, sistem operasi menggunakan pohon splay untuk mengimplementasikan tabel generik, tetapi rutinitas RtlLookupElementGenericTableAvl hanya berfungsi dengan pohon Adelson-Velsky/Landis (AVL). Untuk mengonfigurasi rutinitas tabel generik untuk menggunakan pohon AVL alih-alih pohon splay di driver Anda, masukkan pernyataan definisi berikut dalam file header umum sebelum menyertakan Ntddk.h:
#define RTL_USE_AVL_TABLES 0
Jika RTL_USE_AVL_TABLES tidak ditentukan, Anda harus menggunakan bentuk AVL dari rutinitas tabel generik. Misalnya, gunakan rutinitas RtlLookupElementGenericTableAvl alih-alih RtlLookupElementGenericTable. Dalam panggilan ke RtlLookupElementGenericTableAvl, pemanggil harus melewati struktur tabel RTL_AVL_TABLE daripada RTL_GENERIC_TABLE.
Penelepon Rtl.. Rutinitas GenericTableAvl bertanggung jawab untuk menyinkronkan akses secara eksklusif ke tabel generik. Mutex cepat eksklusif adalah mekanisme sinkronisasi yang paling efisien untuk digunakan untuk tujuan ini.
Pemanggil RtlLookupElementGenericTableAvl harus berjalan di IRQL < DISPATCH_LEVEL jika salah satu kondisi berikut ini berlaku:
Memori yang dialokasikan penelepon di Tabel atau di Buffer dapat di-pageable.
CompareRoutine yang disediakan penelepon berisi kode yang dapat dipaginasi.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | ntddk.h (termasuk Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL IRQL < (lihat bagian Keterangan) |