DISM API の使用

展開イメージのサービスと管理 (DISM) API を使用すると、DISM プラットフォームでカスタマイズされたソリューションを構築できます。 DISM API を使用して、Windows イメージ内の Windows 機能、パッケージ、およびドライバーをインストール、アンインストール、構成、および更新できます。 DISM を使用すると、Windows イメージ (.wim) ファイル形式または仮想ハード ドライブ (.vhd、.vhdx) ファイルの Windows イメージを管理およびサービスできます。

要件

DISM API アプリケーションを作成するには、Windows アセスメント & デプロイメント キット (Windows ADK) を開発用コンピューターにインストールする必要があります。

  • DISM プラットフォームでは、カスタマイズされたソリューションは DISM SDK を使用して開発されます。 これは Windows ADK をインストールする際にインストールされます。 サポートされているオペレーティング システムの詳細については、Windows アセスメント & デプロイメント キット (Windows ADK) テクニカル リファレンスに関するページを参照してください。

  • DISM プラットフォームでカスタマイズされたソリューションを実行する場合は、Windows ADK のアーキテクチャのバージョンがオペレーティング システムのアーキテクチャのバージョンと一致していることを確認する必要があります。 たとえば、32 ビット PC 用に開発されたカスタマイズ済みソリューションは、32 ビットバージョンの Windows で動作します。

  • DISM プラットフォームでカスタマイズされたソリューションを適切に開発して実行するには、Windows ADK の DISM バイナリを使用していることを確認する必要があります。

    • カスタマイズされたソリューションが実行される PC に、最新バージョンの Windows ADK をインストールします。

    • カスタマイズされたソリューションのバイナリ ファイルは、Windows ADK によってインストールされた DISM バイナリと同じディレクトリに保存する必要があります。 たとえば、カスタマイズされたソリューションのバイナリは c:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM に保存する必要があります。

    • カスタマイズされたソリューションが実行される前に必要な環境変数が設定されるように、展開およびイメージング ツール環境からそのソリューションを実行します。

      スタート画面で、「展開」と入力します。 [展開およびイメージング ツール環境] を右クリックし、[管理者として実行] をクリックします。

      注:展開およびイメージング ツール環境から実行しない場合は、PATH 環境変数で Windows ADK からの DISM バイナリの場所が使用されていることを確認する必要があります。

  • サービスと管理に DISMAPI を使用するには、サポートされている種類の Windows イメージ ファイル (.wim、.vhd、.vhdx)、または Windows のオンライン インストールが必要です。 オンライン イメージでは、一部の操作が無効になっています。 詳細については、「DISM API リファレンス」を参照してください。

サポートされているターゲット イメージ

ホスト コンピューターでサービスする Windows イメージ ファイルは、.wim ファイル、.vhd または .vhdx ファイル、Windows のオンライン インストールのいずれかです。 また、クロス アーキテクチャのサービスもサポートされています。 x64 イメージは、x86 システムまたは x64 システムからサービスできます。 x86 イメージは、x64 システムまたは x86 システムからサービスできます。

DISMAPI 関数は、すべて Windows 8 および Windows Server 2012 のターゲット イメージで実行できます。 関数を他のターゲット イメージで実行できるかどうかを確認するには、「DISM API リファレンス」の関数リファレンスのトピックにある要件に関するセクションを参照してください。

ベスト プラクティス

メモリ管理 一部の DISM API 関数では、構造体または構造体の配列が返されます。 これらの構造体は、ヒープ上のオブジェクトへのポインターとしてユーザーに返されます。 ヒープ メモリは、DISM API によって割り当てられます。 クライアントは DismDelete 関数を呼び出して、このメモリが開放されていることを確認する必要があります。

DiskPart ツールを使用して VHD をマウントする。 可能な場合は、DISM API を使用して、DISM フレームワーク内でサービスするイメージをマウントおよびマウント解除する必要があります。 DiskPart ツールといった別のツールを使用してイメージをマウントおよびマウント解除すると、予想外の影響を及ぼすことがあります。

ファイル パス。 DISM API 関数で受け入れられるすべてのパスは、相対または絶対です。 ベスト プラクティスとして、ファイル パスの長さを制限してください。 ファイル パスが長すぎるか、Windows の最大長の制限を超えている場合、DISM でエラーが発生します。

対応する呼び出しでセッションを開く/閉じる。 常に、DismCloseSession 関数を呼び出してから DismShutdown 関数を呼び出して、DISM セッションをリリースします。 また、セッションを閉じた後、DismShutdown 関数を呼び出す前に、DismUnmountImage 関数を使用してイメージのマウントを解除することもできます。

その他の DISM ツール

DISM プラットフォームの詳細、およびサービスと管理機能にアクセスする別の方法については、Windows アセスメント & デプロイメント キット (Windows ADK) のテクニカル リファレンスの DISM テクニカル リファレンスを参照してください。 また、Windows ADK の DISM.exe ツールを使用して、イメージを .wim ファイルとしてキャプチャすることもできます。

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

DISM API トラブルシューティング

DISM API リファレンス

DISM API サンプル