Referência do driver USB

Visão geral da tecnologia de referência do driver USB.

Para desenvolver a referência do driver USB, você precisa desses cabeçalhos:

Para obter diretrizes de programação para essa tecnologia, consulte:

IOCTLs

 
IOCTL_GENERICUSBFN_ACTIVATE_USB_BUS

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo no modo de usuário para notificar GenericUSBFn.sys para ativar o Barramento Serial Universal (USB). Depois de ativado, o barramento está preparado para processar eventos de barramento e lidar com o tráfego.
IOCTL_GENERICUSBFN_BUS_EVENT_NOTIFICATION

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo de modo de usuário para se registrar para o evento USB (Barramento Serial Universal).
IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_IN

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo de modo de usuário para solicitar um controle de comprimento zero status handshake no ponto de extremidade 0 na direção IN.
IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_OUT

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo no modo de usuário para concluir um controle de comprimento zero status handshake no ponto de extremidade 0 na direção OUT.
IOCTL_GENERICUSBFN_DEACTIVATE_USB_BUS

Esse código IOCTL tem suporte para nevtot.
IOCTL_GENERICUSBFN_GET_CLASS_INFO

Esse IOCTL (código de controle de E/S) é enviado pelo serviço ou aplicativo do modo de usuário para recuperar informações sobre os pipes disponíveis de um dispositivo, conforme configurado no registro.
IOCTL_GENERICUSBFN_GET_CLASS_INFO_EX

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo no modo de usuário para recuperar informações sobre os pipes disponíveis de um dispositivo, conforme configurado no registro.
IOCTL_GENERICUSBFN_GET_INTERFACE_DESCRIPTOR_SET

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo no modo de usuário para obter todo o descritor de interface definido para uma função no dispositivo. Essa solicitação IOCTL não recupera o descritor de interface definido para todo o dispositivo. Descritor de interface USB (Barramento Serial Universal) definido para uma função no dispositivo.
IOCTL_GENERICUSBFN_GET_PIPE_STATE

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo no modo de usuário para obter o estado do pipe do Barramento Serial Universal (USB) especificado.
IOCTL_GENERICUSBFN_REGISTER_USB_STRING

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo no modo de usuário para registrar um descritor de cadeia de caracteres. Descritor de cadeia de caracteres USB (Barramento Serial Universal).
IOCTL_GENERICUSBFN_SET_PIPE_STATE

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo no modo de usuário para definir o estado do pipe do Barramento Serial Universal (USB) especificado.
IOCTL_GENERICUSBFN_TRANSFER_IN

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo de modo de usuário para emitir uma transferência de direção IN no ponto de extremidade que corresponde à ID de pipe especificada no buffer de entrada. (IOCTL_GENERICUSBFN_TRANSFER_IN)
IOCTL_GENERICUSBFN_TRANSFER_IN_APPEND_ZERO_PKT

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo de modo de usuário para emitir uma transferência de direção IN no ponto de extremidade que corresponde à ID de pipe especificada no buffer de entrada. (IOCTL_GENERICUSBFN_TRANSFER_IN_APPEND_ZERO_PKT)
IOCTL_GENERICUSBFN_TRANSFER_OUT

Esse IOCTL (código de controle de E/S) é enviado por um serviço ou aplicativo no modo de usuário para emitir uma transferência de direção OUT no ponto de extremidade que corresponde à ID de pipe especificada no buffer de entrada.
IOCTL_GET_HCD_DRIVERKEY_NAME

A solicitação de controle de E/S IOCTL_GET_HCD_DRIVERKEY_NAME recupera o nome da chave do driver no registro de um driver de controlador de host USB.
IOCTL_USB_DIAGNOSTIC_MODE_OFF

O controle de E/S IOCTL_USB_DIAGNOSTIC_MODE_OFF foi preterido. Não use.
IOCTL_USB_DIAGNOSTIC_MODE_ON

O controle de E/S IOCTL_USB_DIAGNOSTIC_MODE_ON foi preterido. Não use.
IOCTL_USB_GET_ROOT_HUB_NAME

A solicitação de controle de E/S IOCTL_USB_GET_ROOT_HUB_NAME é usada com a estrutura USB_ROOT_HUB_NAME para recuperar o nome simbólico do link do hub raiz. IOCTL_USB_GET_ROOT_HUB_NAME é uma solicitação de controle de E/S no modo de usuário.
IOCTL_USB_USER_REQUEST

A solicitação de controle de E/S IOCTL_USB_USER_REQUEST está disponível para aplicativos no modo usuário e drivers no modo kernel.

