Bagikan melalui


Fungsi RtlNumberGenericTableElements (ntddk.h)

Rutinitas RtlNumberGenericTableElements mengembalikan jumlah elemen dalam tabel generik.

Sintaks

NTSYSAPI ULONG RtlNumberGenericTableElements(
  [in] PRTL_GENERIC_TABLE Table
);

Parameter

[in] Table

Penunjuk ke tabel generik (RTL_GENERIC_TABLE). Tabel harus telah diinisialisasi dengan memanggil RtlInitializeGenericTable.

Nilai kembali

RtlNumberGenericTableElements mengembalikan jumlah elemen yang saat ini disimpan dalam tabel.

Keterangan

Penelepon Rtl.. Rutinitas GenericTable bertanggung jawab untuk menyinkronkan akses secara eksklusif ke tabel generik. Mutex cepat eksklusif adalah mekanisme sinkronisasi yang paling efisien untuk digunakan untuk tujuan ini.

Secara default, sistem operasi menggunakan pohon splay untuk mengimplementasikan tabel generik. Dalam beberapa keadaan, operasi pada pohon splay akan membuat pohon dalam dan sempit dan bahkan mungkin mengubahnya menjadi garis lurus. Pohon yang sangat dalam menurunkan performa pencarian. Anda dapat memastikan implementasi pohon tabel generik yang lebih seimbang dan dangkal dengan menggunakan pohon Adelson-Velsky/Landis (AVL). Jika Anda ingin 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 formulir AVL dari rutinitas tabel generik. Misalnya, gunakan rutinitas RtlNumberGenericTableElementsAvl alih-alih RtlNumberGenericTableElements. Dalam panggilan ke RtlNumberGenericTableElementsAvl, pemanggil harus melewati struktur tabel RTL_AVL_TABLE daripada RTL_GENERIC_TABLE.

Penelepon RtlNumberGenericTableElements harus berjalan di IRQL < DISPATCH_LEVEL jika memori yang dialokasikan penelepon untuk tabel generik 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 (lihat bagian Keterangan)

Lihat juga

RtlInitializeGenericTable

RtlIsGenericTableEmpty