SetupDiGetDeviceInterfaceDetailA 함수(setupapi.h)

SetupDiGetDeviceInterfaceDetail 함수는 디바이스 인터페이스에 대한 세부 정보를 반환합니다.

구문

WINSETUPAPI BOOL SetupDiGetDeviceInterfaceDetailA(
  [in]            HDEVINFO                           DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA          DeviceInterfaceData,
  [out, optional] PSP_DEVICE_INTERFACE_DETAIL_DATA_A 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.cbSizesizeof(SP_DEVICE_INTERFACE_DETAIL_DATA)로 설정해야 합니다. cbSize 멤버는 항상 끝의 가변 길이 문자열을 반영하는 크기가 아니라 데이터 구조의 고정된 부분의 크기를 포함합니다.

[in] DeviceInterfaceDetailDataSize

DeviceInterfaceDetailData 버퍼의 크기입니다. 버퍼는 구조체의 고정된 부분과 빈 MULTI_SZ 문자열을 종료하는 단일 NULL을 포함하려면 적어도 (offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + sizeof(TCHAR)) 바이트여야 합니다.

DeviceInterfaceDetailDataNULL인 경우 이 매개 변수는 0이어야 합니다.

[out, optional] RequiredSize

DeviceInterfaceDetailData 버퍼의 필요한 크기를 수신하는 DWORD 형식의 변수에 대한 포인터입니다. 이 크기에는 구조체의 고정 부분 크기와 가변 길이 디바이스 경로 문자열에 필요한 바이트 수가 포함됩니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

[out, optional] DeviceInfoData

요청된 인터페이스를 지원하는 디바이스에 대한 정보를 수신하는 버퍼에 대한 포인터입니다. 호출자는 DeviceInfoData.cbSizesizeof(SP_DEVINFO_DATA)로 설정해야 합니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

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

설명

인터페이스에 대한 세부 정보를 가져오기 위해 이 함수를 사용하는 것은 일반적으로 2단계 프로세스입니다.

  1. 필요한 버퍼 크기를 가져옵니다. NULLDeviceInterfaceDetailData 포인터, DeviceInterfaceDetailDataSize 0 및 유효한 RequiredSize 변수를 사용하여 SetupDiGetDeviceInterfaceDetail을 호출합니다. 이러한 호출에 대한 응답으로 이 함수는 필수 버퍼 크기를 RequiredSize 로 반환하고 GetLastError 가 ERROR_INSUFFICIENT_BUFFER 반환하면서 실패합니다.
  2. 적절한 크기의 버퍼를 할당하고 함수를 다시 호출하여 인터페이스 세부 정보를 가져옵니다.
이 함수에서 반환하는 인터페이스 세부 정보는 CreateFile과 같은 Win32 함수에 전달할 수 있는 디바이스 경로로 구성됩니다. 디바이스 경로 기호 이름을 구문 분석하지 마세요. 디바이스 경로는 시스템 시작에서 다시 사용할 수 있습니다.

SetupDiGetDeviceInterfaceDetail 을 사용하여 DeviceInfoData만 가져올 수 있습니다. 인터페이스가 있지만 DeviceInterfaceDetailDataNULL인 경우 이 함수는 실패하고 GetLastError 는 ERROR_INSUFFICIENT_BUFFER 반환하며 DeviceInfoData 구조는 인터페이스를 노출하는 디바이스에 대한 정보로 채워집니다.

참고

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

요구 사항

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

추가 정보

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs