次の方法で共有


CcDeferWrite 関数 (ntifs.h)

CcDeferWrite ルーチンは、キャッシュされたファイルへの書き込みを延期します。 指定されたポスト ルーチンは、書き込み操作に対応できる場合にキャッシュ マネージャーによって呼び出されます。

構文

void CcDeferWrite(
  [in] PFILE_OBJECT            FileObject,
  [in] PCC_POST_DEFERRED_WRITE PostRoutine,
  [in] PVOID                   Context1,
  [in] PVOID                   Context2,
  [in] ULONG                   BytesToWrite,
  [in] BOOLEAN                 Retrying
);

パラメーター

[in] FileObject

データの書き込み先となるキャッシュされたファイルのファイル オブジェクトへのポインター。

[in] PostRoutine

キャッシュ・マネージャーがキャッシュ・ファイルに書き込むための呼び出しを行うルーチンのアドレス。 CcCanIWrite が FALSE 返した場合でも、このルーチンがすぐに呼び出される可能性があることに注意してください。

ポスト ルーチンは ntifs.h で次のように定義されます。

typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
    _In_ PVOID Context1,
    _In_ PVOID Context2
    );

この関数は、現在の IRP の TopLevelIrp フィールドをFSRTL_MOD_WRITE_TOP_LEVEL_IRPに設定して呼び出すことができます。

[in] Context1

PostRoutineのポスト ルーチンの最初 パラメーター。

[in] Context2

PostRoutineポスト ルーチンの 2 番目のパラメーター。

[in] BytesToWrite

書き込まれるデータのバイト数。

[in] Retrying

要求 初めて送信する場合は FALSE に設定し、それ以外の場合は TRUE します。

戻り値

何一つ

備考

通常、ファイル システムでは、ccCanIWriteから FALSE の戻り値 受け取った後、ccDeferWrite を呼び出します。

ファイルをキャッシュするには、ccInitializeCacheMap使用します。

PostRoutine に渡されるコンテキスト パラメーターは、通常、I/O 要求と関連するコンテキスト データです。

必要条件

要件 価値
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe

関連項目

ccCanIWrite を する

ccInitializeCacheMap の

ccSetDirtyPageThreshold を する