CcPreparePinWrite ルーチンは、書き込みアクセスのためにキャッシュされたファイルの指定されたバイト範囲をピン留めします。
構文
BOOLEAN CcPreparePinWrite(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Zero,
[in] ULONG Flags,
[out] PVOID *Bcb,
[out] PVOID *Buffer
);
パラメーター
[in] FileObject
データの書き込み先となるキャッシュされたファイルのファイル オブジェクトへのポインター。
[in] FileOffset
データが書き込まれるファイル内の開始バイト オフセットを指定する変数へのポインター。
[in] Length
必要なデータの長さ (バイト単位)。
[in] Zero
戻り値 バッファーがゼロになる場合は、TRUE に設定します。 PIN_CALLER_TRACKS_DIRTY_DATA フラグが Flags パラメーターに設定されている場合、このパラメーターは無視されます。
[in] Flags
ピン留め操作の実行方法を指定するフラグのビットマスク。 次の値の 1 つ以上の ORed の組み合わせ:
価値 | 意味 |
---|---|
PIN_WAIT | 呼び出し元は、データがピン留めされるまで待機状態にすることができます。 |
PIN_EXCLUSIVE | バッファー制御ブロック (BCB) は排他的に取得されます。 |
PIN_NO_READ | 既にメモリに常駐しているページのみがピン留めされます。 このフラグを設定する場合は、PIN_WAITも設定する必要があります。 |
PIN_IF_BCB | データは、BCB が既に存在する場合にのみ固定されます。 それ以外の場合、ピンは失敗し、BCB は返されません。 |
PIN_CALLER_TRACKS_DIRTY_DATA | 呼び出し元は、ダーティ ページを追跡する責任があります。 このフラグが設定されている場合、他のすべてのフラグは無視されます。 このフラグは、Microsoft Windows Server 2003 SP1 以降で使用できます。 |
[out] Bcb
固定されたバッファー制御ブロック (BCB) への不透明なポインター。 このポインターは、このバッファーの CcPreparePinWrite または
[out] Buffer
バッファーが固定解除または解放されるまで有効な、目的のデータへのポインターを返します。
戻り値
ccPreparePinWrite
備考
ccPreparePinWrite
PIN_WAIT フラグが設定されている場合、ccPreparePinWrite
Microsoft Windows Server 2003 SP1 以降: PIN_CALLER_TRACKS_DIRTY_DATA フラグは、ファイル システムが書き込まれたが読み取り元ではないログ ファイルを管理する場合に一般的に使用されます。 既存のファイル データは上書きされ、読み取られないため、キャッシュ マネージャーは、ディスクからのファイル データの実際のページでエラーが発生するのではなく、ゼロのページを返す場合があります。 このフラグが設定されている場合、キャッシュ・マネージャーはダーティ・ページを追跡しません。 呼び出し元は、ダーティ ページを追跡する責任があります。 CcPreparePinWrite
ccPreparePinWrite
ccPreparePinWrite
キャッシュされたファイルにバイト範囲をピン留めしても、ページがメモリに常駐し続けるわけではありません。 ページがピン留めされている限り、バイト範囲はシステム キャッシュの仮想アドレス空間にマップされたままであることが保証されますが、メモリ マネージャーは、システムのメモリ要求に応じて物理ページをページングできます。
ccPreparePinWrite
エラーが発生した場合、ccPreparePinWrite
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
関連項目
CcFlushCache の
CcMapData を
ccSetDirtyPinnedData の
ccUnpinData を
mmSetAddressRangeModified の