IOCTL_INTERNAL_USB_RESET_PORT IOCTL (usbioctl.h)
A solicitação de controle de E/S IOCTL_INTERNAL_USB_RESET_PORT é usada por um driver para redefinir a porta upstream do dispositivo que ele gerencia. Após uma redefinição bem-sucedida, o driver de barramento reeleita a configuração e as configurações de interface alternativas que o dispositivo tinha antes da redefinição. Todas as alças de pipe, identificadores de configuração e identificadores de interface permanecem válidos.
Os drivers devem cancelar todas as solicitações de E/S e esperar que elas sejam concluídas antes de iniciar essa operação.
Um driver que gerencia uma interface individual em um dispositivo composto não pode redefinir a interface sem redefinir todo o dispositivo composto e todas as suas interfaces. Por esse motivo, os drivers que gerenciam interfaces devem tentar outros tipos de recuperação de erro, como redefinir pipes (_URB_PIPE_REQUEST), antes de redefinir a interface.
Este IOCTL deve ser enviado em um IRQL de PASSIVE_LEVEL.
IOCTL_INTERNAL_USB_RESET_PORT é uma solicitação de controle de E/S no modo kernel. Essa solicitação tem como destino o PDO do hub USB.
Código principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Buffer de entrada
Nenhum.
Comprimento do buffer de entrada
Nenhum.
Buffer de saída
Nenhum.
Comprimento do buffer de saída
Nenhum.
Bloco de status
O driver de barramento ou porta define Irp->IoStatus.Status para STATUS_SUCCESS ou o status de erro apropriado.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | usbioctl.h (include Usbioctl.h) |