FsRtlCheckOplock マクロ (rxprocs.h)
FsRtlCheckOplock ルーチンは、ファイル I/O 操作の IRP をファイルの現在の日和見ロック (oplock) 状態と同期します。
構文
void FsRtlCheckOplock(
A1,
A2,
A3,
A4,
A5
);
パラメーター
A1
ファイルの不透明な日和見ロック ポインター。 このポインターは、 FsRtlInitializeOplock の以前の呼び出しによって初期化されている必要があります。
A2
I/O 操作の IRP へのポインター。
A3
CompletionRoutine パラメーターと PostIrpRoutine パラメーターが指すコールバック ルーチンに渡される呼び出し元定義コンテキスト情報へのポインター。
A4
呼び出し元が指定したコールバック ルーチンへのポインター。 日和見ロックの中断が進行中の場合は、中断が完了したときにこのルーチンが呼び出されます。 このパラメーターは省略可能であり、 NULL にすることができます。 NULL の場合、呼び出し元は、日和見ロックの中断が完了するまで待機状態になります。
このルーチンは、次のように宣言されています。
typedef VOID (*POPLOCK_WAIT_COMPLETE_ROUTINE) ( IN PVOID Context, IN PIRP Irp ); |
このルーチンには、次のパラメーターがあります。
A5
I/O 操作が作業キューにポストされた場合に呼び出される呼び出し元から提供されるコールバック ルーチンへのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
このルーチンは、次のように宣言されています。
typedef VOID (*POPLOCK_FS_PREPOST_IRP) ( IN PVOID Context, IN PIRP Irp ); |
戻り値
なし
解説
FsRtlCheckOplock は、次の条件に従って、I/O 操作の IRP をファイルの現在の日和見ロック状態と同期します。
- I/O 操作によって日和見ロックが中断する場合、日和見ロックの中断が開始されます。
- 日和見ロック中断が完了するまで I/O 操作を続行できない場合、 FsRtlCheckOplock はSTATUS_PENDINGを返し、 PostIrpRoutine パラメーターが指すコールバック ルーチンを呼び出します。
IRP_MJ_CLEANUP
IRP_MJ_CREATE
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_FLUSH_BUFFERS
IRP_MJ_LOCK_CONTROL
IRP_MJ_READ
IRP_MJ_SET_INFORMATION
IRP_MJ_WRITE
日和見ロックの詳細については、Microsoft Windows SDKドキュメントを参照してください。
ミニフィルターでは、FsRtlCheckOplock ではなく FltCheckOplock を呼び出す必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | このルーチンは、Microsoft Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | rxprocs.h (FltKernel.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
こちらもご覧ください
FSCTL_OPBATCH_ACK_CLOSE_PENDING
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示