IOCTL_AVC_BUS_RESET IOCTL (avc.h)

O código de controle de E/S IOCTL_AVC_BUS_RESET permite que o chamador conclua as solicitações de controle de IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO e IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO anteriores que não usaram o sinalizador AVC_SUBUNIT_ADDR_TRIGGERBUSRESET. Ele está disponível para o modo de usuário, bem como componentes do modo kernel por meio da expedição de IRP_MJ_DEVICE_CONTROL.

Para comunicação de driver para driver, é uma METHOD_BUFFERED IOCTL, portanto, defina os campos IRP adequadamente (IrpStack-Parameters.DeviceIoControl.InputBufferLength> e Irp-AssociatedIrp.SystemBuffer>). Essa solicitação não requer parâmetros adicionais, portanto, os buffers de entrada e saída devem ser definidos como NULL.

Essa solicitação faz com que avc.sys invalidem suas relações de dispositivo, o que resulta no gerenciador PnP solicitando uma lista atualizada de objetos de dispositivo filho (subunidades virtuais). Se não houver objetos de dispositivo filho novos ou removidos, nenhuma ação será tomada. Se houver objetos de dispositivo filho novos ou removidos, seus drivers serão carregados ou descarregados e uma redefinição de barramento 1394 será disparada para cada PDO à medida que cada um for iniciado ou removido.

Código principal

IRP_MJ_DEVICE_CONTROL

Bloco de status

Irp-IoStatus.Status será definido como STATUS_SUCCESS se a solicitação for bem-sucedida>.

Caso contrário, Status para a condição de erro apropriada como um código NTSTATUS.

Para obter mais informações, consulte Valores NTSTATUS.

Comentários

Deve ser chamado em IRQL = PASSIVE_LEVEL

Requisitos

Requisito Valor
Cabeçalho avc.h

Confira também

AVC_SUBUNIT_ADDR_SPEC

IOCTL_AVC_CLASS

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO

IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO