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 的緩衝區必須至少與 sizeof(AVC_SUBUNIT_ADDR_SPEC)一樣大,其中包含單一位元節子單位位址,但限制為 32 個字節的子單位位址。 |
STATUS_INVALID_PARAMETER | 未正確指定子單位位址。 |
STATUS_ACCESS_DENIED | 目前的用戶沒有足夠的登錄訪問許可權,無法讓更新持續進行。 |
言論
必須在 IRQL = PASSIVE_LEVEL呼叫。
要求
要求 | 價值 |
---|---|
標頭 | avc.h (包括 Avc.h) |