Enumerações

 
USB_USER_ERROR_CODE

A enumeração USB_USER_ERROR_CODE lista os códigos de erro que uma solicitação de modo de usuário USB relata quando falha.
WDMUSB_POWER_STATE

A enumeração WDMUSB_POWER_STATE indica o estado de energia de um controlador de host ou hub raiz.

Funções

 
WinUsb_AbortPipe

A função WinUsb_AbortPipe anula todas as transferências pendentes para um pipe. Esta é uma operação síncrona.
WinUsb_ControlTransfer

A função WinUsb_ControlTransfer transmite dados de controle sobre um ponto de extremidade de controle padrão.
WinUsb_FlushPipe

A função WinUsb_FlushPipe descarta todos os dados armazenados em cache em um pipe. Esta é uma operação síncrona.
WinUsb_Free

A função WinUsb_Free libera todos os recursos que WinUsb_Initialize alocados. Esta é uma operação síncrona.
WinUsb_GetAdjustedFrameNumber

A função WinUsb_GetAdjustedFrameNumber calcula qual o número de quadro USB atual deve ser baseado no valor do número de quadro e no carimbo de data/hora.
WinUsb_GetAssociatedInterface

A função WinUsb_GetAssociatedInterface recupera um identificador para uma interface associada. Esta é uma operação síncrona.
WinUsb_GetCurrentAlternateSetting

A função WinUsb_GetCurrentAlternateSetting obtém a configuração de interface alternativa atual para uma interface. Esta é uma operação síncrona.
WinUsb_GetCurrentFrameNumber

A função WinUsb_GetCurrentFrameNumber obtém o número de quadro atual do barramento.
WinUsb_GetCurrentFrameNumberAndQpc

A função WinUsb_GetCurrentFrameNumberAndQpc recupera o valor do QPC (contador de desempenho de consulta do sistema) sincronizado com o quadro e o microframe.
WinUsb_GetDescriptor

A função WinUsb_GetDescriptor retorna o descritor solicitado. Esta é uma operação síncrona.
WinUsb_GetOverlappedResult

A função WinUsb_GetOverlappedResult recupera os resultados de uma operação sobreposta no arquivo especificado.
WinUsb_GetPipePolicy

A função WinUsb_GetPipePolicy recupera a política de um pipe específico associado a um ponto de extremidade no dispositivo. Esta é uma operação síncrona.
WinUsb_GetPowerPolicy

A função WinUsb_GetPowerPolicy recupera a política de energia de um dispositivo. Esta é uma operação síncrona.
WinUsb_Initialize

A função WinUsb_Initialize cria um identificador WinUSB para o dispositivo especificado por um identificador de arquivo.
WinUsb_QueryDeviceInformation

A função WinUsb_QueryDeviceInformation obtém informações sobre o dispositivo físico associado a um identificador de interface WinUSB.
WinUsb_QueryInterfaceSettings

A função WinUsb_QueryInterfaceSettings recupera o descritor de interface para as configurações de interface alternativa especificadas para um identificador de interface específico.
WinUsb_QueryPipe

A função WinUsb_QueryPipe recupera informações sobre o ponto de extremidade especificado e o pipe associado para uma interface.
WinUsb_QueryPipeEx

A função WinUsb_QueryPipeEx recupera informações estendidas sobre o ponto de extremidade especificado e o pipe associado para uma interface.
WinUsb_ReadIsochPipe

A função WinUsb_ReadIsochPipe lê dados de um ponto de extremidade OUT isócrono.
WinUsb_ReadIsochPipeAsap

A função WinUsb_ReadIsochPipeAsap envia uma solicitação que lê dados de um ponto de extremidade OUT isócrono.
WinUsb_ReadPipe

A função WinUsb_ReadPipe lê dados do pipe especificado.
WinUsb_RegisterIsochBuffer

A função WinUsb_RegisterIsochBuffer registra um buffer a ser usado para transferências isocronas.
WinUsb_ResetPipe

A função WinUsb_ResetPipe redefine a alternância de dados e limpa a condição de parada em um pipe.
WinUsb_SetCurrentAlternateSetting

A função WinUsb_SetCurrentAlternateSetting define a configuração alternativa de uma interface.
WinUsb_SetPipePolicy

A função WinUsb_SetPipePolicy define a política para um pipe específico associado a um ponto de extremidade no dispositivo. Esta é uma operação síncrona.
WinUsb_SetPowerPolicy

A função WinUsb_SetPowerPolicy define a política de energia de um dispositivo.
WinUsb_StartTrackingForTimeSync

