IOCTL_AVC_BUS_RESET IOCTL (avc.h)

IOCTL_AVC_BUS_RESET I/O 控件代码允许调用方完成之前的任何IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO,并IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO未使用 AVC_SUBUNIT_ADDR_TRIGGERBUSRESET 标志的控制请求。 它通过IRP_MJ_DEVICE_CONTROL调度可用于用户模式以及内核模式组件。

对于驱动程序到驱动程序的通信,它是METHOD_BUFFERED IOCTL,因此请相应地 (IrpStack-Parameters.DeviceIoControl.InputBufferLength> 和 Irp-AssociatedIrp.SystemBuffer>) 设置 IRP 字段。 此请求不需要任何其他参数,因此输入和输出缓冲区应设置为 NULL

此请求导致 avc.sys 使其设备关系失效,这会导致 PnP 管理器 (虚拟子单位) 请求更新的子设备对象列表。 如果没有新的或已删除的子设备对象,则不会执行任何操作。 如果有新的或已删除的子设备对象,则会加载或卸载其驱动程序,并在启动或删除每个 PDO 时为每个 PDO 触发 1394 总线重置。

主要代码

IRP_MJ_DEVICE_CONTROL

状态块

如果请求成功,Irp-IoStatus.Status> 设置为 STATUS_SUCCESS。

否则,状态为相应的错误条件作为 NTSTATUS 代码。

有关详细信息,请参阅 NTSTATUS 值

注解

必须在 IRQL = PASSIVE_LEVEL

要求

要求
Header avc.h

另请参阅

AVC_SUBUNIT_ADDR_SPEC

IOCTL_AVC_CLASS

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO

IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO