@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/windows-cache-manager-writefile-disk/#article>
    schema:about <https://comcomponent.com/knowledge/cache-manager/>, <https://comcomponent.com/knowledge/write-behind-caching/> ;
    schema:mentions <https://comcomponent.com/knowledge/memory-mapped-file/>, <https://comcomponent.com/knowledge/system-cache-view/>, <https://comcomponent.com/knowledge/file-object/>, <https://comcomponent.com/knowledge/lazy-writer/>, <https://comcomponent.com/knowledge/unflushed-write-loss/>, <https://comcomponent.com/knowledge/temp-file-attribute/>, <https://comcomponent.com/knowledge/dirty-page/>, <https://comcomponent.com/knowledge/power-loss/>, <https://comcomponent.com/knowledge/read-ahead/>, <https://comcomponent.com/knowledge/sequential-scan-hint/>, <https://comcomponent.com/knowledge/random-access-hint/>, <https://comcomponent.com/knowledge/flushfilebuffers/>, <https://comcomponent.com/knowledge/write-through/>, <https://comcomponent.com/knowledge/no-buffering/>, <https://comcomponent.com/knowledge/sector-alignment-requirement/>, <https://comcomponent.com/knowledge/invalid-parameter-error/>, <https://comcomponent.com/knowledge/frequent-durable-write/>, <https://comcomponent.com/knowledge/flushviewoffile/>, <https://comcomponent.com/knowledge/fast-io/>, <https://comcomponent.com/knowledge/procmon/>, <https://comcomponent.com/knowledge/irp/>, <https://comcomponent.com/knowledge/synchronous-io/>, <https://comcomponent.com/knowledge/asynchronous-io/> .

<https://comcomponent.com/knowledge/cache-manager/> a skos:Concept ;
    skos:prefLabel "キャッシュマネージャー"@ja ;
    skos:definition "ファイルデータをメモリ上のシステムキャッシュに保持し、読み書きの多くをディスクI/Oなしで処理させるWindowsカーネルのコンポーネント。ファストI/Oの近道もこのキャッシュを直接利用する。"@ja ;
    skos:altLabel "Cache Manager" ;
    ks:implements <https://comcomponent.com/knowledge/write-behind-caching/> ;
    ks:uses <https://comcomponent.com/knowledge/system-cache-view/> ;
    ks:uses <https://comcomponent.com/knowledge/file-object/> ;
    ks:uses <https://comcomponent.com/knowledge/lazy-writer/> ;
    ks:uses <https://comcomponent.com/knowledge/read-ahead/> .

<https://comcomponent.com/knowledge/write-behind-caching/> a skos:Concept ;
    skos:prefLabel "ライトバックキャッシュ(遅延書き込み方式)"@ja ;
    skos:definition "書き込みをまずシステムキャッシュへ反映し、ディスクへの反映を後回しにするWindowsファイルキャッシュの既定方式。WriteFileの成功はディスクへの永続化を意味しない。"@ja ;
    skos:altLabel "ライトビハインド"@ja ;
    skos:altLabel "write-behind caching" ;
    skos:altLabel "lazy writing" ;
    skos:broader <https://comcomponent.com/knowledge/cache-manager/> ;
    ks:uses <https://comcomponent.com/knowledge/memory-mapped-file/> ;
    ks:mayCause <https://comcomponent.com/knowledge/dirty-page/> .

<https://comcomponent.com/knowledge/memory-mapped-file/> a skos:Concept ;
    skos:prefLabel "ファイルマッピング(メモリマップトファイル)"@ja ;
    skos:definition "ファイルの内容をプロセスやシステムのアドレス空間にマップする仕組み。ディスク上のファイルに裏打ちされる形と、CreateFileMappingにINVALID_HANDLE_VALUEを渡してページファイルに裏打ちされる形(名前付き共有メモリ)がある。Windowsのキャッシュマネージャー自身の実装基盤でもある。"@ja ;
    skos:altLabel "File Mapping" ;
    skos:altLabel "メモリマップトファイル"@ja .

<https://comcomponent.com/knowledge/system-cache-view/> a skos:Concept ;
    skos:prefLabel "システムキャッシュビュー(256KBスロット)"@ja ;
    skos:definition "キャッシュマネージャーがファイルの256KB単位の区間をシステムアドレス空間にマップする単位。キャッシュ有効の読み書きはこのビューとのメモリコピーとして行われる。"@ja ;
    skos:altLabel "キャッシュスロット"@ja ;
    skos:altLabel "システムファイルキャッシュのビュー"@ja ;
    skos:broader <https://comcomponent.com/knowledge/memory-mapped-file/> ;
    ks:uses <https://comcomponent.com/knowledge/memory-mapped-file/> .

