次の方法で共有


PFLT_COMPLETED_ASYNC_IO_CALLBACK コールバック関数 (fltkernel.h)

非同期 I/O 操作を開始するミニフィルター ドライバーは、操作の完了時に呼び出されるルーチンPFLT_COMPLETED_ASYNC_IO_CALLBACK種類のルーチンを指定できます。

構文

PFLT_COMPLETED_ASYNC_IO_CALLBACK PfltCompletedAsyncIoCallback;

void PfltCompletedAsyncIoCallback(
  [in] PFLT_CALLBACK_DATA CallbackData,
  [in] PFLT_CONTEXT Context
)
{...}

パラメーター

[in] CallbackData

I/O 操作のコールバック データ構造へのポインター。

[in] Context

ミニフィルター ドライバーが FltPerformAsynchronousIoFltReadFile、または FltWriteFile にパラメーターとして渡すコンテキスト ポインター。

戻り値

なし

解説

ミニフィルター ドライバーが FltPerformAsynchronousIoFltReadFile 、または FltWriteFile を呼び出して非同期 I/O 操作を開始する場合、ミニフィルター ドライバーは必要に応じて、I/O 操作の完了時に呼び出されるコールバック ルーチンを指定できます。 これを行うには、 CallbackRoutine パラメーターにPFLT_COMPLETED_ASYNC_IO_CALLBACK型のルーチンを指定します。

I/O 操作が完了すると、IRQL <= DISPATCH_LEVELで、任意のスレッド コンテキストでこのコールバック ルーチンが呼び出されます。

PFLT_COMPLETED_ASYNC_IO_CALLBACK ルーチンは IRQL DISPATCH_LEVELで呼び出すことができるため、次の制約が適用されます。

  • 低い IRQL を必要とするカーネル モード ルーチンを安全に呼び出すことはできません。
  • このルーチンで使用されるすべてのデータ構造は、非ページ プールから割り当てる必要があります。
  • ページング可能にすることはできません。
  • リソース、ミューテックス、または高速ミューテックスを取得できません。 ただし、スピン ロックを取得できます。

要件

要件
対象プラットフォーム デスクトップ
Header fltkernel.h (Fltkernel.h を含む)
IRQL 「解説」を参照してください。

こちらもご覧ください

FLT_CALLBACK_DATA

FltPerformAsynchronousIo

FltReadFile

FltWriteFile