SetupDiOpenDeviceInterfaceW 함수(setupapi.h)
SetupDiOpenDeviceInterface 함수는 디바이스 인터페이스에 대한 정보를 검색하고 로컬 시스템 또는 원격 시스템에 대해 설정된 지정된 디바이스 정보에 인터페이스를 추가합니다.
구문
WINSETUPAPI BOOL SetupDiOpenDeviceInterfaceW(
[in] HDEVINFO DeviceInfoSet,
[in] PCWSTR 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)로 설정해야 합니다. 자세한 내용은 다음 주의 섹션을 참조 하세요 .
반환 값
함수가 오류 없이 완료된 경우 SetupDiOpenDeviceInterface는 TRUE를 반환합니다. 함수가 오류로 완료되면 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 |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기