IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)
IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO I/O 控件代码控制虚拟子单元的枚举。 用户模式以及内核模式组件可通过IRP_MJ_DEVICE_CONTROL调度使用。 对于驱动程序到驱动程序通信,它是METHOD_BUFFERED IOCTL,因此请相应地设置 IRP 字段(IrpStack->Parameters.DeviceIoControl.InputBufferLength 和 Irp->AssociatedIrp.SystemBuffer)。
IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO用于添加或删除单个类型的子单元 ID。 具有子单位地址不同 ID 部分的连续调用会导致枚举 ID 数发生更改。 请注意,avc.sys 仅添加或删除最高 ID。 这是 AV/C 规范的限制,而不是驱动程序实现。
此 IOCTL 使用AVC_SUBUNIT_ADDR_SPEC结构。
主要代码
状态块
如果成功,AV/C 协议驱动程序会将 Irp->IoStatus.Status 设置为STATUS_SUCCESS。
可能的其他返回值包括:
返回值 | 描述 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 未传递缓冲区,或者没有足够的资源来执行注册表查询。 |
STATUS_INVALID_BUFFER_SIZE | 传入 Irp->AssociatedIrp.SystemBuffer 的缓冲区必须至少与 sizeof(AVC_SUBUNIT_ADDR_SPEC)相同,其中包括单字节子单元地址,但限制为 32 字节子单位地址。 |
STATUS_INVALID_PARAMETER | 子单位地址未正确指定。 |
STATUS_ACCESS_DENIED | 当前用户没有足够的注册表访问权限才能使更新持久化。 |
言论
必须在 IRQL = PASSIVE_LEVEL调用。
要求
要求 | 价值 |
---|---|
标头 | avc.h (包括 Avc.h) |