Прочитать на английском

Поделиться через


Справочник по usb-драйверам

Обзор эталонной технологии драйвера USB.

Для разработки справочника по usb-драйверу требуются следующие заголовки:

Рекомендации по программированию для этой технологии см. в следующих разделах:

Функции IOCTL

 
IOCTL_GENERICUSBFN_ACTIVATE_USB_BUS

Этот код управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима, чтобы уведомить GenericUSBFn.sys об активации универсальной последовательной шины (USB). После активации автобус готовится к обработке событий в шине и обработке трафика.
IOCTL_GENERICUSBFN_BUS_EVENT_NOTIFICATION

Этот код управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима для регистрации события универсальной последовательной шины (USB).
IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_IN

Этот код элемента управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима для запроса подтверждения состояния элемента управления нулевой длины на конечной точке 0 в направлении IN.
IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_OUT

Этот код элемента управления ввода-вывода (IOCTL) отправляется службой или приложением пользовательского режима для завершения подтверждения состояния элемента управления нулевой длины на конечной точке 0 в направлении OUT.
IOCTL_GENERICUSBFN_DEACTIVATE_USB_BUS

Этот код IOCTL поддерживается невтот.
IOCTL_GENERICUSBFN_GET_CLASS_INFO

Этот код управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима для получения сведений о доступных каналах устройства, настроенных в реестре.
IOCTL_GENERICUSBFN_GET_CLASS_INFO_EX

Этот код управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима для получения сведений о доступных каналах устройства, настроенных в реестре.
IOCTL_GENERICUSBFN_GET_INTERFACE_DESCRIPTOR_SET

Этот управляющий код ввода-вывода (IOCTL) отправляется службой или приложением пользовательского режима, чтобы получить весь набор дескрипторов интерфейса для функции на устройстве. Этот запрос IOCTL не получает дескриптор интерфейса, заданный для всего устройства. Дескриптор интерфейса USB, заданный для функции на устройстве.
IOCTL_GENERICUSBFN_GET_PIPE_STATE

Этот код управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима для получения состояния указанного канала УНИВЕРСАЛЬНОй последовательной шины (USB).
IOCTL_GENERICUSBFN_REGISTER_USB_STRING

Этот управляющий код ввода-вывода (IOCTL) отправляется службой или приложением пользовательского режима для регистрации дескриптора строки. Дескриптор строки универсальной последовательной шины (USB).
IOCTL_GENERICUSBFN_SET_PIPE_STATE

Этот код управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима для установки состояния указанного канала УНИВЕРСАЛЬНОй последовательной шины (USB).
IOCTL_GENERICUSBFN_TRANSFER_IN

Этот код управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима для выдачи передачи направления IN на конечной точке, которая соответствует указанному идентификатору канала во входном буфере. (IOCTL_GENERICUSBFN_TRANSFER_IN)
IOCTL_GENERICUSBFN_TRANSFER_IN_APPEND_ZERO_PKT

Этот код управления вводом-выводом (IOCTL) отправляется службой или приложением пользовательского режима для выдачи передачи направления IN на конечной точке, которая соответствует указанному идентификатору канала во входном буфере. (IOCTL_GENERICUSBFN_TRANSFER_IN_APPEND_ZERO_PKT)
IOCTL_GENERICUSBFN_TRANSFER_OUT

Этот управляющий код ввода-вывода (IOCTL) отправляется службой или приложением пользовательского режима для передачи направления OUT на конечной точке, соответствующей указанному идентификатору канала во входном буфере.
IOCTL_GET_HCD_DRIVERKEY_NAME

Запрос IOCTL_GET_HCD_DRIVERKEY_NAME управления вводом-выводом получает имя ключа драйвера в реестре для драйвера usb-контроллера узла.
IOCTL_USB_DIAGNOSTIC_MODE_OFF

Элемент управления IOCTL_USB_DIAGNOSTIC_MODE_OFF ввода-вывода устарел. Не используйте.
IOCTL_USB_DIAGNOSTIC_MODE_ON

