다음을 통해 공유


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에 대한 다른 호출을 만들려면 먼저 모든 DISM API 프로세스가 DismInitialize 함수로 시작해야 합니다. 반대로 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. DismInitialize 함수로 프로세스를 시작한 후 DismGetMountedImageInfo 함수와 같이 DISM 세션이 필요하지 않은 함수를 호출할 수 있습니다.

  4. 이미지를 서비스하려면 먼저 DismOpenSession 함수를 호출하여 오프라인 또는 온라인 Windows 이미지를 DISMSession에 연결합니다.

  5. 이제 DismAddPackage 함수 등 DISM 세션을 사용하는 모든 이미지 관리 또는 서비스 작업을 수행할 수 있습니다.

    사용 가능한 함수에 대한 자세한 내용은 DISM API 함수를 참조하세요.

  6. DismCommitImage 함수를 사용하여 변경 내용을 저장합니다.

  7. 열려 있는 세션이 있는 경우 각 세션에 대해 DismCloseSession 함수를 사용하여 세션을 해제하고 할당된 메모리를 해제합니다.

  8. 오프라인 이미지 사용을 완료한 경우 DismUnmountImage 함수를 호출하여 로컬 컴퓨터에서 탑재된 이미지를 제거합니다.

  9. 프로세스를 닫으려면 DismShutdown 함수를 사용합니다.

DISM API 샘플