RtlDeleteElementGenericTableAvl 関数 (ntddk.h)
RtlDeleteElementGenericTableAvl ルーチンは、ジェネリック テーブルから要素を削除します。
構文
NTSYSAPI BOOLEAN RtlDeleteElementGenericTableAvl(
[in] PRTL_AVL_TABLE Table,
[in] PVOID Buffer
);
パラメーター
[in] Table
ジェネリック テーブルへのポインター (RTL_AVL_TABLE)。 テーブルは 、RtlInitializeGenericTableAvl を呼び出して初期化されている必要があります。
[in] Buffer
削除する要素を一意に識別する値を含む呼び出し元によって割り当てられたバッファーへのポインター。
戻り値
RtlDeleteElementGenericTableAvl は、要素が正常に削除された場合は TRUE を返し、それ以外の場合は FALSE を 返します。
注釈
RtlDeleteElementGenericTableAvl は、RtlInitializeGenericTableAvl の呼び出しに登録された CompareRoutine と FreeRoutine を呼び出します。
既定では、オペレーティング システムは splay ツリーを使用して汎用テーブルを実装しますが、 RtlDeleteElementGenericTableAvl ルーチンは Adelson-Velsky/Landis (AVL) ツリーでのみ機能します。 ドライバーでツリーを表示する代わりに AVL ツリーを使用するように汎用テーブル ルーチンを構成するには、 Ntddk.h を含める前に、共通ヘッダー ファイルに次の define ステートメントを挿入します。
#define RTL_USE_AVL_TABLES 0
RTL_USE_AVL_TABLESが定義されていない場合は、汎用表ルーチンの AVL 形式を使用する必要があります。 たとえば、 RtlDeleteElementGenericTable の代わりに RtlDeleteElementGenericTableAvl ルーチンを使用します。 RtlDeleteElementGenericTableAvl の呼び出しでは、呼び出し元はRTL_GENERIC_TABLEではなく、RTL_AVL_TABLEテーブル構造を渡す必要があります。
Rtl の呼び出し元 。.GenericTableAvl ルーチンは、ジェネリック テーブルへのアクセスを排他的に同期する役割を担います。 排他高速ミューテックスは、この目的で使用する最も効率的な同期メカニズムです。
次のいずれかの条件が満たされている場合、 RtlDeleteElementGenericTableAvl の呼び出し元は IRQL < DISPATCH_LEVELで実行されている必要があります。
- Table または Buffer の呼び出し元によって割り当てられたメモリはページング可能です。
- 呼び出し元から提供される CompareRoutine または FreeRoutine には、ページング可能なコードが含まれています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 「解説」を参照してください。 |