Элемент управления IOCTL_USB_DIAGNOSTIC_MODE_ON ввода-вывода устарел. Не используйте.
IOCTL_USB_GET_ROOT_HUB_NAME

Запрос IOCTL_USB_GET_ROOT_HUB_NAME управления вводом-выводом используется со структурой USB_ROOT_HUB_NAME для получения символьного имени ссылки корневого концентратора. IOCTL_USB_GET_ROOT_HUB_NAME — это запрос на управление вводом-выводом в пользовательском режиме.
IOCTL_USB_USER_REQUEST

Запрос IOCTL_USB_USER_REQUEST управления вводом-выводом доступен как для приложений в пользовательском режиме, так и для драйверов режима ядра.

Перечисления

 
USB_USER_ERROR_CODE

Перечисление USB_USER_ERROR_CODE содержит коды ошибок, которые сообщает запрос в пользовательском режиме USB при сбое.
WDMUSB_POWER_STATE

Перечисление WDMUSB_POWER_STATE указывает состояние питания контроллера узла или корневого концентратора.

Функции

 
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, которая получает связанное системное время QPC для кадров и микрофреймов шины USB.
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 ввода-вывода для получения сведений о выделенной пропускной способности.
USB_BUS_STATISTICS_0

Структура USB_BUS_STATISTICS_0 используется с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для получения статистики по шине.
USB_CLOSE_RAW_DEVICE_PARAMETERS

Эта структура не поддерживается. Структура USB_CLOSE_RAW_DEVICE_PARAMETERS используется с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для закрытия необработанного доступа к устройствам в шине.
USB_CONTROLLER_INFO_0

Структура USB_CONTROLLER_INFO_0 используется с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для получения сведений о контроллере узла USB.
USB_DRIVER_VERSION_PARAMETERS

Структура USB_DRIVER_VERSION_PARAMETERS используется с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для получения сведений о версии.
USB_PASS_THRU_PARAMETERS

Структура USB_PASS_THRU_PARAMETERS используется с запросом на управление IOCTL_USB_USER_REQUEST ввода-вывода для передачи конкретной команды поставщика драйверу мини-порта контроллера узла.
USB_POWER_INFO

Структура USB_POWER_INFO используется с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для получения состояния питания устройства, указанного политикой питания контроллера узла для указанного состояния системы.
USB_UNICODE_NAME

Структура USB_UNICODE_NAME содержит строку в Юникоде, указывающую символьное имя ссылки.
USBUSER_BANDWIDTH_INFO_REQUEST

Структура USBUSER_BANDWIDTH_INFO_REQUEST используется с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для получения сведений о выделенной пропускной способности.
USBUSER_BUS_STATISTICS_0_REQUEST

Структура USBUSER_BUS_STATISTICS_0_REQUEST используется с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для получения статистики по шине.
USBUSER_CONTROLLER_UNICODE_NAME

Структура USBUSER_CONTROLLER_UNICODE_NAME используется в сочетании с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для получения имени ключа драйвера контроллера узла USB.
USBUSER_GET_DRIVER_VERSION

Структура USBUSER_GET_DRIVER_VERSION используется с запросом управления IOCTL_USB_USER_REQUEST ввода-вывода для чтения сведений о версии драйвера и интерфейса.
USBUSER_PASS_THRU_REQUEST

Структура USBUSER_PASS_THRU_REQUEST используется в сочетании с запросом IOCTL_USB_USER_REQUEST управления вводом-выводом для отправки команды конкретного поставщика в драйвер мини-порта хост-контроллера.
USBUSER_POWER_INFO_REQUEST

Структура USBUSER_POWER_INFO_REQUEST используется в сочетании с запросом IOCTL_USB_USER_REQUEST управления вводом-выводом для получения сведений о политике управления питанием, касающихся связи конкретного состояния системы с состоянием питания контроллера узла и корневого концентратора.
USBUSER_REQUEST_HEADER

Структура USBUSER_REQUEST_HEADER используется с запросом IOCTL_USB_USER_REQUEST управления вводом-выводом для отправки запроса в пользовательском режиме в драйвер 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.