WinUsb_Initialize 함수(winusb.h)
WinUsb_Initialize 함수는 파일 핸들로 지정된 디바이스에 대한 WinUSB 핸들을 만듭니다.
구문
BOOL WinUsb_Initialize(
[in] HANDLE DeviceHandle,
[out] PWINUSB_INTERFACE_HANDLE InterfaceHandle
);
매개 변수
[in] DeviceHandle
CreateFile이 반환한 디바이스에 대한 핸들입니다. WinUSB는 겹치는 I/O를 사용하므로 WinUsb_Initialize 제대로 작동하는 데 필요한 특성을 갖도록 DeviceHandle에 대한 CreateFile 호출의 dwFlagsAndAttributes 매개 변수에 FILE_FLAG_OVERLAPPED 지정해야 합니다.
[out] InterfaceHandle
디바이스의 첫 번째(기본) 인터페이스에 대한 불투명 핸들을 받습니다. 이 핸들은 기본 인터페이스에서 작업을 수행하는 다른 WinUSB 루틴에 필요합니다. 핸들을 해제하려면 WinUSB_Free 함수를 호출합니다.
반환 값
WinUsb_Initialize 작업이 성공하면 TRUE 를 반환합니다. 그렇지 않으면 이 루틴은 FALSE를 반환하고 호출자는 GetLastError를 호출하여 기록된 오류를 검색할 수 있습니다.
GetLastError 는 다음 오류 코드를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
호출자가 DeviceHandle 매개 변수에서 NULL 또는 잘못된 핸들을 전달했습니다. FILE_FLAG_OVERLAPPED 파일 핸들에 설정되지 않았습니다. |
|
작업을 수행할 메모리가 부족했음을 나타냅니다. |
|
디바이스에 대한 기본 인터페이스 설명자를 찾을 수 없음을 나타냅니다. |
설명
WinUsb_Initialize 호출되면 인터페이스의 정책 설정이 기본값으로 다시 설정됩니다.
WinUsb_Initialize 호출은 기본 USB 스택에서 다양한 설명자를 쿼리하고 검색된 설명자 데이터를 저장하기에 충분한 메모리를 할당합니다.
WinUsb_Initialize 먼저 디바이스 설명자를 검색한 다음 연결된 구성 설명자를 가져옵니다. 구성 설명자에서 호출은 연결된 인터페이스 설명자를 파생시키고 배열에 저장합니다. 배열의 인터페이스는 0부터 시작하는 인덱스로 식별됩니다. 인덱스 값 0은 첫 번째 인터페이스(기본 인터페이스)를 나타내고, 값 1은 두 번째 연결된 인터페이스 등을 나타냅니다. WinUsb_Initialize 엔드포인트 설명자에 대한 기본 인터페이스 설명자를 구문 분석하고 연결된 파이프 또는 상태별 데이터와 같은 정보를 캐시합니다. InterfaceHandle 매개 변수에서 받은 핸들은 배열의 첫 번째 인터페이스에 할당된 메모리 블록에 대한 포인터입니다.
애플리케이션이 디바이스에서 다른 인터페이스를 사용하려는 경우 WinUsb_GetAssociatedInterface 호출하고, 인터페이스의 인덱스를 지정하고, 지정된 인터페이스에 할당된 메모리 블록에 대한 핸들을 검색해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | winusb.h(Winusb.h 포함) |
라이브러리 | Winusb.lib |
DLL | Winusb.dll |