Change メソッドによる DDS の更新方法

変更方式では、構成データベースと、デバイス・ドライバーが持つ可能性のあるビューとの間の整合性を確保する必要があります。

変更 メソッドは、デバイスの構成を変更するときに呼び出されます。 これは、以下によって達成されます。

  1. デバイスに構成済みの子 (つまり、「使用可能」状態または「停止」状態のいずれかの子) がある場合は、構成を変更できません。 これにより、親デバイスに関するデータベース内の情報を使用して作成された DDS は、親を変更できないため、有効なままになります。
  2. デバイスにデバイス・ドライバーがあり、デバイスが「使用可能」または「停止」のいずれかの状態にある場合、Change メソッドは、DDS に影響を与える変更をデバイス・ドライバーに通知する必要があります。 これは、 Ioctl 操作を使用して行うことができます (デバイス・ドライバーがサポートを提供している場合)。 また、以下のステップを実行して実行することもできます。
    1. _ 翻訳不要 _SYS_CFGDD 操作を指定して sysconfig サブルーチンを呼び出すことにより、デバイス・インスタンスを終了します。 この操作は、 CFG 用語 コマンドを使用してデバイス・ドライバーの ddconfig サブルーチンを呼び出します。
    2. 変更された情報を使用して DDS を再作成しています。
    3. sysconfig サブルーチン _ 翻訳不要 _SYS_CFGDD 操作を呼び出すことによって、新しい DDS をデバイス・ドライバーに渡します。 この操作により、 _ 翻訳不要 _CFG_INIT コマンドを使用して ddconfig サブルーチンが呼び出されます。

多くの Change メソッドは、単にデバイスの Unconfigure メソッドを起動し、データベースに変更を適用してから、デバイスの Configure メソッドを起動します。 このプロセスにより、デバイスに「使用可能」または「停止」の子がある場合に、「構成解除」メソッド以降に規定された 2 つの条件、つまり変更が失敗することが保証されます。 また、デバイスにデバイス・ドライバーがある場合、その「構成解除」メソッドによってデバイス・インスタンスが終了します。 また、Configure メソッドは DDS を再ビルドし、ドライバーに渡します。