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


IOCTL_AVC_BUS_RESET IOCTL (avc.h)

Код элемента управления IOCTL_AVC_BUS_RESET ввода-вывода позволяет вызывающему объекту выполнять любые предыдущие IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO и IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO запросы управления, которые не использовали флаг AVC_SUBUNIT_ADDR_TRIGGERBUSRESET. Он доступен для пользовательского режима, а также компонентов режима ядра через IRP_MJ_DEVICE_CONTROL отправку.

Для связи между драйверами это METHOD_BUFFERED IOCTL, поэтому задайте поля IRP соответствующим образом (IrpStack->Parameters.DeviceIoControl.InputBufferLength и Irp->AssociatedIrp.SystemBuffer). Этот запрос не требует дополнительных параметров, поэтому входные и выходные буферы должны иметь значение NULL.

Этот запрос приводит к тому, что avc.sys отменять отношения устройств, что приводит к тому, что диспетчер PnP запрашивает обновленный список дочерних объектов устройств (виртуальных подъединений). Если нет новых или удаленных дочерних объектов устройства, действие не будет предприняно. Если есть новые или удаленные дочерние объекты устройства, их водители будут загружены или выгружены, а сброс 1394 шины будет активирован для каждого PDO при запуске или удалении каждого из них.

Основной код

IRP_MJ_DEVICE_CONTROL

Блок состояния

Irp->IoStatus.Status имеет значение STATUS_SUCCESS, если запрос выполнен успешно.

В противном случае состояние соответствующего условия ошибки в виде кода NTSTATUS.

Дополнительные сведения см. в значения NTSTATUS.

Замечания

Должен вызываться в IRQL = PASSIVE_LEVEL

Требования

Требование Ценность
заголовка avc.h

См. также

AVC_SUBUNIT_ADDR_SPEC

IOCTL_AVC_CLASS

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO

IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO