コンテキストの取得
ミニフィルタードライバーが コンテキストを設定する オブジェクトの場合は、次のいずれかの取得ルーチンを呼び出してコンテキストを取得できます。
- FltGetContexts
- FltGetContextsEx
- FltGetFileContext
- FltGetInstanceContext
- FltGetStreamContext
- FltGetStreamHandleContext
- FltGetTransactionContext
- FltGetVolumeContext
ルーチン化が成功するたびに、コンテキストの参照カウントが増加し、ミニフィルターがコンテキスト ポインターを必要としなくなった時、FltReleaseContext を呼び出す必要があります。
SwapBuffers サンプル ミニフィルター から引用した次のコード例では、ミニフィルター・ドライバーは FltGetVolumeContext を呼び出してボリューム・コンテキストを取得します:
status = FltGetVolumeContext(
FltObjects->Filter, //Filter
FltObjects->Volume, //Volume
&volCtx); //Context
...
if (volCtx != NULL) {
FltReleaseContext(volCtx);
}
電話の場合 FltGetVolumeContext 成功した、内容 パラメータは、呼び出し元のボリューム コンテキストのアドレスを受け取ります。 FltGetVolumeContext は 内容 ポインタの参照カウントをインクリメントします。 したがって、このポインターが不要になった場合、ミニフィルター ドライバーは FltReleaseContext を呼び出してポインターを解放する必要があります。