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 |
---|---|
|
메서드가 성공했습니다. |
|
필요한 인수 중 하나 이상이 NULL 포인터였습니다. |
|
pPnPDeviceIDs 버퍼가 너무 작아서 요청된 모든 값을 보유할 수 없지만 pcPnPDeviceIDs 값이 pPnPDeviceIDs에 기록되었습니다. |
설명
디바이스 목록은 디바이스 관리자가 인스턴스화될 때 생성됩니다. 디바이스가 연결되고 연결이 끊기면 새로 고쳐지지 않습니다. 연결된 디바이스 목록을 새로 고치려면 RefreshDeviceList를 호출합니다.
API는 pPnPDeviceIDs 배열이 가리키는 각 문자열에 대한 메모리를 할당합니다. 애플리케이션에 이러한 문자열이 더 이상 필요하지 않으면 이 배열을 반복하고 CoTaskMemFree 함수를 호출하여 연결된 메모리를 해제해야 합니다.
예제
이 메서드를 사용하여 디바이스를 열거하는 방법에 대한 예제는 디바이스 열거를 참조하세요. 이 메서드를 사용하여 서비스를 열거하는 방법에 대한 예제는 서비스 열거를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | portabledeviceapi.h |
라이브러리 | PortableDeviceGUIDs.lib |