A função WinUsb_StartTrackingForTimeSync inicia o recurso de sincronização de tempo na pilha do driver USB que obtém o tempo de QPC do sistema associado para quadros de barramento USB e microframes.
WinUsb_StopTrackingForTimeSync

A função WinUsb_StopTrackingForTimeSync lidera o recurso de sincronização de tempo na pilha do driver USB que obtém o tempo de QPC do sistema associado para quadros de barramento USB e microframes.
WinUsb_UnregisterIsochBuffer

A função WinUsb_UnregisterIsochBuffer libera todos os recursos que WinUsb_RegisterIsochBuffer alocados para transferências isocronas. Esta é uma operação síncrona.
WinUsb_WriteIsochPipe

A função WinUsb_WriteIsochPipe grava o conteúdo de um buffer fornecido pelo chamador em um ponto de extremidade OUT isócrono, começando em um número de quadro especificado.
WinUsb_WriteIsochPipeAsap

O WinUsb_WriteIsochPipeAsap envia uma solicitação para gravar o conteúdo de um buffer em um ponto de extremidade OUT isócrono.
WinUsb_WritePipe

A função WinUsb_WritePipe grava dados em um pipe.

Estruturas

 
USB_BANDWIDTH_INFO

A estrutura USB_BANDWIDTH_INFO é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar informações sobre a largura de banda alocada.
USB_BUS_STATISTICS_0

A estrutura USB_BUS_STATISTICS_0 é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar estatísticas de barramento.
USB_CLOSE_RAW_DEVICE_PARAMETERS

Não há suporte para essa estrutura. A estrutura USB_CLOSE_RAW_DEVICE_PARAMETERS é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para fechar o acesso bruto aos dispositivos no barramento.
USB_CONTROLLER_INFO_0

A estrutura USB_CONTROLLER_INFO_0 é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar informações sobre o controlador de host USB.
USB_DRIVER_VERSION_PARAMETERS

A estrutura USB_DRIVER_VERSION_PARAMETERS é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar informações de versão.
USB_PASS_THRU_PARAMETERS

A estrutura USB_PASS_THRU_PARAMETERS é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para passar um comando específico do fornecedor para o driver de miniporto do controlador host.
USB_POWER_INFO

A estrutura USB_POWER_INFO é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar o estado de energia do dispositivo que a política de energia do controlador de host especifica para o estado de energia do sistema indicado.
USB_UNICODE_NAME

A estrutura USB_UNICODE_NAME contém uma cadeia de caracteres Unicode que especifica um nome de link simbólico.
USBUSER_BANDWIDTH_INFO_REQUEST

A estrutura USBUSER_BANDWIDTH_INFO_REQUEST é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar informações sobre a largura de banda alocada.
USBUSER_BUS_STATISTICS_0_REQUEST

A estrutura de USBUSER_BUS_STATISTICS_0_REQUEST é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar estatísticas de barramento.
USBUSER_CONTROLLER_UNICODE_NAME

A estrutura USBUSER_CONTROLLER_UNICODE_NAME é usada em conjunto com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar o nome da chave de driver do controlador de host USB.
USBUSER_GET_DRIVER_VERSION

A estrutura USBUSER_GET_DRIVER_VERSION é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para ler informações de versão do driver e da interface.
USBUSER_PASS_THRU_REQUEST

A estrutura USBUSER_PASS_THRU_REQUEST é usada em conjunto com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para enviar um comando específico do fornecedor para o driver de miniporte do controlador host.
USBUSER_POWER_INFO_REQUEST

A estrutura USBUSER_POWER_INFO_REQUEST é usada em conjunto com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para recuperar informações de política de energia sobre a relação de um estado específico do sistema com o estado de energia do controlador de host e do hub raiz.
USBUSER_REQUEST_HEADER

A estrutura USBUSER_REQUEST_HEADER é usada com a solicitação de controle de E/S IOCTL_USB_USER_REQUEST para enviar uma solicitação de modo de usuário para o driver do controlador de host USB.
WINUSB_PIPE_INFORMATION

A estrutura WINUSB_PIPE_INFORMATION contém informações de pipe que a rotina WinUsb_QueryPipe recupera.
WINUSB_PIPE_INFORMATION_EX

A estrutura WINUSB_PIPE_INFORMATION_EX contém informações de pipe que a rotina de WinUsb_QueryPipeEx recupera.
WINUSB_SETUP_PACKET

A estrutura WINUSB_SETUP_PACKET descreve um pacote de configuração USB.