FsRtlInitializeFileLock 関数 (ntifs.h)
FsRtlInitializeFileLock ルーチンは、FILE_LOCK構造体を初期化します。
構文
void FsRtlInitializeFileLock(
[in] PFILE_LOCK FileLock,
[in, optional] PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
[in, optional] PUNLOCK_ROUTINE UnlockRoutine
);
パラメーター
[in] FileLock
初期化されていない FILE_LOCK 構造体へのポインター。
[in, optional] CompleteLockIrpRoutine
IRP_MJ_LOCK_CONTROL要求が完了したときに呼び出されるPCOMPLETE_LOCK_IRP_ROUTINE型指定コールバック ルーチンへのポインター。 このパラメーターは省略可能であり、NULL にすることができます。
[in, optional] UnlockRoutine
バイト範囲のロックが解除されたときに呼び出される PUNLOCK_ROUTINE型指定されたコールバック ルーチンへのポインター。 このパラメーターは省略可能であり、NULL にすることができます。
戻り値
なし
解説
FsRtlInitializeFileLock は、初期化されていないFILE_LOCK構造体を初期化します。
FsRtlInitializeFileLock または FltAllocateFileLock によって既に初期化されているFILE_LOCK構造体に対して FsRtlInitializeFileLock を呼び出すプログラミング エラーです。ただし、その構造体が FsRtlUninitializeFileLock の後続の呼び出しによって初期化されていない場合を除きます。
初期化後、FILE_LOCK構造体を使用して、 FsRtlProcessFileLock またはFsRtlFastLock を呼び出すことによって、ファイル内のバイト範囲をロックできます。 FsRtlProcessFileLock はロック IRP を処理します。 FsRtlFastLock は 、IRP 以外のロックを実行します。
FILE_LOCK構造体が不要になった場合は、FsRtlUninitializeFileLock を呼び出すことで初期化を解除できます。 初期化されていないFILE_LOCK構造体は、 FsRtlInitializeFileLock を呼び出すことで再利用できるように初期化できます。
ミニフィルターは、 FsRtlInitializeFileLock の代わりに FltInitializeFileLock を呼び出す必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport) |