<https://comcomponent.com/knowledge/file-object/> a skos:Concept ;
    skos:prefLabel "ファイルオブジェクト"@ja ;
    skos:definition "CreateFileなどでファイル(またはデバイス)を開くたびにカーネルが作る、開いた1回ぶんのセッション状態を表すオブジェクト。現在のバイトオフセットや共有モードを保持する。"@ja ;
    skos:altLabel "FILE_OBJECT" .

<https://comcomponent.com/knowledge/lazy-writer/> a skos:Concept ;
    skos:prefLabel "lazy writer(遅延書き込みスレッド)"@ja ;
    skos:definition "キャッシュマネージャーが毎秒起動し、最近フラッシュされていないダーティページの一部をディスクへ書き戻すバックグラウンド処理。"@ja ;
    skos:altLabel "遅延書き込みスレッド"@ja ;
    skos:altLabel "lazy writing thread" ;
    skos:broader <https://comcomponent.com/knowledge/cache-manager/> ;
    ks:automates <https://comcomponent.com/knowledge/write-behind-caching/> ;
    ks:mitigates <https://comcomponent.com/knowledge/unflushed-write-loss/> .

<https://comcomponent.com/knowledge/unflushed-write-loss/> a skos:Concept ;
    skos:prefLabel "未反映データの喪失"@ja ;
    skos:definition "ディスクへまだ反映されていないキャッシュ上の書き込み(ダーティページ)が、システム障害によって失われること。"@ja ;
    skos:altLabel "ダーティデータの喪失"@ja .

<https://comcomponent.com/knowledge/temp-file-attribute/> a skos:Concept ;
    skos:prefLabel "FILE_ATTRIBUTE_TEMPORARY"@ja ;
    skos:definition "すぐに削除される前提の一時ファイルであることを示すファイル属性。付与するとlazy writerの通常のフラッシュ対象から外れる。"@ja ;
    skos:altLabel "一時ファイル属性"@ja .

<https://comcomponent.com/knowledge/dirty-page/> a skos:Concept ;
    skos:prefLabel "ダーティページ"@ja ;
    skos:definition "キャッシュへ書き込まれたがまだディスクへ反映されていない、変更済みのキャッシュページ。"@ja ;
    skos:altLabel "Dirty Page" ;
    ks:storedIn <https://comcomponent.com/knowledge/system-cache-view/> .

<https://comcomponent.com/knowledge/power-loss/> a skos:Concept ;
    skos:prefLabel "電源断・OSクラッシュ"@ja ;
    skos:definition "システム全体が突然停止する障害。電源喪失やブルースクリーンなど。キャッシュ上のダーティページを失わせる。"@ja ;
    skos:altLabel "電源喪失"@ja ;
    skos:altLabel "ブルースクリーン"@ja ;
    skos:altLabel "システム障害"@ja .

<https://comcomponent.com/knowledge/read-ahead/> a skos:Concept ;
    skos:prefLabel "先読み(read-ahead)"@ja ;
    skos:definition "キャッシュマネージャーがアクセスパターンから次に読まれそうな区間を検出し、要求される前に先回りして読み込む機能。"@ja ;
    skos:altLabel "Read-Ahead" ;
    skos:broader <https://comcomponent.com/knowledge/cache-manager/> .

<https://comcomponent.com/knowledge/sequential-scan-hint/> a skos:Concept ;
    skos:prefLabel "FILE_FLAG_SEQUENTIAL_SCAN"@ja ;
    skos:definition "ファイルを先頭から順に読むことをキャッシュマネージャーに伝え、先読みを積極化させるCreateFileのフラグ(.NETのFileOptions.SequentialScanに対応)。"@ja ;
    skos:altLabel "FileOptions.SequentialScan" .

<https://comcomponent.com/knowledge/random-access-hint/> a skos:Concept ;
    skos:prefLabel "FILE_FLAG_RANDOM_ACCESS"@ja ;
    skos:definition "アクセスがランダムであることを伝え、無駄になる先読みを抑えさせるCreateFileのフラグ(.NETのFileOptions.RandomAccessに対応)。"@ja ;
    skos:altLabel "FileOptions.RandomAccess" .

