다음을 통해 공유


SetupDiRestartDevices 함수(setupapi.h)

SetupDiRestartDevices 함수는 지정된 디바이스를 다시 시작하거나 필요한 경우 동일한 함수에서 작동하는 모든 디바이스를 다시 시작하고 지정된 디바이스를 작동하는 드라이버를 필터링합니다.

구문

WINSETUPAPI BOOL SetupDiRestartDevices(
  [in]      HDEVINFO         DeviceInfoSet,
  [in, out] PSP_DEVINFO_DATA DeviceInfoData
);

매개 변수

[in] DeviceInfoSet

다시 시작할 디바이스를 나타내는 디바이스 정보 요소가 포함된 디바이스 정보 집합에 대한 핸들입니다.

[in, out] DeviceInfoData

다시 시작할 디바이스를 나타내는 디바이스 정보 멤버의 SP_DEVINFO_DATA 구조에 대한 포인터입니다. SetupDiRestartDevices가 이 디바이스 정보 멤버에 대한 디바이스 설치 매개 변수와 해당 디바이스 instance 상태 및 문제 코드를 업데이트하기 때문에 이 매개 변수도 출력 매개 변수입니다. 이러한 업데이트에 대한 자세한 내용은 다음 설명 섹션을 참조 하세요 .

반환 값

작업이 성공하면 SetupDiRestartDevices는TRUE를 반환합니다. 그렇지 않으면 함수는 FALSE 를 반환하고 GetLastError 호출을 통해 기록된 오류를 검색할 수 있습니다.

설명

SetupDiRestartDevices 는 클래스 설치 관리자가 DIF_INSTALLDEVICE 요청을 처리하는 경우에만 클래스 설치 관리자에서 호출해야 하며, 디바이스 시작을 제외한 모든 기본 설치 작업 후에 클래스 설치 관리자가 작업을 수행해야 하는 드문 경우에만 호출해야 합니다. 이러한 상황에서 SetupDiRestartDevices 를 호출하는 방법에 대한 자세한 내용은 DIF_INSTALLDEVICE.

SetupDiRestartDevices 는 디바이스를 작동하는 동일한 함수 드라이버 또는 필터 드라이버에서 작동하는 다른 디바이스의 설치에 영향을 주지 않고 다시 시작을 수행할 수 있는 경우 지정된 디바이스만 다시 시작합니다. 특히 지정된 디바이스의 다시 시작에서 새 파일을 복사하거나 이전에 디바이스에 설치된 파일을 수정하지 않는 경우 SetupDiRestartDevices 는 지정된 디바이스만 다시 시작합니다. 그렇지 않으면 함수는 동일한 함수에서 작동하는 모든 디바이스를 다시 시작하고 지정된 디바이스를 작동하는 드라이버를 필터링합니다.

SetupDiRestartDevices는 다시 시작 시도 작업의 결과를 반영하도록 디바이스 설치 매개 변수 및 디바이스 상태 업데이트합니다. 예를 들면 다음과 같습니다.

  • 디바이스가 시작되면 SetupDiRestartDevices는 디바이스 상태 DN_STARTED 설정합니다.
  • 디바이스를 시작하기 위해 시스템을 다시 시작해야 하는 경우 SetupDiRestartDevices 는 디바이스 정보 요소와 연결된 SP_DEVINSTALL_PARAMETER 구조의 Flags 멤버에서 DI_NEEDREBOOT 플래그를 설정하고 디바이스의 문제 코드를 CM_PROB_NEED_RESTART 설정합니다.
CM_Get_DevNode_Status 함수는 디바이스 instance 대한 상태 및 문제 코드를 검색하고 SetupDiGetDeviceInstallParams 함수는 디바이스 instance 나타내는 디바이스 정보 요소에 대한 디바이스 설치 매개 변수를 검색합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2003 이상 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 setupapi.h(Setupapi.h 포함)
라이브러리 Setupapi.lib
DLL Setupapi.dll

추가 정보

CM_Get_DevNode_Status

DIF_INSTALLDEVICE

SP_DEVINFO_DATA

SetupDiGetDeviceInstallParams