OneDriveのファイル オンデマンドと業務アプリの知識マップ(知識グラフ)
type: Dataset
description: デスクトップやドキュメントはKFMによってOneDrive配下へ移動していることがあり、固定パスを前提にしたアプリはそこで壊れます。さらにファイル オンデマンドは既定で有効なので、ローカルに実体のないプレースホルダーが普通のファイルとして見えます。その正体はCloud Files APIが管理するリパースポイントで、互換性のため同期エンジン以外にはリパースポイントであることを隠すため、アプリからは「少し開くのが遅いだけの普通のファイル」に見えます。状態はファイル属性で判定でき、属性を見るだけならハイドレーションは起きません。事故が起きるのは、オフラインで取り寄せが失敗するとき、一括処理が全ファイルのダウンロードを誘発するとき、属性を完全一致で判定しているとき、そしてウイルス対策や検索インデクサが中身に触れるときです。対策はアプリ側がプレースホルダーを尊重すること、情シス側が業務フォルダーをピン留めしてポリシーで統制することです。
language: ja
creator: 合同会社小村ソフト
license: https://creativecommons.org/licenses/by/4.0/
is accessible for free: true
keywords: OneDriveのファイルオンデマンド
keywords: プレースホルダー
keywords: KFM(既知のフォルダーの移動)
keywords: Cloud Files API(cldflt.sys)
keywords: ハイドレーション
keywords: FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
keywords: PINNED / UNPINNED属性
keywords: FILE_FLAG_OPEN_NO_RECALL
keywords: 0x8007016A(クラウド ファイル プロバイダーが実行されていません)
keywords: ストレージセンサー
keywords: OneDrive同期アプリのポリシー
keywords: グループポリシー
keywords: Microsoft Intune
keywords: FileSystemWatcher
keywords: 共有違反(ERROR_SHARING_VIOLATION)
keywords: NTFS
keywords: OneDrive同期の失敗
keywords: ユーザーフォルダーのパス変更
keywords: 自動オンライン専用化
keywords: ローカルへの実体保持
distribution: DataDownload
  encoding format: application/ld+json
distribution: DataDownload
  encoding format: text/turtle
citation: https://learn.microsoft.com/sharepoint/redirect-known-folders
citation: https://learn.microsoft.com/windows/win32/cfapi/build-a-cloud-file-sync-engine
citation: https://learn.microsoft.com/sharepoint/files-on-demand-windows
citation: https://learn.microsoft.com/windows/win32/fileio/file-attribute-constants
citation: https://learn.microsoft.com/windows-server/administration/windows-commands/attrib
citation: https://learn.microsoft.com/troubleshoot/sharepoint/sync/copy-files-error-0x8007016a
citation: https://learn.microsoft.com/windows/win32/api/fileapi/nf-fileapi-createfilew
citation: https://learn.microsoft.com/windows-hardware/drivers/ifs/placeholders_guidance
citation: https://learn.microsoft.com/windows/client-management/mdm/policy-csp-storage
citation: https://learn.microsoft.com/sharepoint/ideal-state-configuration
citation: https://learn.microsoft.com/sharepoint/use-group-policy
about: article

合同会社小村ソフト
type: Organization

OneDriveのファイルオンデマンド
type: Concept
definition: 実データが手元にないクラウド上のファイルをプレースホルダー(リパースポイント)としてローカルに見せ、アクセス時にクラウドフィルターが実体を取得する仕組み。
alternative label: Files On-Demand
alternative label: クラウドファイル
broader: reparse-point
uses: Cloud Files API(cldflt.sys)

プレースホルダー
type: Concept
definition: ファイル名・サイズ・タイムスタンプなどのメタデータ(約1KB)だけを持ち、中身のデータを持たないリパースポイント。
uses: NTFS
may cause: ハイドレーション
verified by: FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
configured by: PINNED / UNPINNED属性

KFM(既知のフォルダーの移動)
type: Concept
definition: デスクトップ・ドキュメント・ピクチャをOneDrive配下へ移動する仕組み。プロンプト・サイレント適用のいずれでも構成できる。
alternative label: KFM

ユーザーフォルダーのパス変更
type: Concept
definition: デスクトップ・ドキュメント・ピクチャなどの既知のフォルダーの実体パスが移動されること。固定パスを前提にしたアプリの想定を壊す。

Cloud Files API(cldflt.sys)
type: Concept
definition: プレースホルダーを支えるWindowsの仕組みと、その実働部隊であるファイルシステムミニフィルター。OneDriveはこのAPIを使う同期プロバイダーのひとつ。
implements: プレースホルダー

NTFS
type: Concept
definition: 現行のWindowsが標準で使うファイルシステム。MFT(マスターファイルテーブル)などの構造でボリューム上のファイルを管理する。
alternative label: New Technology File System

ハイドレーション
type: Concept
definition: プレースホルダーの中身を同期プロバイダーから取り寄せること。逆にローカルの実体を捨ててプレースホルダーへ戻すのがデハイドレーション。
alternative label: デハイドレーション

FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
type: Concept
definition: 中身の一部または全部がローカルになく、読むとリモートからの取り寄せが発生することを示すファイル属性。
not recommended for: ハイドレーション

PINNED / UNPINNED属性
type: Concept
definition: ユーザーが常にローカルへ保持したいのか(PINNED)、実体を持たなくてよいのか(UNPINNED)という意図を表すファイル属性。attribではPとUで見える。

0x8007016A(クラウド ファイル プロバイダーが実行されていません)
type: Concept
definition: OneDriveが構成不良・停止しているときにクラウドファイルの操作が返すエラー。
prevents: ハイドレーション

FILE_FLAG_OPEN_NO_RECALL
type: Concept
definition: 要求されたデータをローカルストレージへ移送し戻さず、リモート側に置いたまま開くことを指示するCreateFileのフラグ。
prevents: ローカルへの実体保持

ローカルへの実体保持
type: Concept
definition: 取り寄せたファイル内容をローカルストレージへ移送して保持し続けること。データを読みつつローカルには残さない開き方も選べる。

FileSystemWatcher
type: Concept
definition: .NETが提供する、ファイル・ディレクトリの作成・変更・削除・名前変更をイベントで通知するAPI。ディレクトリ通知はアプリが動いている間しか受け取れず、内部バッファのoverflowで個別通知を取りこぼすことがある。
alternative label: System.IO.FileSystemWatcher

共有違反(ERROR_SHARING_VIOLATION)
type: Concept
definition: 既存のハンドルの共有モードと競合するアクセスを要求したオープンが失敗すること。
may cause: OneDrive同期の失敗

OneDrive同期の失敗
type: Concept
definition: 同期クライアントがファイルをアップロード・更新できない状態。他のアプリが排他ロックで開いている間などに起きる。

ストレージセンサー
type: Concept
definition: 一定日数開かれていないクラウドファイルを自動でオンライン専用に戻せる機能。既定値は0(自動では戻さない)。

自動オンライン専用化
type: Concept
definition: しばらく使われていないローカル実体を自動でクラウドのみの状態に戻すこと。Storage Senseの空き容量確保などが行う。

OneDrive同期アプリのポリシー
type: Concept
definition: FilesOnDemandEnabled・KFMSilentOptIn・KFMBlockOptIn・KFMBlockOptOut・DehydrateSyncedTeamSitesなど、同期の挙動をグループポリシーやIntuneで構成する設定群。
configured by: グループポリシー

グループポリシー
type: Concept
definition: Active Directoryドメイン環境でWindowsの設定を集中構成する仕組み。
alternative label: GPO
alternative label: Group Policy

Microsoft Intune
type: Concept
definition: クラウドからPC・モバイルデバイスを管理するMicrosoftのMDMサービス。
alternative label: Intune

subject: KFM(既知のフォルダーの移動)
predicate: mayCause
object: ユーザーフォルダーのパス変更
description: KFMはデスクトップ・ドキュメント・ピクチャをOneDrive配下へ移動する。新PCの初期セットアップで有効化されやすく、組織ではポリシーで一斉適用もできるため、固定パスを前提にしたアプリはここで壊れる。
evidence: redirect-known-folders
verified at: 2026-08-22
certainty: context-dependent

subject: OneDriveのファイルオンデマンド
predicate: uses
object: Cloud Files API(cldflt.sys)
description: ファイル オンデマンドはCloud Files APIというOSの仕組みの上に実装され、ファイルシステム側の実働部隊はcldflt.sysというミニフィルターである。OneDriveはこのAPIを使う同期プロバイダーのひとつにすぎない。
evidence: build-a-cloud-file-sync-engine
evidence: files-on-demand-windows
verified at: 2026-08-22
certainty: established

subject: プレースホルダー
predicate: uses
object: NTFS
description: プレースホルダーは技術的にはリパースポイントで、ファイルシステム上には約1KBのメタデータだけが存在し中身のデータはない。エクスプローラーのプロパティでは「サイズ」に本来のサイズが出るのに「ディスク上のサイズ」がほぼ0になる。
evidence: build-a-cloud-file-sync-engine
verified at: 2026-08-22
certainty: established

subject: Cloud Files API(cldflt.sys)
predicate: implements
object: プレースホルダー
description: Cloud Files APIはプレースホルダーを作成・管理し、互換性のため、同期エンジンと%systemroot%配下のプロセス以外にはリパースポイントであることを隠す。普通のアプリからは少し開くのが遅いだけの普通のファイルに見えるため、アプリが気づかないまま前提を壊される。
evidence: build-a-cloud-file-sync-engine
verified at: 2026-08-22
certainty: established

subject: プレースホルダー
predicate: mayCause
object: ハイドレーション
description: アプリがファイルを開いて読むとミニフィルターが要求を検知し、同期プロバイダーにデータ転送を指示してダウンロード完了を待ってから読み取りが進む。
evidence: build-a-cloud-file-sync-engine
verified at: 2026-08-20
certainty: established

subject: プレースホルダー
predicate: verifiedBy
object: FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
description: RECALL_ON_DATA_ACCESSは中身の一部または全部がローカルにないことを示す。属性の確認だけならダウンロードは発生しないので、調査や一括チェックに安心して使える。
evidence: file-attribute-constants
evidence: files-on-demand-windows
verified at: 2026-08-20
certainty: established

subject: プレースホルダー
predicate: configuredBy
object: PINNED / UNPINNED属性
description: ファイル オンデマンドの状態はPINNED(常に利用可能)・どちらでもない(ローカルで利用可能)・UNPINNED(オンライン専用)で表され、attrib +p / -p / +uで設定する。オンライン専用から戻すときは-pだけではUが残るので、+p -uのように反対側の属性も同時に外す。
evidence: files-on-demand-windows
evidence: attrib
verified at: 2026-08-20
certainty: established

subject: 0x8007016A(クラウド ファイル プロバイダーが実行されていません)
predicate: prevents
object: ハイドレーション
description: OneDriveが停止・サインアウト・一時停止しているときや、ネットワークが不調なときは取り寄せができず、「存在するのに開けないファイル」になる。存在確認や属性・サイズの取得は成功するため、存在確認は通ったのに読み取りで失敗するというエラーパターンになる。
evidence: copy-files-error-0x8007016a
evidence: build-a-cloud-file-sync-engine
verified at: 2026-08-22
certainty: established

subject: FILE_FLAG_OPEN_NO_RECALL
predicate: prevents
object: ローカルへの実体保持
description: FILE_FLAG_OPEN_NO_RECALLは要求されたデータをローカルストレージへ移送し戻さず、リモート側に置いたまま開くことを指示する。
evidence: nf-fileapi-createfilew
verified at: 2026-08-22
certainty: established

subject: FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
predicate: notRecommendedFor
object: ハイドレーション
description: この属性が付いたファイルへ不用意な読み書きを発行しないようガイダンスが明記している。カーネルドライバー向けの文書だが、属性が付いたファイルの中身に触れれば取り寄せコストが発生するという原則はユーザーモードのアプリにも当てはまる。
evidence: placeholders guidance
verified at: 2026-08-20
certainty: established

subject: ハイドレーション
predicate: mayCause
object: FileSystemWatcher
description: OneDrive配下を監視すると、他のデバイスでの変更が同期されるたび、ハイドレーション・デハイドレーションで属性やサイズが変わるたびにChangedイベントが発生し得る。取り込んだ結果を同じフォルダーへ書き戻す設計では変更通知のループになる。
evidence: build-a-cloud-file-sync-engine
verified at: 2026-08-22
certainty: context-dependent

subject: 共有違反(ERROR_SHARING_VIOLATION)
predicate: mayCause
object: OneDrive同期の失敗
description: 業務アプリがファイルを排他ロックで開いている間、同期アプリはそのファイルをアップロードも更新もできない。長時間ロックを保持するアプリをOneDrive配下に置くと同期エラーが常態化する。
evidence: copy-files-error-0x8007016a
verified at: 2026-08-22
certainty: established

subject: ストレージセンサー
predicate: mayCause
object: プレースホルダー
description: ストレージセンサーは一定日数開かれていないクラウドファイルを自動でオンライン専用に戻せる。既定値は0(自動では戻さない)だが、ユーザーが有効化していたり組織で構成していたりすると「先週まで開けたファイルが雲マークに戻っている」が正常動作として起こる。ピン留めされたファイルは対象外になる。
evidence: policy-csp-storage
evidence: ideal-state-configuration
verified at: 2026-08-20
certainty: context-dependent

subject: PINNED / UNPINNED属性
predicate: prevents
object: 自動オンライン専用化
description: 業務アプリが読むフォルダーをピン留めしておけば実体がローカルに保証され、自動オンライン専用化の対象からも外れる。
evidence: files-on-demand-windows
evidence: ideal-state-configuration
verified at: 2026-08-22
certainty: context-dependent

subject: OneDrive同期アプリのポリシー
predicate: configuredBy
object: グループポリシー
description: FilesOnDemandEnabled・KFMSilentOptIn・KFMBlockOptIn・KFMBlockOptOut・DehydrateSyncedTeamSitesなどをグループポリシーで構成し、「気づいたら有効」ではなく意図して構成する。
evidence: use-group-policy
verified at: 2026-08-20
certainty: established

subject: OneDrive同期アプリのポリシー
predicate: configuredBy
object: Microsoft Intune
description: 同じポリシー群はIntuneからも配布できる。
evidence: use-group-policy
verified at: 2026-08-20
certainty: context-dependent