SetupDiGetDeviceInterfaceDetailW 함수(setupapi.h)
SetupDiGetDeviceInterfaceDetail 함수는 디바이스 인터페이스에 대한 세부 정보를 반환합니다.
구문
WINSETUPAPI BOOL SetupDiGetDeviceInterfaceDetailW(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
[out, optional] PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData,
[in] DWORD DeviceInterfaceDetailDataSize,
[out, optional] PDWORD RequiredSize,
[out, optional] PSP_DEVINFO_DATA DeviceInfoData
);
매개 변수
[in] DeviceInfoSet
세부 정보를 검색할 인터페이스를 포함하는 디바이스 정보 집합 에 대한 포인터입니다. 이 핸들은 일반적으로 SetupDiGetClassDevs에서 반환됩니다.
[in] DeviceInterfaceData
세부 정보를 검색할 DeviceInfoSet의 인터페이스를 지정하는 SP_DEVICE_INTERFACE_DATA 구조체에 대한 포인터입니다. 이 형식의 포인터는 일반적으로 SetupDiEnumDeviceInterfaces에서 반환됩니다.
[out, optional] DeviceInterfaceDetailData
지정된 인터페이스에 대한 정보를 수신하는 SP_DEVICE_INTERFACE_DETAIL_DATA 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. DeviceInterfaceDetailSize가 0인 경우 이 매개 변수는 NULL이어야 합니다. 이 매개 변수를 지정하는 경우 호출자는 이 함수를 호출하기 전에 DeviceInterfaceDetailData.cbSize를 sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA)로 설정해야 합니다. cbSize 멤버는 항상 끝에 있는 가변 길이 문자열을 반영하는 크기가 아니라 데이터 구조의 고정된 부분의 크기를 포함합니다.
[in] DeviceInterfaceDetailDataSize
DeviceInterfaceDetailData 버퍼의 크기입니다. 버퍼는 구조체의 고정 부분을 포함하려면 적어도 (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + sizeof(TCHAR)) 바이트여야 하며, 빈 MULTI_SZ 문자열을 종료하려면 단일 NULL 을 포함해야 합니다.
DeviceInterfaceDetailData가 NULL인 경우 이 매개 변수는 0이어야 합니다.
[out, optional] RequiredSize
DeviceInterfaceDetailData 버퍼의 필요한 크기를 수신하는 DWORD 형식의 변수에 대한 포인터입니다. 이 크기에는 구조체의 고정 부분 크기와 가변 길이 디바이스 경로 문자열에 필요한 바이트 수가 포함됩니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[out, optional] DeviceInfoData
요청된 인터페이스를 지원하는 디바이스에 대한 정보를 수신하는 버퍼에 대한 포인터입니다. 호출자는 DeviceInfoData.cbSize를 sizeof(SP_DEVINFO_DATA)로 설정해야 합니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
반환 값
SetupDiGetDeviceInterfaceDetail 은 함수가 오류 없이 완료된 경우 TRUE 를 반환합니다. 함수가 오류로 완료되면 FALSE 가 반환되고 GetLastError를 호출하여 오류에 대한 오류 코드를 검색할 수 있습니다.
설명
이 함수를 사용하여 인터페이스에 대한 세부 정보를 가져오는 것은 일반적으로 2단계 프로세스입니다.
- 필요한 버퍼 크기를 가져옵니다. NULLDeviceInterfaceDetailData 포인터, DeviceInterfaceDetailDataSize 0 및 유효한 RequiredSize 변수를 사용하여 SetupDiGetDeviceInterfaceDetail을 호출합니다. 이러한 호출에 대한 응답으로 이 함수는 필수 버퍼 크기를 RequiredSize 로 반환하고 GetLastError 가 ERROR_INSUFFICIENT_BUFFER 반환하면서 실패합니다.
- 적절한 크기의 버퍼를 할당하고 함수를 다시 호출하여 인터페이스 세부 정보를 가져옵니다.
SetupDiGetDeviceInterfaceDetail 을 사용하여 DeviceInfoData만 가져올 수 있습니다. 인터페이스가 있지만 DeviceInterfaceDetailData 가 NULL인 경우 이 함수는 실패하고 GetLastError 는 ERROR_INSUFFICIENT_BUFFER 반환하며 DeviceInfoData 구조는 인터페이스를 노출하는 디바이스에 대한 정보로 채워집니다.
참고
setupapi.h 헤더는 SETUPDiGetDeviceInterfaceDetail을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Microsoft Windows 2000 이상 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | setupapi.h(Setupapi.h 포함) |
라이브러리 | Setupapi.lib |
API 세트 | ext-ms-win-setupapi-classinstallers-l1-1-2(Windows 10 버전 10.0.14393에 도입됨) |