FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 制御コード
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 制御コードは、ファイルに対する排他的な (レベル 1、バッチまたはフィルター) 便宜的ロック (oplock) が解除されたことを示す通知に応答します。
クライアント アプリケーションは、この制御コードを送信することによって、oplock の解除を確認したことと、oplock がレベル 1 oplock でかつそれが解除されてレベル 2 になる場合は、レベル 2 oplock が必要であることを示します。
この制御コードを処理するために、ミニフィルターが次のパラメーターを指定して FltOplockFsctrl を呼び出します。 ファイル システムまたはレガシ フィルター ドライバーによって FsRtlOplockFsctrl が呼び出されます。
便宜的ロックと FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 制御コードの詳細については、Microsoft Windows SDK のドキュメントを参照してください。
パラメーター
Oplock: ファイルの不透明な oplock オブジェクト ポインター。
CallbackData: FltOplockFsctrl のみ。 IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 要求のコールバック データ (FLT_CALLBACK_DATA) 構造体。 操作の FsControlCode パラメーターは FSCTL_OPLOCK_BREAK_ACKNOWLEDGE である必要があります。
Irp: FsRtlOplockFsctrl のみ。 IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 要求の IRP。 操作の FsControlCode パラメーターは FSCTL_OPLOCK_BREAK_ACKNOWLEDGE である必要があります。
OpenCount: この操作では使用されません。0 に設定します。
ステータスブロック
FltOplockFsctrl は、レベル 1 oplock が解除されてレベル 2 になり、かつレベル 2 oplock が許可されている場合、この操作に対して FLT_PREOP_PENDING を返します。 それ以外の場合は、FLT_PREOP_COMPLETE を返します。
FsRtlOplockFsctrl はこの操作に対して次のいずれかの NTSTATUS 値を返します。
コード | 意味 |
---|---|
STATUS_SUCCESS | oplock の解除が確認されます。 残りの oplock は保持されます。 |
STATUS_INVALID_OPLOCK_PROTOCOL | このハンドルによって oplock が保持されていなかったか、oplock の解除が現在進行中ではありません。 これはエラー コードです。 |
STATUS_PENDING | oplock の解除が確認されます。 終了時、FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 制御コードの送信元はレベル 2 oplock を保持します。 これは成功コードです。 |
要件
要件タイプ | 要件 |
---|---|
ヘッダー | Ntifs.h (Ntifs.h または Fltkernel.h を含む) |
関連項目
FLT_PARAMETERS (IRP_MJ_FILE_SYSTEM_CONTROL 用)