다음을 통해 공유


공동 설치 관리자 인터페이스

참고

이 섹션에 설명된 기능은 지원되지 않으며 이를 포함하는 드라이버 패키지는 더 이상 Microsoft 서명을 받지 않습니다. 유니버설 INF 파일 사용을 참조하세요.

공동 설치 관리자의 인터페이스는 내보낸 진입점 함수 및 연결된 데이터 구조로 구성됩니다.

공동 설치 관리자 진입점

공동 설치 관리자는 다음 프로토타입이 있는 진입점 함수를 내보내야 합니다.

typedef DWORD 
  (CALLBACK* COINSTALLER_PROC) (
    IN DI_FUNCTION  InstallFunction,
    IN HDEVINFO  DeviceInfoSet,
    IN PSP_DEVINFO_DATA  DeviceInfoData  OPTIONAL,
    IN OUT PCOINSTALLER_CONTEXT_DATA  Context
    );

InstallFunction
공동 설치 관리자가 참여하는 옵션이 있는 처리 중인 디바이스 설치 요청을 지정합니다. 이러한 요청은 DIF_INSTALLDEVICE 같은 DIF 코드를 사용하여 지정됩니다. 자세한 내용은 디바이스 설치 함수 코드를 참조하세요.

DeviceInfoSet
디바이스 정보 집합에 핸들을 제공합니다.

DeviceInfoData
필요에 따라 디바이스 설치 요청의 대상인 디바이스를 식별합니다. 이 매개 변수가 NULL이 아닌 경우 디바이스 정보 집합에서 디바이스 정보 요소를 식별합니다. DeviceInfoDataSetupDiCallClassInstaller가 디바이스별 공동 설치 관리자를 호출할 때 NULL이 아닌 것입니다. 클래스별 공동 설치 관리자는 NULLDeviceInfoData(예: DIF_DETECT 또는 DIF_FIRSTTIMESETUP)가 있는 DIF 요청을 사용하여 호출할 수 있습니다.

컨텍스트
COINSTALLER_CONTEXT_DATA 구조를 가리킵니다.

디바이스 공동 설치 관리자는 다음 값 중 하나를 반환합니다.

NO_ERROR
공동 설치 관리자가 지정된 InstallFunction에 대해 적절한 작업을 수행했거나 공동 설치 관리자가 요청에 대한 작업을 수행할 필요가 없다고 결정했습니다.

또한 공동 설치 관리자는 인식할 수 없는 DIF 코드를 수신하는 경우 NO_ERROR 반환해야 합니다. (클래스 설치 관리자는 인식할 수 없는 DIF 코드에 대한 ERROR_DI_DO_DEFAULT 반환합니다.)

ERROR_DI_POSTPROCESSING_REQUIRED
공동 설치 관리자는 지정된 InstallFunction 에 대해 적절한 작업을 수행했으며 클래스 설치 관리자가 요청을 처리한 후 다시 호출하도록 요청합니다.

Win32 오류
공동 설치 관리자에 오류가 발생했습니다.

공동 설치 관리자는 ERROR_DI_DO_DEFAULT 반환 상태를 설정하지 않습니다. 이 상태는 클래스 설치 관리자에서만 사용할 수 있습니다. 공동 설치 관리자가 이 상태를 반환하는 경우 SetupDiCallClassInstaller 는 DIF_Xxx 요청을 제대로 처리하지 않습니다. 공동 설치 관리자는 후처리 단계에서 ERROR_DI_DO_DEFAULT 반환 상태를 전파 할 수 있지만 이 값을 설정 하지는 않습니다.

COINSTALLER_CONTEXT_DATA

COINSTALLER_CONTEXT_DATA 설치 요청을 설명하는 공동 설치 관리자별 컨텍스트 구조입니다. 구조체의 형식은 다음과 같습니다.

typedef struct 
  _COINSTALLER_CONTEXT_DATA {
      BOOLEAN  PostProcessing;
      DWORD    InstallResult;
      PVOID    PrivateData;
  } COINSTALLER_CONTEXT_DATA, *PCOINSTALLER_CONTEXT_DATA;

다음 목록에서는 이 구조체의 멤버에 대해 설명합니다.

  • PostProcessing은 적절한 클래스 설치 관리자(있는 경우)가 InstallFunction에 지정된 DIF 코드를 처리한 후 공동 설치 관리자가 호출될 때 TRUE입니다. PostProcessing 은 공동 설치 관리자에게 읽기 전용입니다.

  • PostProcessingFALSE이면 InstallResult는 관련이 없습니다. PostProcessingTRUE이면 InstallResult는 설치 요청의 현재 상태입니다. 이 값은 NO_ERROR 또는 이 설치 요청에 대해 호출된 이전 구성 요소에서 반환한 오류 상태입니다. 공동 설치 관리자는 함수 반환에 대해 이 값을 반환하여 상태를 전파하거나 다른 상태를 반환할 수 있습니다. InstallResult 는 공동 설치 관리자에게 읽기 전용입니다.

  • PrivateData 는 공동 설치 관리자 할당 버퍼를 가리킵니다. 공동 설치 관리자가 이 포인터를 설정하고 후처리를 요청하는 경우 SetupDiCallClassInstaller 는 후처리를 위해 공동 설치 관리자를 호출할 때 포인터를 공동 설치 관리자에 전달합니다.