次の方法で共有


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構造体を初期化します。

FsRtlUninitializeFileLockへの後続の呼び出しによって構造体が初期化されていない限り、FsRtlInitializeFileLock または FltAllocateFileLockによって既に初期化されているFILE_LOCK構造体に対して、FsRtlInitializeFileLock 呼び出すプログラミング エラーです。

初期化後、FILE_LOCK構造体を使用して、FsRtlProcessFileLock または fsRtlFastLock呼び出すことによって、ファイル内のバイト範囲をロックできます。 FsRtlProcessFileLock ロック IRP を処理します。 FsRtlFastLock は、IRP 以外のロックを実行します。

FILE_LOCK 構造体が不要になったら、fsRtlUninitializeFileLock呼び出すことによって初期化を解除できます。 初期化されていないFILE_LOCK構造体は、FsRtlInitializeFileLockを呼び出すことによって、再利用のために初期化できます。

ミニフィルターは、FsRtlInitializeFileLock ではなく、FltInitializeFileLock 呼び出す必要があります。

必要条件

要件 価値
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI コンプライアンス規則 を する hwStorPortProhibitedDDDIs(storport) を する

関連項目

FILE_LOCK

FltInitializeFileLock の

FltAllocateFileLock の

FsRtlAreThereCurrentFileLocks

FsRtlFastLock

FsRtlProcessFileLock

FsRtlUninitializeFileLock

IRP_MJ_LOCK_CONTROL

IoCompleteRequest の

PCOMPLETE_LOCK_IRP_ROUTINE

PUNLOCK_ROUTINE