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,因此请相应地设置 IRP 字段(IrpStack->Parameters.DeviceIoControl.InputBufferLength 和 Irp->AssociatedIrp.SystemBuffer)。 此请求不需要任何其他参数,因此输入和输出缓冲区应设置为 NULL

此请求会导致 avc.sys 使其设备关系失效,这会导致 PnP 管理器请求更新的子设备对象列表(虚拟子单元)。 如果没有新的或已删除的子设备对象,则不会执行任何作。 如果有新的或已删除的子设备对象,则会加载或卸载其驱动程序,并且每个 PDO 将触发 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