USB 드라이버 참조
USB 드라이버 참조 기술 개요입니다.
USB 드라이버 참조를 개발하려면 다음 헤더가 필요합니다.
이 기술에 대한 프로그래밍 지침은 다음을 참조하세요.
IOCTLs
IOCTL_GENERICUSBFN_ACTIVATE_USB_BUS 이 IOCTL(I/O 제어 코드)은 사용자 모드 서비스 또는 애플리케이션에서 전송되어 GenericUSBFn.sys USB(유니버설 직렬 버스)를 활성화하도록 알립니다. 활성화되면 버스는 버스 이벤트를 처리하고 트래픽을 처리할 준비가 됩니다. |
IOCTL_GENERICUSBFN_BUS_EVENT_NOTIFICATION 이 IOCTL(I/O 제어 코드)은 USB(유니버설 직렬 버스) 이벤트에 등록하기 위해 사용자 모드 서비스 또는 애플리케이션에 의해 전송됩니다. |
IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_IN 이 IOCTL(I/O 제어 코드)은 사용자 모드 서비스 또는 애플리케이션에서 엔드포인트 0의 핸드셰이크를 IN 방향으로 상태 길이가 0인 컨트롤을 요청하기 위해 전송됩니다. |
IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_OUT 이 IOCTL(I/O 제어 코드)은 사용자 모드 서비스 또는 애플리케이션에서 OUT 방향으로 엔드포인트 0에서 핸드셰이크를 상태 길이가 0인 컨트롤을 완료하기 위해 전송됩니다. |
IOCTL_GENERICUSBFN_DEACTIVATE_USB_BUS 이 IOCTL 코드는 nevtot가 지원됩니다. |
IOCTL_GENERICUSBFN_GET_CLASS_INFO 이 IOCTL(I/O 제어 코드)은 레지스트리에 구성된 디바이스의 사용 가능한 파이프에 대한 정보를 검색하기 위해 사용자 모드 서비스 또는 애플리케이션에서 전송됩니다. |
IOCTL_GENERICUSBFN_GET_CLASS_INFO_EX 이 IOCTL(I/O 제어 코드)은 레지스트리에 구성된 디바이스의 사용 가능한 파이프에 대한 정보를 검색하기 위해 사용자 모드 서비스 또는 애플리케이션에서 전송됩니다. |
IOCTL_GENERICUSBFN_GET_INTERFACE_DESCRIPTOR_SET 이 IOCTL(I/O 제어 코드)은 사용자 모드 서비스 또는 애플리케이션에서 전송되어 디바이스의 함수에 대해 설정된 전체 인터페이스 설명자를 가져옵니다. 이 IOCTL 요청은 전체 디바이스에 대해 설정된 인터페이스 설명자를 검색하지 않습니다. 디바이스의 함수에 대해 설정된 USB(유니버설 직렬 버스) 인터페이스 설명자입니다. |
IOCTL_GENERICUSBFN_GET_PIPE_STATE 이 IOCTL(I/O 제어 코드)은 사용자 모드 서비스 또는 애플리케이션에 의해 전송되어 지정된 USB(유니버설 직렬 버스) 파이프의 상태를 가져옵니다. |
IOCTL_GENERICUSBFN_REGISTER_USB_STRING 이 IOCTL(I/O 제어 코드)은 문자열 설명자를 등록하기 위해 사용자 모드 서비스 또는 애플리케이션에 의해 전송됩니다. USB(유니버설 직렬 버스) 문자열 설명자입니다. |
IOCTL_GENERICUSBFN_SET_PIPE_STATE 이 IOCTL(I/O 제어 코드)은 사용자 모드 서비스 또는 애플리케이션에 의해 전송되어 지정된 USB(유니버설 직렬 버스) 파이프의 상태를 설정합니다. |
IOCTL_GENERICUSBFN_TRANSFER_IN 이 IOCTL(I/O 제어 코드)은 입력 버퍼의 지정된 파이프 ID에 해당하는 엔드포인트에서 IN 방향 전송을 실행하기 위해 사용자 모드 서비스 또는 애플리케이션에 의해 전송됩니다. (IOCTL_GENERICUSBFN_TRANSFER_IN) |
IOCTL_GENERICUSBFN_TRANSFER_IN_APPEND_ZERO_PKT 이 IOCTL(I/O 제어 코드)은 입력 버퍼의 지정된 파이프 ID에 해당하는 엔드포인트에서 IN 방향 전송을 실행하기 위해 사용자 모드 서비스 또는 애플리케이션에 의해 전송됩니다. (IOCTL_GENERICUSBFN_TRANSFER_IN_APPEND_ZERO_PKT) |
IOCTL_GENERICUSBFN_TRANSFER_OUT 이 IOCTL(I/O 제어 코드)은 입력 버퍼의 지정된 파이프 ID에 해당하는 엔드포인트에서 OUT 방향 전송을 실행하기 위해 사용자 모드 서비스 또는 애플리케이션에 의해 전송됩니다. |
IOCTL_GET_HCD_DRIVERKEY_NAME IOCTL_GET_HCD_DRIVERKEY_NAME I/O 제어 요청은 USB 호스트 컨트롤러 드라이버에 대한 레지스트리의 드라이버 키 이름을 검색합니다. |
IOCTL_USB_DIAGNOSTIC_MODE_OFF IOCTL_USB_DIAGNOSTIC_MODE_OFF I/O 컨트롤은 더 이상 사용되지 않습니다. 사용하지 마십시오. |
IOCTL_USB_DIAGNOSTIC_MODE_ON IOCTL_USB_DIAGNOSTIC_MODE_ON I/O 컨트롤은 더 이상 사용되지 않습니다. 사용하지 마십시오. |
IOCTL_USB_GET_ROOT_HUB_NAME IOCTL_USB_GET_ROOT_HUB_NAME I/O 컨트롤 요청은 루트 허브의 기호 링크 이름을 검색하기 위해 USB_ROOT_HUB_NAME 구조체와 함께 사용됩니다. IOCTL_USB_GET_ROOT_HUB_NAME 사용자 모드 I/O 제어 요청입니다. |
IOCTL_USB_USER_REQUEST IOCTL_USB_USER_REQUEST I/O 제어 요청은 사용자 모드 애플리케이션과 커널 모드 드라이버 모두에서 사용할 수 있습니다. |
열거형
USB_USER_ERROR_CODE USB_USER_ERROR_CODE 열거형은 USB 사용자 모드가 실패할 때 보고하는 오류 코드를 나열합니다. |
WDMUSB_POWER_STATE WDMUSB_POWER_STATE 열거형은 호스트 컨트롤러 또는 루트 허브의 전원 상태를 나타냅니다. |
Functions
WinUsb_AbortPipe WinUsb_AbortPipe 함수는 파이프에 대해 보류 중인 모든 전송을 중단합니다. 동기 작업입니다. |
WinUsb_ControlTransfer WinUsb_ControlTransfer 함수는 기본 제어 엔드포인트를 통해 제어 데이터를 전송합니다. |
WinUsb_FlushPipe WinUsb_FlushPipe 함수는 파이프에 캐시된 모든 데이터를 삭제합니다. 동기 작업입니다. |
WinUsb_Free WinUsb_Free 함수는 할당된 모든 리소스를 WinUsb_Initialize 해제합니다. 동기 작업입니다. |
WinUsb_GetAdjustedFrameNumber WinUsb_GetAdjustedFrameNumber 함수는 프레임 번호 값 및 타임스탬프를 기반으로 현재 USB 프레임 번호를 계산합니다. |
WinUsb_GetAssociatedInterface WinUsb_GetAssociatedInterface 함수는 연결된 인터페이스에 대한 핸들을 검색합니다. 동기 작업입니다. |
WinUsb_GetCurrentAlternateSetting WinUsb_GetCurrentAlternateSetting 함수는 인터페이스에 대한 현재 대체 인터페이스 설정을 가져옵니다. 동기 작업입니다. |
WinUsb_GetCurrentFrameNumber WinUsb_GetCurrentFrameNumber 함수는 버스의 현재 프레임 번호를 가져옵니다. |
WinUsb_GetCurrentFrameNumberAndQpc WinUsb_GetCurrentFrameNumberAndQpc 함수는 프레임 및 마이크로프레임과 동기화된 QPC(시스템 쿼리 성능 카운터) 값을 검색합니다. |
WinUsb_GetDescriptor WinUsb_GetDescriptor 함수는 요청된 설명자를 반환합니다. 동기 작업입니다. |
WinUsb_GetOverlappedResult WinUsb_GetOverlappedResult 함수는 지정된 파일에서 겹치는 작업의 결과를 검색합니다. |
WinUsb_GetPipePolicy WinUsb_GetPipePolicy 함수는 디바이스의 엔드포인트와 연결된 특정 파이프에 대한 정책을 검색합니다. 동기 작업입니다. |
WinUsb_GetPowerPolicy WinUsb_GetPowerPolicy 함수는 디바이스의 전원 정책을 검색합니다. 동기 작업입니다. |
WinUsb_Initialize WinUsb_Initialize 함수는 파일 핸들로 지정된 디바이스에 대한 WinUSB 핸들을 만듭니다. |
WinUsb_QueryDeviceInformation WinUsb_QueryDeviceInformation 함수는 WinUSB 인터페이스 핸들과 연결된 물리적 디바이스에 대한 정보를 가져옵니다. |
WinUsb_QueryInterfaceSettings WinUsb_QueryInterfaceSettings 함수는 특정 인터페이스 핸들에 대해 지정된 대체 인터페이스 설정에 대한 인터페이스 설명자를 검색합니다. |
WinUsb_QueryPipe WinUsb_QueryPipe 함수는 인터페이스에 대해 지정된 엔드포인트 및 연결된 파이프에 대한 정보를 검색합니다. |
WinUsb_QueryPipeEx WinUsb_QueryPipeEx 함수는 인터페이스에 대해 지정된 엔드포인트 및 연결된 파이프에 대한 확장 정보를 검색합니다. |
WinUsb_ReadIsochPipe WinUsb_ReadIsochPipe 함수는 등시 OUT 엔드포인트에서 데이터를 읽습니다. |
WinUsb_ReadIsochPipeAsap WinUsb_ReadIsochPipeAsap 함수는 등시 OUT 엔드포인트에서 데이터를 읽는 요청을 제출합니다. |
WinUsb_ReadPipe WinUsb_ReadPipe 함수는 지정된 파이프에서 데이터를 읽습니다. |
WinUsb_RegisterIsochBuffer WinUsb_RegisterIsochBuffer 함수는 등시 전송에 사용할 버퍼를 등록합니다. |
WinUsb_ResetPipe WinUsb_ResetPipe 함수는 데이터 토글을 재설정하고 파이프의 중단 조건을 지웁니다. |
WinUsb_SetCurrentAlternateSetting WinUsb_SetCurrentAlternateSetting 함수는 인터페이스의 대체 설정을 설정합니다. |
WinUsb_SetPipePolicy WinUsb_SetPipePolicy 함수는 디바이스의 엔드포인트와 연결된 특정 파이프에 대한 정책을 설정합니다. 동기 작업입니다. |
WinUsb_SetPowerPolicy WinUsb_SetPowerPolicy 함수는 디바이스에 대한 전원 정책을 설정합니다. |
WinUsb_StartTrackingForTimeSync WinUsb_StartTrackingForTimeSync 함수는 USB 드라이버 스택에서 USB 버스 프레임 및 마이크로프레임에 대한 연결된 시스템 QPC 시간을 가져오는 시간 동기화 기능을 시작합니다. |
WinUsb_StopTrackingForTimeSync WinUsb_StopTrackingForTimeSync 함수는 USB 버스 프레임 및 마이크로프레임에 대한 연결된 시스템 QPC 시간을 가져오는 USB 드라이버 스택의 시간 동기화 기능을 맨 위에 놓습니다. |
WinUsb_UnregisterIsochBuffer WinUsb_UnregisterIsochBuffer 함수는 등시 전송에 할당된 WinUsb_RegisterIsochBuffer 모든 리소스를 해제합니다. 동기 작업입니다. |
WinUsb_WriteIsochPipe WinUsb_WriteIsochPipe 함수는 지정된 프레임 번호에서 시작하여 호출자가 제공한 버퍼의 내용을 등시 OUT 엔드포인트에 씁니다. |
WinUsb_WriteIsochPipeAsap WinUsb_WriteIsochPipeAsap 버퍼의 콘텐츠를 등시 OUT 엔드포인트에 쓰기 위한 요청을 제출합니다. |
WinUsb_WritePipe WinUsb_WritePipe 함수는 파이프에 데이터를 씁니다. |
구조체
USB_BANDWIDTH_INFO USB_BANDWIDTH_INFO 구조는 할당된 대역폭에 대한 정보를 검색하기 위해 IOCTL_USB_USER_REQUEST I/O 컨트롤 요청과 함께 사용됩니다. |
USB_BUS_STATISTICS_0 USB_BUS_STATISTICS_0 구조는 버스 통계를 검색하기 위해 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용됩니다. |
USB_CLOSE_RAW_DEVICE_PARAMETERS 이 구조는 지원되지 않습니다. USB_CLOSE_RAW_DEVICE_PARAMETERS 구조는 버스의 디바이스에 대한 원시 액세스를 닫기 위해 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용됩니다. |
USB_CONTROLLER_INFO_0 USB_CONTROLLER_INFO_0 구조는 USB 호스트 컨트롤러에 대한 정보를 검색하기 위해 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용됩니다. |
USB_DRIVER_VERSION_PARAMETERS USB_DRIVER_VERSION_PARAMETERS 구조는 IOCTL_USB_USER_REQUEST I/O 컨트롤 요청과 함께 버전 정보를 검색하는 데 사용됩니다. |
USB_PASS_THRU_PARAMETERS USB_PASS_THRU_PARAMETERS 구조는 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용하여 공급업체별 명령을 호스트 컨트롤러 미니포트 드라이버에 전달합니다. |
USB_POWER_INFO USB_POWER_INFO 구조는 호스트 컨트롤러 전원 정책이 표시된 시스템 전원 상태에 대해 지정하는 디바이스 전원 상태를 검색하기 위해 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용됩니다. |
USB_UNICODE_NAME USB_UNICODE_NAME 구조에는 기호 링크 이름을 지정하는 유니코드 문자열이 포함되어 있습니다. |
USBUSER_BANDWIDTH_INFO_REQUEST USBUSER_BANDWIDTH_INFO_REQUEST 구조는 할당된 대역폭에 대한 정보를 검색하기 위해 IOCTL_USB_USER_REQUEST I/O 컨트롤 요청과 함께 사용됩니다. |
USBUSER_BUS_STATISTICS_0_REQUEST USBUSER_BUS_STATISTICS_0_REQUEST 구조는 버스 통계를 검색하기 위해 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용됩니다. |
USBUSER_CONTROLLER_UNICODE_NAME USBUSER_CONTROLLER_UNICODE_NAME 구조는 USB 호스트 컨트롤러 드라이버 키 이름을 검색하기 위해 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용됩니다. |
USBUSER_GET_DRIVER_VERSION USBUSER_GET_DRIVER_VERSION 구조는 IOCTL_USB_USER_REQUEST I/O 컨트롤 요청과 함께 드라이버 및 인터페이스 버전 정보를 읽는 데 사용됩니다. |
USBUSER_PASS_THRU_REQUEST USBUSER_PASS_THRU_REQUEST 구조는 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용하여 공급업체별 명령을 호스트 컨트롤러 미니포트 드라이버에 보냅니다. |
USBUSER_POWER_INFO_REQUEST USBUSER_POWER_INFO_REQUEST 구조는 호스트 컨트롤러 및 루트 허브의 전원 상태와 특정 시스템 상태의 관계에 관한 전원 정책 정보를 검색하기 위해 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용됩니다. |
USBUSER_REQUEST_HEADER USBUSER_REQUEST_HEADER 구조는 IOCTL_USB_USER_REQUEST I/O 제어 요청과 함께 사용하여 USB 호스트 컨트롤러 드라이버에 사용자 모드 요청을 보냅니다. |
WINUSB_PIPE_INFORMATION WINUSB_PIPE_INFORMATION 구조에는 WinUsb_QueryPipe 루틴에서 검색하는 파이프 정보가 포함됩니다. |
WINUSB_PIPE_INFORMATION_EX WINUSB_PIPE_INFORMATION_EX 구조에는 WinUsb_QueryPipeEx 루틴에서 검색하는 파이프 정보가 포함됩니다. |
WINUSB_SETUP_PACKET WINUSB_SETUP_PACKET 구조는 USB 설정 패킷을 설명합니다. |