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可用來新增或移除單一類型的子單位標識碼。 具有子單位位址不同標識碼部分的後續呼叫會導致列舉標識碼數目變更。 請注意 ,avc.sys 只會新增或移除最高標識符。 這是 AV/C 規格的限制,而不是驅動程式實作。
這個 IOCTL 會使用 AVC_SUBUNIT_ADDR_SPEC 結構。
主要程序代碼
狀態區塊
如果成功,AV/C 通訊協定驅動程式會將 Irp-IoStatus.Status>設定為 STATUS_SUCCESS。
可能的其他傳回值包括:
傳回值 | 描述 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 未傳遞任何緩衝區,或沒有足夠的資源可用來執行登錄查詢。 |
STATUS_INVALID_BUFFER_SIZE | 在 Irp->AssociatedIrp.SystemBuffer 中傳遞的緩衝區必須至少大於大小of (AVC_SUBUNIT_ADDR_SPEC) ,其中包含單一位元節子單位位址,但限制為 32 個字節子單位位址。 |
STATUS_INVALID_PARAMETER | 子單位位址未正確指定。 |
STATUS_ACCESS_DENIED | 目前的用戶沒有足夠的登錄存取許可權,無法讓更新持續進行。 |
備註
必須在 IRQL = PASSIVE_LEVEL呼叫。
規格需求
需求 | 值 |
---|---|
標頭 | avc.h (包含 Avc.h) |