RtlInitializeBitMap 関数 (wdm.h)

RtlInitializeBitMap ルーチンは、ビットマップ変数のヘッダーを初期化します。

構文

NTSYSAPI VOID RtlInitializeBitMap(
  [out] PRTL_BITMAP             BitMapHeader,
  [in]  __drv_aliasesMem PULONG BitMapBuffer,
  [in]  ULONG                   SizeOfBitMap
);

パラメーター

[out] BitMapHeader

空の RTL_BITMAP 構造体へのポインター。

[in] BitMapBuffer

ビットマップ自体の呼び出し元によって割り当てられたメモリへのポインター。 このバッファーのベース アドレスは ULONG アラインされている必要があります。 割り当てられたバッファーのサイズは、 sizeof(ULONG) バイトの整数倍数である必要があります。

[in] SizeOfBitMap

ビットマップ内のビット数を指定します。 この値には、ビットマップに割り当てられたバッファーに収まる任意の数のビットを指定できます。

戻り値

なし

解説

ドライバーは、再利用可能な項目のセットを追跡するための経済的な方法としてビットマップ変数を使用できます。 たとえば、ファイル システムではビットマップ変数を使用して、ファイル データを保持するために既に割り当てられているディスク上のクラスター/セクターを追跡します。 システム提供の SCSI ポート ドライバーは、ビットマップ変数を使用して、SCSI 要求ブロック (SRB) に割り当てられているキュー タグを追跡します。

RtlInitializeBitMap は、ビットマップ変数で動作する他の RtlXxx ルーチンの前に呼び出す必要があります。 BitMapHeader ポインターは、BitMapBuffer で呼び出し元のビットマップ変数を操作するすべての後続の RtlXxx 呼び出しの入力パラメーターです。 呼び出し元は、ビットマップ変数へのアクセスを同期する役割を担います。

RtlInitializeBitMap は、呼び出し元が 指定したBitMapBuffer 値と SizeOfBitMap 値をコピーして、呼び出し元が指定したRTL_BITMAP構造体を初期化します。 その後、構造体を他のルーチンに渡してビットマップを操作できます。 RtlInitializeBitMap では、ビットマップの内容は変更されません。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe (カーネル モード);Ntdll.dll (ユーザー モード)
IRQL BitMapHeader がメモリ常駐の場合は IRQL。 <= BitMapHeader がページング可能な場合、または Windows 7 以前の場合にAPC_LEVEL

こちらもご覧ください

RTL_BITMAP

RtlAreBitsClear

RtlAreBitsSet

RtlCheckBit

RtlClearAllBits

RtlClearBits

RtlFindClearBits

RtlFindClearBitsAndSet

RtlFindClearRuns

RtlFindFirstRunClear

RtlFindLastBackwardRunClear

RtlFindLongestRunClear

RtlFindNextForwardRunClear

RtlFindSetBits

RtlFindSetBitsAndClear

RtlNumberOfClearBits

RtlNumberOfSetBits

RtlSetAllBits

RtlSetBits