다음을 통해 공유


WinUsb_QueryPipe 함수(winusb.h)

WinUsb_QueryPipe 함수는 인터페이스에 대해 지정된 엔드포인트 및 연결된 파이프에 대한 정보를 검색합니다.

구문

BOOL WinUsb_QueryPipe(
  [in]  WINUSB_INTERFACE_HANDLE  InterfaceHandle,
  [in]  UCHAR                    AlternateInterfaceNumber,
  [in]  UCHAR                    PipeIndex,
  [out] PWINUSB_PIPE_INFORMATION PipeInformation
);

매개 변수

[in] InterfaceHandle

파이프가 연결된 엔드포인트를 포함하는 인터페이스에 대한 불투명 핸들입니다.

첫 번째 인터페이스에서 엔드포인트와 연결된 파이프를 쿼리하려면 WinUsb_Initialize 반환된 핸들을 사용합니다. 다른 모든 인터페이스의 경우 WinUsb_GetAssociatedInterface 검색된 대상 인터페이스에 대한 핸들을 사용합니다.

[in] AlternateInterfaceNumber

정보를 반환할 대체 인터페이스를 지정하는 값입니다.

[in] PipeIndex

정보를 반환할 파이프를 지정하는 값입니다. 이 값은 엔드포인트 설명자의 bEndpointAddress 필드와 동일하지 않습니다. PipeIndex 값 0은 인터페이스와 연결된 첫 번째 엔드포인트를 의미하고, 값 1은 두 번째 엔드포인트를 나타내는 등입니다. PipeIndex 는 인터페이스 설명자의 bNumEndpoints 필드 값보다 작아야 합니다.

[out] PipeInformation

출력에서 파이프 정보를 포함하는 호출자가 할당한 WINUSB_PIPE_INFORMATION 구조체에 대한 포인터입니다.

반환 값

WinUsb_QueryPipe 작업이 성공하면 TRUE 를 반환합니다. 그렇지 않으면 이 함수는 FALSE를 반환하고 호출자는 GetLastError를 호출하여 기록된 오류를 검색할 수 있습니다.

GetLastError 는 다음 오류 코드를 반환할 수 있습니다.

반환 코드 설명
ERROR_INVALID_HANDLE
호출자가 InterfaceHandle 매개 변수에서 NULL을 전달했습니다.
ERROR_INVALID_PARAMETER
호출자가 PipeInformation 매개 변수에서 NULL을 전달했습니다. InterfaceHandle에 지정된 핸들에 대한 인터페이스 설명자를 찾을 수 없습니다.
ERROR_NO_MORE_ITEMS
PipeIndex 매개 변수에 전달된 값이 인터페이스 설명자의 bNumEndpoints 값보다 큽니다. 지정된 인터페이스에 대한 엔드포인트 설명자를 찾을 수 없습니다.

설명

WinUsb_QueryPipe 함수는 제어 파이프에 대한 정보를 검색하지 않습니다.

USB 디바이스의 각 인터페이스에는 여러 엔드포인트가 있을 수 있습니다. 이러한 각 엔드포인트와 통신하기 위해 버스 드라이버는 인터페이스의 각 엔드포인트에 대한 파이프를 만듭니다. 파이프 인덱스는 0부터 시작합니다. 따라서 n 개의 엔드포인트에 대해 파이프의 인덱스는 n-1에서 설정됩니다. WinUsb_QueryPipe 구성 설명자를 구문 분석하여 호출자가 지정한 인터페이스를 가져옵니다. 인터페이스 설명자에서 호출자 지정 파이프와 연결된 엔드포인트 설명자를 검색합니다. 엔드포인트가 발견되면 함수는 호출자가 할당한 WINUSB_PIPE_INFORMATION 구조를 엔드포인트 설명자의 정보로 채웁니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 winusb.h(Winusb.h 포함)
라이브러리 Winusb.lib
DLL Winusb.dll

추가 정보

WINUSB_PIPE_INFORMATION

WinUSB

WinUSB 함수

WinUsb_Initialize