<https://comcomponent.com/knowledge/flushfilebuffers/> a skos:Concept ;
    skos:prefLabel "FlushFileBuffers"@ja ;
    skos:definition "指定したファイルハンドルのバッファ済みデータとメタデータをデバイスへ書き切るWin32 API。.NETのFileStream.Flush(true)に相当する。"@ja ;
    skos:altLabel "FileStream.Flush(true)" ;
    ks:prevents <https://comcomponent.com/knowledge/unflushed-write-loss/> ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/frequent-durable-write/> .

<https://comcomponent.com/knowledge/write-through/> a skos:Concept ;
    skos:prefLabel "FILE_FLAG_WRITE_THROUGH"@ja ;
    skos:definition "書き込みのたびにキャッシュへ反映しつつ、lazy writerを待たず即座にディスクへも書き込むCreateFileのフラグ。読み取りは引き続きキャッシュの恩恵を受ける。"@ja ;
    skos:altLabel "ライトスルー"@ja ;
    ks:prevents <https://comcomponent.com/knowledge/unflushed-write-loss/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/frequent-durable-write/> .

<https://comcomponent.com/knowledge/no-buffering/> a skos:Concept ;
    skos:prefLabel "FILE_FLAG_NO_BUFFERING"@ja ;
    skos:definition "システムファイルキャッシュを経由せず、すべての読み書きを毎回ディスク装置へのI/Oにする CreateFile のフラグ。厳しい整列要件が伴う。"@ja ;
    skos:altLabel "ノンバッファードI/O"@ja ;
    ks:requires <https://comcomponent.com/knowledge/sector-alignment-requirement/> ;
    ks:mayCause <https://comcomponent.com/knowledge/invalid-parameter-error/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/frequent-durable-write/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/system-cache-view/> .

<https://comcomponent.com/knowledge/sector-alignment-requirement/> a skos:Concept ;
    skos:prefLabel "セクター整列要件"@ja ;
    skos:definition "FILE_FLAG_NO_BUFFERINGで開いたハンドルに課される、読み書きサイズ・オフセット・バッファアドレスをボリュームのセクターサイズ/物理セクター境界に揃える制約。"@ja ;
    skos:altLabel "アライメント要件"@ja ;
    ks:prevents <https://comcomponent.com/knowledge/invalid-parameter-error/> .

<https://comcomponent.com/knowledge/invalid-parameter-error/> a skos:Concept ;
    skos:prefLabel "ERROR_INVALID_PARAMETER(87)"@ja ;
    skos:definition "整列要件(サイズ・オフセット・バッファアドレス)を満たさないままFILE_FLAG_NO_BUFFERINGでの読み書きを行うと返るエラーコード。"@ja ;
    skos:altLabel "エラーコード87"@ja .

<https://comcomponent.com/knowledge/frequent-durable-write/> a skos:Concept ;
    skos:prefLabel "頻繁な書き込みでの確実な永続化"@ja ;
    skos:definition "書き込みのたびに確実な永続化が必要な高頻度の書き込みという要件。公式ドキュメントは毎回のFlushFileBuffers呼び出しではなく、FILE_FLAG_NO_BUFFERINGとFILE_FLAG_WRITE_THROUGHの併用を推奨する。"@ja .

<https://comcomponent.com/knowledge/flushviewoffile/> a skos:Concept ;
    skos:prefLabel "FlushViewOfFile"@ja ;
    skos:definition "メモリマップトファイルのビュー内のダーティページのディスクへの書き込みを開始するAPI。メタデータは書かず、ハードウェアのディスクキャッシュからの物理書き込みも待たない。"@ja ;
    ks:requires <https://comcomponent.com/knowledge/memory-mapped-file/> ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/flushfilebuffers/> .

<https://comcomponent.com/knowledge/fast-io/> a skos:Concept ;
    skos:prefLabel "ファストI/O"@ja ;
    skos:definition "キャッシュに載っているファイルへの同期I/Oのために、IRPを組み立てずキャッシュマネージャーと直接データをやり取りする高速経路。処理できない場合は通常のIRP経路に折り返す。"@ja ;
    skos:altLabel "Fast I/O" ;
    ks:verifiedBy <https://comcomponent.com/knowledge/procmon/> ;
    ks:requires <https://comcomponent.com/knowledge/system-cache-view/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/irp/> ;
    ks:requires <https://comcomponent.com/knowledge/synchronous-io/> .

