다음을 통해 공유


IPortableDeviceManager::GetDevices 메서드(portabledeviceapi.h)

컴퓨터에 연결된 휴대용 디바이스 목록을 검색합니다.

구문

HRESULT GetDevices(
  [in, out] LPWSTR *pPnPDeviceIDs,
  [in, out] DWORD  *pcPnPDeviceIDs
);

매개 변수

[in, out] pPnPDeviceIDs

연결된 모든 디바이스의 플러그 앤 플레이 이름을 포함하는 호출자가 할당한 문자열 포인터 배열입니다. 이 매개 변수에 필요한 크기를 알아보려면 먼저 이 매개 변수가 NULL 로 설정되고 pcPnPDeviceIDs 가 0으로 설정된 상태에서 이 메서드를 호출한 다음 pcPnPDeviceIDs에서 검색한 값에 따라 버퍼를 할당합니다. 이러한 이름은 IPortableDevice::Open 에서 디바이스에 대한 연결을 만드는 데 사용할 수 있습니다.

[in, out] pcPnPDeviceIDs

입력에서 pPnPDeviceID가 보유할 수 있는 값의 수입니다. 출력에서 pPnPDeviceID에 실제로 작성된 디바이스 수에 대한 포인터입니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
E_POINTER
필요한 인수 중 하나 이상이 NULL 포인터였습니다.
S_FALSE
pPnPDeviceIDs 버퍼가 너무 작아서 요청된 모든 값을 보유할 수 없지만 pcPnPDeviceIDs 값이 pPnPDeviceIDs에 기록되었습니다.

설명

디바이스 목록은 디바이스 관리자가 인스턴스화될 때 생성됩니다. 디바이스가 연결되고 연결이 끊기면 새로 고쳐지지 않습니다. 연결된 디바이스 목록을 새로 고치려면 RefreshDeviceList를 호출합니다.

API는 pPnPDeviceIDs 배열이 가리키는 각 문자열에 대한 메모리를 할당합니다. 애플리케이션에 이러한 문자열이 더 이상 필요하지 않으면 이 배열을 반복하고 CoTaskMemFree 함수를 호출하여 연결된 메모리를 해제해야 합니다.

예제

이 메서드를 사용하여 디바이스를 열거하는 방법에 대한 예제는 디바이스 열거를 참조하세요. 이 메서드를 사용하여 서비스를 열거하는 방법에 대한 예제는 서비스 열거를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 portabledeviceapi.h
라이브러리 PortableDeviceGUIDs.lib

추가 정보

디바이스 열거

서비스 열거

IPortableDeviceManager 인터페이스