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 설정 패킷을 설명합니다.