<https://comcomponent.com/knowledge/procmon/> a skos:Concept ;
    skos:prefLabel "Process Monitor(procmon.exe)"@ja ;
    skos:definition "ファイルI/O・レジストリ・プロセス/スレッド活動をリアルタイムに監視できるSysinternalsのツール。Advanced Outputを有効にすると、IRPやファストI/Oのカーネル側の語彙で操作を表示する。"@ja ;
    skos:altLabel "Procmon" ;
    skos:altLabel "Process Monitor" .

<https://comcomponent.com/knowledge/irp/> a skos:Concept ;
    skos:prefLabel "IRP(I/O要求パケット)"@ja ;
    skos:definition "デバイスドライバーに送られる要求のほとんどが詰め込まれるパケット。要求全体のヘッダーと、経由するドライバーの数だけ並ぶI/Oスタックロケーションを持つ。"@ja ;
    skos:altLabel "I/O Request Packet" ;
    skos:altLabel "IRP" .

<https://comcomponent.com/knowledge/synchronous-io/> a skos:Concept ;
    skos:prefLabel "同期I/O"@ja ;
    skos:definition "I/O要求の完了まで呼び出しが戻らないI/Oの形態。実体は「完了する前には戻らない」という保証であり、要求がペンディングになったときだけスレッドが待機状態になる。"@ja ;
    skos:altLabel "Synchronous I/O" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cache-manager/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/write-behind-caching/> ;
    schema:description "キャッシュマネージャーは、書き込みをすぐディスクへ反映せず後回しにするライトバック方式のキャッシュを実装する"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/write-behind-caching/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/memory-mapped-file/> ;
    schema:description "キャッシュの実体は、ファイルの256KB区間をシステムアドレス空間にマップするファイルマッピングとして実装される"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cache-manager/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/system-cache-view/> ;
    schema:description "ファイルの256KB単位の区間をシステムアドレス空間の「スロット」にマップし、キャッシュ有効の読み書きをそのビューとのメモリコピーとして扱う"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/system-cache-view/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/memory-mapped-file/> ;
    schema:description "システムキャッシュビューは、ファイルに裏打ちされたページをシステムアドレス空間にマップするファイルマッピングそのものである"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cache-manager/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/file-object/> ;
    schema:description "キャッシュの利用可否や先読みの状態は、ファイル(ストリーム)単位ではなくファイルオブジェクト(開き方)単位で管理される"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cache-manager/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/lazy-writer/> ;
    schema:description "ダーティページのディスクへの反映は、キャッシュマネージャーが毎秒起動するlazy writerが担う"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/lazy-writer/> ;
    rdf:predicate ks:automates ;
    rdf:object <https://comcomponent.com/knowledge/write-behind-caching/> ;
    schema:description "lazy writerは最近フラッシュされていないダーティページの8分の1を毎秒キューに積んで書き戻し、必要ならさらに積み増すことで遅延反映を自動化する"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/lazy-writer/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/unflushed-write-loss/> ;
    schema:description "毎秒のフラッシュにより、未反映のまま留まるダーティページの量と危険な窓を小さく保つ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/temp-file-attribute/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/lazy-writer/> ;
    schema:description "FILE_ATTRIBUTE_TEMPORARYを付けて作成したファイルは、すぐ消される前提としてlazy writerの通常のフラッシュ対象から除外される(メモリ逼迫時は書き戻されうる)"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/write-behind-caching/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/dirty-page/> ;
    schema:description "WriteFileがデータをスロットへコピーした時点で、そのページはディスクへ未反映のダーティページとしてマークされる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dirty-page/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/system-cache-view/> ;
    schema:description "ダーティページは、システムキャッシュビューのメモリ上に保持された状態で書き戻しを待つ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/power-loss/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/unflushed-write-loss/> ;
    schema:description "電源喪失のような突然のシステム障害が起これば、まだディスクへ書かれていないキャッシュ上のダーティデータは失われる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cache-manager/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/unflushed-write-loss/> ;
    schema:description "キャッシュの所有者はOSであるため、アプリのプロセスがクラッシュしてもキャッシュ上のデータ自体は失われず、lazy writerが予定どおり書き戻す(OSごと停止する障害は別)"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cache-manager/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/read-ahead/> ;
    schema:description "過去のアクセスパターンから次に読まれそうな区間を検出し、要求される前に先回りして読み込む"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/read-ahead/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/sequential-scan-hint/> ;
    schema:description "先頭から順に読むアクセスであることをアプリが伝えると、先読みを積極化させられる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/read-ahead/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/random-access-hint/> ;
    schema:description "アクセスがランダムであることをアプリが伝えると、無駄になる先読みを抑えさせられる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/flushfilebuffers/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/unflushed-write-loss/> ;
    schema:description "指定したファイルのバッファ済みデータとメタデータをその場でデバイスへ書き切ることで、未反映データの喪失を防ぐ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/fileapi/nf-fileapi-flushfilebuffers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/write-through/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/unflushed-write-loss/> ;
    schema:description "書き込みのたびにlazy writerを待たず即座にディスクへも書くため、未反映のまま留まるデータが生まれない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/no-buffering/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/unflushed-write-loss/> ;
    schema:description "システムキャッシュを経由せず毎回ディスク装置へのI/Oになるためキャッシュ由来の喪失は避けられるが、メタデータは引き続きキャッシュされるため単独では完全な防止にならない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/no-buffering/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/sector-alignment-requirement/> ;
    schema:description "FILE_FLAG_NO_BUFFERINGで開いたハンドルの読み書きは、サイズ・オフセット・バッファアドレスをセクターサイズ/物理セクター境界に整列させる制約を前提とする"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-buffering> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/sector-alignment-requirement/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/invalid-parameter-error/> ;
    schema:description "サイズ・オフセット・バッファアドレスの整列要件を満たすことで、ERROR_INVALID_PARAMETER(87)での失敗を防ぐ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-buffering> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/no-buffering/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/invalid-parameter-error/> ;
    schema:description "整列要件(サイズ・オフセット・バッファアドレス)を守らずに読み書きすると、ERROR_INVALID_PARAMETER(87)で失敗する"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-buffering> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/flushfilebuffers/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/frequent-durable-write/> ;
    schema:description "書き込みのたびに毎回呼ぶのは非効率であり、公式ドキュメントは高頻度の確実な永続化にこの方法を推奨していない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/fileapi/nf-fileapi-flushfilebuffers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/no-buffering/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/frequent-durable-write/> ;
    schema:description "FILE_FLAG_WRITE_THROUGHとの併用が、公式ドキュメントが頻繁な書き込みでの確実な永続化に挙げる組み合わせ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/fileapi/nf-fileapi-flushfilebuffers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/write-through/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/frequent-durable-write/> ;
    schema:description "FILE_FLAG_NO_BUFFERINGとの併用が、公式ドキュメントが頻繁な書き込みでの確実な永続化に挙げる組み合わせ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/fileapi/nf-fileapi-flushfilebuffers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/no-buffering/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/system-cache-view/> ;
    schema:description "FILE_FLAG_NO_BUFFERINGで開いたハンドルの読み書きは、システムキャッシュビューを経由しない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-caching> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/flushviewoffile/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/memory-mapped-file/> ;
    schema:description "FlushViewOfFileはMapViewOfFileで作成したマップビューに対して働く"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/memoryapi/nf-memoryapi-flushviewoffile> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/flushviewoffile/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/flushfilebuffers/> ;
    schema:description "FlushViewOfFileはダーティページの書き出しを開始するだけでメタデータを書かずハードウェアのディスクキャッシュも待たないため、確実な永続化にはこの後にFlushFileBuffersを呼ぶ必要がある"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/memoryapi/nf-memoryapi-flushviewoffile> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/fast-io/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/procmon/> ;
    schema:description "ProcmonのOperation列にFASTIO_*とIRP_MJ_*が混在することで、要求がファストI/O経路と通常のIRP経路のどちらを通ったかを観察できる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/ifs/irps-are-different-from-fast-i-o> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/fast-io/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/system-cache-view/> ;
    schema:description "ファストI/Oはキャッシュされたファイルへの同期I/Oのための経路で、キャッシュマネージャーから直接データをコピーする"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/ifs/irps-are-different-from-fast-i-o> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/fast-io/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/irp/> ;
    schema:description "ファストI/Oは、ファイルシステムのファストI/Oエントリポイントを直接呼び、IRPを組み立てずに処理する経路である"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/ifs/irps-are-different-from-fast-i-o> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/fast-io/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/synchronous-io/> ;
    schema:description "ファストI/Oはキャッシュされたファイルへの同期の読み書きのために用意された近道で、非同期I/Oやページングでは試みられない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/ifs/irps-are-different-from-fast-i-o> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
