次の方法で共有


FSCTL_OPBATCH_ACK_CLOSE_PENDING 制御コード

FSCTL_OPBATCH_ACK_CLOSE_PENDING 制御コードは、ファイルに対する排他的な (レベル 1、バッチまたはフィルター) 便宜的ロック (oplock) が解除されたことを示す通知に応答します。 クライアント アプリケーションは、この制御コードを送信することによって、oplock の解除を確認したことと、ファイル ハンドルを閉じようとしていることを示します。

バッチまたはフィルターの oplock が解除された場合、呼び出し元は、この制御コードを送信した後、ファイル ハンドルを閉じる必要があります。 それ以外の場合は、ファイル ハンドルが閉じるのを待機することがシステムによってブロックされます。

この制御コードをレベル 1 の oplock で使用することは意図されていません。 ただし、レベル 1 の oplock 解除の場合、この制御コードはシステムによって解除の完全な確認として扱われるため、呼び出し元はファイル ハンドルを閉じる必要はありません。

この制御コードはほとんど使用しません。 クライアント アプリケーションがファイルの oplock 解除の通知を受け取り、ファイルのハンドルを閉じると、ファイル ハンドルを閉じたその事実が、システムによって oplock 中断の完全な確認として扱われます。 したがって、この制御コードの送信が必要になることはありません。

この制御コードを処理するために、ミニフィルターが次のパラメーターを指定して FltOplockFsctrl を呼び出します。 ファイル システムまたはレガシ フィルター ドライバーによって FsRtlOplockFsctrl が呼び出されます。

便宜的ロックと FSCTL_OPBATCH_ACK_CLOSE_PENDING 制御コードの詳細については、Microsoft Windows SDK のドキュメントを参照してください。

パラメーター

  • Oplock: ファイルの不透明な oplock オブジェクト ポインター。

  • CallbackData: FltOplockFsctrl のみ。 IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 要求のコールバック データ (FLT_CALLBACK_DATA) 構造体。 操作の FsControlCode パラメーターは FSCTL_OPBATCH_ACK_CLOSE_PENDING である必要があります。

  • Irp: FsRtlOplockFsctrl のみ。 IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 要求の IRP。 操作の FsControlCode パラメーターは FSCTL_OPBATCH_ACK_CLOSE_PENDING である必要があります。

  • OpenCount: この操作では使用されません。0 に設定します。

ステータスブロック

FltOplockFsctrl は常に、この操作に対して FLT_PREOP_COMPLETE を返します。

FsRtlOplockFsctrl はこの操作に対して次のいずれかの NTSTATUS 値を返します。

コード 意味
STATUS_SUCCESS このハンドルによって保持されている oplock は解除の処理中でした。
STATUS_INVALID_OPLOCK_PROTOCOL このハンドルによって oplock が保持されていなかったか、oplock の解除が現在進行中ではありません。 これはエラー コードです。

要件

要件タイプ 要件
ヘッダー Ntifs.h (Ntifs.h または Fltkernel.h を含む)

関連項目

FLT_CALLBACK_DATA

FLT_PARAMETERS (IRP_MJ_FILE_SYSTEM_CONTROL 用)

FltOplockFsctrl

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL