ファイル システム フィルターの読み込み順序
Windows オペレーティング システムは、次に基づいてファイル システム フィルター ドライバーを読み込みます。
- ドライバーの開始の種類。各開始の種類は、システムを起動するフェーズを表します。
- システムの起動時に読み込まれるファイル システム フィルター ドライバーの読み込み順序グループ。 読み込み順序グループの概念は、レガシ ファイル システム フィルター ドライバーとの相互運用性のためにファイル システム フィルター ドライバーで必要です。 "ミニフィルター" フィルター ドライバーはいつでも読み込むことができることに注意してください。
システム ブート シーケンス中にファイル システム フィルター ドライバーを読み込むタイミングと方法を調べるために、ドライバーの起動の種類と読み込み順序グループを理解する必要があります。
ドライバーの開始の種類
カーネル モード ドライバーの 開始の種類 は、システムの起動中または起動後にドライバーを読み込むかどうかを指定します。 可能な開始の種類は 5 つあります。
開始の種類 | 説明 |
---|---|
SERVICE_BOOT_START (0x00000000) | オペレーティング システム (OS) ローダーによって開始されたドライバーを示します。 ファイル システム フィルター ドライバーは、通常、この開始の種類または SERVICE_DEMAND_START を使用します。 従来のファイル システム フィルターでは、この開始の種類を使用する必要があります。詳しくは、 ファイル・システム・フィルターのロード順序グループ を参照してください。 |
SERVICE_SYSTEM_START (0x00000001) | OS の初期化中に開始されたドライバーを示します。 この開始の種類は、ファイル システム認識エンジンによって使用されます。 以下の「SERVICE_DISABLED」の下にリストされているファイル・システムを除き、ファイル・システム (ネットワーク・ファイル・システム・コンポーネントを含む) は、通常、この開始タイプまたは SERVICE_DEMAND_START を使用します。 この開始の種類は、システムの初期化中に列挙されるが、システムを読み込む必要がない PnP デバイスのデバイス ドライバーでも使用されます。 |
SERVICE_AUTO_START (0x00000002) | システムの起動時に Service Control Manager によって起動されたドライバーを示します。 めったに使用されません。 |
SERVICE_DEMAND_START (0x00000003) | PnP マネージャー (デバイス ドライバーの場合) または Service Control Manager (ファイル システムおよびファイル システム フィルター ドライバーの場合) によって、ドライバーがオンデマンドで開始されたことを示します。 |
SERVICE_DISABLED (0x00000004) | OS ローダー、Service Control Manager、または PnP マネージャーによって起動されていないドライバーを示します。 ファイル システム認識エンジンによって読み込まれるファイル システム (ブート ファイル システムの場合を除く) または (EFS の場合) 別のファイル システムによって使用されます。 このようなファイル システムには、CDFS、EFS、FastFat、NTFS、UDFS が含まれます。 また、デバッグ中にドライバーを一時的に無効にするためにも使用されます。 |
SERVICE_BOOT_START の開始の種類を指定するすべてのドライバーは、SERVICE_SYSTEM_START または SERVICE_AUTO_START の開始の種類を持つドライバーの前に読み込まれます。 各開始の種類のカテゴリ内で、読み込み順序グループは、ファイル システム フィルター ドライバー (およびレガシ フィルター ドライバー) が読み込まれるタイミングを決定します。
開始の種類の指定
ドライバー ライターは、次のいずれかの方法で、インストール時にドライバーの開始の種類を指定できます。
ドライバーの INF ファイルの AddService ディレクティブによって参照される service-install-section の StartType エントリに必要な開始の種類を指定します。 このメソッドについては フィルター ドライバーの INF ファイルを作成する の ServiceInstall セクションで説明されています。
ユーザー モードのインストール プログラムから CreateService または ChangeServiceConfig を呼び出すときに、 dwStartType パラメーターに必要な開始の種類を渡します。 このメソッドについては、Microsoft Windows SDK ドキュメントの CreateService と ChangeServiceConfig のリファレンス エントリで説明されています。
ドライバーの読み込み順序グループ
SERVICE_BOOT_START および SERVICE_SYSTEM_START 開始の種類内では、ドライバーが読み込まれる相対順序は、各ドライバーの 読み込み順序グループ によって指定されます。
開始の種類が SERVICE_BOOT_START ドライバーは、 ブート (またはブートスタート) ドライバー と呼ばれます。 Microsoft Windows 2000 以前のシステムでは、ブート ドライバーであるほとんどのフィルターが "フィルター" グループに属しています。 Microsoft Windows XP 以降のシステムでは、ブート ドライバーであるフィルターは、通常、FSFilter 読み込み順序グループのいずれかに属します。 これらの読み込み順序グループの詳細 については、 「ファイル システム フィルター ドライバーの読み込み順序グループ」 を参照してください。
開始の種類が SERVICE_SYSTEM_START ドライバーは、それらが属している読み込み順序グループの順序で読み込まれます。 ただし、すべてのブート ドライバーが読み込まれるまで、システム起動ドライバーは読み込まれません。
Note
読み込み順序グループは、開始の種類が SERVICE_AUTO_START、SERVICE_DEMAND_START、または SERVICE_DISABLED であるドライバーでは無視されます。
読み込み順序グループの完全な順序付けされた一覧は、 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control レジストリ キーの ServiceGroupOrder サブキーにあります。
SERVICE_BOOT_START ドライバーと SERVICE_SYSTEM_START ドライバーでは、同じ負荷グループの順序が使用されます。 ただし、すべての SERVICE_BOOT_START ドライバーが読み込まれ、SERVICE_SYSTEM_START ドライバーが読み込まれる前に開始されます。
読み込み順序グループの指定
ドライバー ライターは、次のいずれかの方法で、インストール時にドライバーの読み込み順序グループの種類を指定できます。
ドライバーの INF ファイルの AddService ディレクティブによって参照される service-install-section の LoadOrderGroup エントリに必要な読み込み順序の種類を指定します。 このメソッドについては フィルター ドライバーの INF ファイルを作成する の ServiceInstall セクションで説明されています。
ユーザー モードのインストール プログラムから CreateService または ChangeServiceConfig を呼び出すときに、 lpLoadOrderGroup パラメーターに必要な開始の種類を渡します。 このメソッドについては、Microsoft Windows SDK ドキュメントの CreateService と ChangeServiceConfig のリファレンス エントリで説明されています。
ドライバーの読み込み順序と読み込み順序グループの一般的な情報については、 「ドライバーの読み込み順序の指定」 を参照してください。
フィルター ドライバーを読み込むための規則
開始の種類と読み込み順序グループに関する次の規則は、フィルター ドライバーが読み込まれるタイミングを決定します。
- 特定の開始の種類と読み込み順序グループを指定するフィルター ドライバーは、その開始の種類と読み込み順序グループ内の他のファイル システム フィルター ドライバーとレガシ フィルター ドライバーと同時に読み込まれます。
- 各読み込み順序グループ内では、通常、ファイル システム フィルター ドライバーとレガシ ドライバーがランダムな順序で読み込まれます。 これにより、通常、ドライバーがインストールされた順序に基づいてドライバーが読み込まれます。
- ファイル システム フィルター ドライバーまたはレガシ フィルター ドライバーが読み込み順序グループを指定しない場合は、読み込み順序グループを指定する同じ開始の種類の他のすべてのドライバーの後に読み込まれます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示