Share via


SetupDiOpenDeviceInterfaceA 함수(setupapi.h)

SetupDiOpenDeviceInterface 함수는 디바이스 인터페이스에 대한 정보를 검색하고 로컬 시스템 또는 원격 시스템에 대해 설정된 지정된 디바이스 정보에 인터페이스를 추가합니다.

구문

WINSETUPAPI BOOL SetupDiOpenDeviceInterfaceA(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PCSTR                     DevicePath,
  [in]            DWORD                     OpenFlags,
  [out, optional] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

매개 변수

[in] DeviceInfoSet

열려는 인터페이스를 지원하는 디바이스를 나타내는 디바이스 정보 요소를 포함하거나 포함할 디바이스 정보 집합에 대한 포인터입니다.

[in] DevicePath

열 디바이스 인터페이스의 이름을 제공하는 NULL로 끝나는 문자열에 대한 포인터입니다. 이 이름은 일반적으로 PnP 알림 구조에서 수신되거나 SetupDiEnumDeviceInterfaces 및 관련 함수에 대한 이전 호출에서 얻은 Win32 디바이스 경로입니다.

[in] OpenFlags

디바이스 인터페이스 요소를 여는 방법을 결정하는 플래그입니다. 유효한 플래그는 다음과 같습니다.

DIODI_NO_ADD

해당 요소가 지정된 디바이스 정보 집합에 아직 없는 경우 기본 디바이스의 디바이스 정보 요소가 만들어지지 않도록 지정합니다. 자세한 내용은 다음 주의 섹션을 참조 하세요 .

[out, optional] DeviceInterfaceData

요청된 인터페이스 데이터를 수신하는 호출자 초기화된 SP_DEVICE_INTERFACE_DATA 구조체에 대한 포인터입니다. 이 포인터는 선택 사항이며 NULL일 수 있습니다. 버퍼가 제공되면 호출자는 SetupDiOpenDeviceInterface를 호출하기 전에 구조체의 cbSize 멤버를 sizeof(SP_DEVICE_INTERFACE_DATA)로 설정해야 합니다. 자세한 내용은 다음 주의 섹션을 참조 하세요 .

반환 값

함수가 오류 없이 완료된 경우 SetupDiOpenDeviceInterfaceTRUE를 반환합니다. 함수가 오류로 완료되면 FALSE 를 반환하고 GetLastError를 호출하여 오류 코드를 검색할 수 있습니다.

설명

인터페이스에 대한 디바이스 인터페이스 요소가 DeviceInfoSet에 이미 있는 경우 SetupDiOpenDeviceInterface 는 플래그를 업데이트합니다. 따라서 이 함수를 사용하여 디바이스 인터페이스에 대한 플래그를 업데이트할 수 있습니다. 예를 들어 인터페이스가 처음 열렸을 때 비활성 상태였을 수 있지만 이후에 활성화됩니다. 기본 디바이스에 대한 디바이스 정보 요소가 DeviceInfoSet에 아직 없는 경우 이 함수는 해당 요소를 만들어 DeviceInfoSet에 추가합니다.

함수가 새 디바이스 인터페이스를 성공적으로 열지만 호출자가 DeviceInterfaceData 매개 변수에 유효한 구조를 제공하지 않으면 함수는 FALSE 를 반환하고 GetLastError 에 대한 후속 호출은 ERROR_INVALID_USER_BUFFER 반환합니다. 그러나 이 경우 SetupDiOpenDeviceInterface 는 요청된 인터페이스를 디바이스 정보 집합에 추가합니다.

새 디바이스 인터페이스가 성공적으로 열렸지만 호출자가 제공한 DeviceInterfaceData 버퍼가 유효하지 않으면 이 함수는 FALSE 를 반환하고 GetLastError 는 ERROR_INVALID_USER_BUFFER 반환합니다. 호출자의 버퍼 오류로 인해 인터페이스가 열리지 않습니다.

OpenFlags 매개 변수에 대해 DIODI_NO_ADD 플래그를 지정하고 기본 디바이스의 디바이스 정보 요소가 지정된 디바이스 정보 집합에 아직 없는 경우 이 함수는 FALSE를 반환하고 GetLastError는 ERROR_NO_SUCH_DEVICE_INTERFACE 반환합니다.

애플리케이션이 SetupDiOpenDeviceInterface검색한 정보를 사용하여 완료되면 애플리케이션은 SetupDiDeleteDeviceInterfaceData를 호출해야 합니다.

MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK 특성은 SetupDiOpenDeviceInterface 함수의 DevicePath 인수 값으로 전달될 수 있습니다.

참고

setupapi.h 헤더는 SETUPDiOpenDeviceInterface를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

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

추가 정보

SetupDiDeleteDeviceInterfaceData

SetupDiEnumDeviceInterfaces