次の方法で共有


FltAllocateFileLock 関数 (fltkernel.h)

FltAllocateFileLock ルーチンは、新しいFILE_LOCK構造体を割り当てて初期化します。

構文

PFILE_LOCK FLTAPI FltAllocateFileLock(
  [in, optional] PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE CompleteLockCallbackDataRoutine,
  [in, optional] PUNLOCK_ROUTINE                          UnlockRoutine
);

パラメーター

[in, optional] CompleteLockCallbackDataRoutine

IRP_MJ_LOCK_CONTROL要求が完了したときに呼び出されるPFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE型指定のコールバック ルーチンへのポインター。 このパラメーターは省略可能であり、NULL にすることができます。

[in, optional] UnlockRoutine

バイト範囲のロックが解除されたときに呼び出される 、PUNLOCK_ROUTINE型指定されたコールバック ルーチンへのポインター。 このパラメーターは省略可能であり、NULL にすることができます。

戻り値

FltAllocateFileLock は、新しく割り当てられたFILE_LOCK構造体へのポインター 返します。

注釈

FltAllocateFileLock は、ページ プールから新しい FILE_LOCK 構造体を割り当て、初期化します。

返される FILE_LOCK 構造体を使用すると、 FltProcessFileLock を呼び出すことによって、ファイル内のバイト範囲をロックできます。

FILE_LOCK構造体が不要になった場合は、FltUninitializeFileLock を呼び出すことで初期化解除できます。 初期化されていない FILE_LOCK 構造体は、 FltInitializeFileLock を呼び出すことで再利用できるように初期化できます。

初期化された FILE_LOCK 構造体を解放するには、 FltFreeFileLock を呼び出します。

FltProcessFileLock に渡される CallbackData パラメーターが高速 I/O 操作を表す場合、CompleteLockCallbackDataRoutine で指定されたコールバックは呼び出されません。 CallbackData の I/O 操作が IRP で、CompleteLockCallbackDataRoutine が NULL でない場合にのみ、コールバック ルーチンが呼び出されます。

要件

要件
サポートされている最小のクライアント Windows XP SP2
サポートされている最小のサーバー Windows Server 2003 SP1
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
IRQL <= APC_LEVEL

こちらもご覧ください

FILE_LOCK

FltCheckLockForReadAccess

FltCheckLockForWriteAccess

FltFreeFileLock

FltInitializeFileLock

FltProcessFileLock

FltUninitializeFileLock

FsRtlAllocateFileLock

IRP_MJ_LOCK_CONTROL

PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE

PUNLOCK_ROUTINE