DISM アプリケーションの作成

Windows アセスメント & デプロイメント キット (Windows ADK) がインストールされている任意のコンピューターで、DISM API を使用してアプリケーションを開発できます。

開発環境の設定

  1. プロジェクトのリンカー入力プロパティに追加の依存関係として、DismApi.lib へのパスを追加します。

    既定では、DismApi.lib は Windows ADK と共に、C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment and Imaging Tools\SDKs\DismApi\Lib\ にインストールされます。

  2. プロジェクトのリソース プロパティに、DismApi.h へのパスを追加します。

    既定では、DismApi.h は Windows ADK と共に、C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment and Imaging Tools\SDKs\DismApi\Include\ にインストールされます。

  3. DISM API ヘッダー ファイル DismApi.h をコードに含めます。

必要な DISM API 関数

すべての DISM API プロセスは、まず DismInitialize 関数を開始してから、DISM API への他の呼び出しを行う必要があります。 逆に、プロセスを終了するには DismShutdown 関数を使用します。

オフライン イメージを提供するには、DISM セッションを開く前に、DismMountImage 関数を使用して、イメージのコンテンツをローカル コンピューターのディレクトリにマッピングします。

DismOpenSession 関数を呼び出すことで、オフラインまたはオンラインの Windows イメージを DISMSession に関連付けることができます。 イメージに対するすべてのサービスと修復の操作は、DISMSession を使用して実行されます。 イメージ上で動作するすべての API は、DismSession を最初のパラメーターとして受け入れます。 DismCloseSession 関数を呼び出して、DismSession を解放し、その後、オフライン イメージの使用を終了する場合は、DismUnmountImage 関数を呼び出すことができます。

DISM セッションを必要としない操作もあります。 たとえば、DismGetImageInfo 関数DismGetMountedImageInfo 関数DismRemountImage 関数DismCleanupMountpoints 関数DismGetLastErrorMessage 関数DismDelete 関数などです。 これらの操作は、DismInitialize 関数が呼び出された後の任意の時点で使用できます。

基本的な DISM アプリケーションの例については、「DISM API サンプル」を参照してください。

ペアリングされた DISM API を使用して、プロセスを開いたり閉じたりする

  1. DISM プロセスを開始するには、DismInitialize 関数を呼び出します。

  2. オフライン イメージを使用している場合は、DismMountImage 関数を呼び出します。

  3. DISM セッションを必要としない DismGetMountedImageInfo 関数などの関数は、DismInitialize 関数でプロセスを開始した後に呼び出すことができます。

  4. イメージを提供する場合は、DismOpenSession 関数を呼び出して、最初にオフラインまたはオンラインの Windows イメージを DISMSession に関連付けます。

  5. これで、DismAddPackage 関数などの Dism セッションを使用したイメージ管理やサービス操作を実行できるようになりました。

    使用可能な関数の詳細については、「DISM API Functions」を参照してください。

  6. DismCommitImage 関数を使用して、変更を保存します。

  7. 開いているセッションがある場合は、それぞれのセッションに対して DismCloseSession 関数を使用してセッションを解放し、割り当てられたメモリを解放します。

  8. オフライン イメージの使用を終了する場合は、DismUnmountImage 関数を呼び出して、マウントされたイメージをローカル コンピューターから削除します。

  9. プロセスを閉じるには、DismShutdown 関数を使用します。

DISM API サンプル