IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)
Il codice di controllo I/O IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO controlla l'enumerazione delle sottounite virtuali. È disponibile per la modalità utente e per i componenti in modalità kernel tramite l'invio IRP_MJ_DEVICE_CONTROL. Per la comunicazione da driver a driver, si tratta di un METHOD_BUFFERED IOCTL, quindi impostare i campi IRP di conseguenza (IrpStack->Parameters.DeviceIoControl.InputBufferLength e Irp->AssociatedIrp.SystemBuffer).
IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO viene usato per aggiungere o rimuovere ID subunit di un singolo tipo. Le chiamate successive con una parte ID diversa dell'indirizzo subunit causano la modifica del numero di ID enumerati. Si noti che avc.sys aggiunge o rimuove solo gli ID più alti. Si tratta di una limitazione della specifica AV/C, non dell'implementazione del driver.
Questo IOCTL usa la struttura AVC_SUBUNIT_ADDR_SPEC.
Codice principale
Blocco di stato
In caso di esito positivo, il driver del protocollo AV/C imposta Irp->IoStatus.Status su STATUS_SUCCESS.
I possibili altri valori restituiti includono:
Valore restituito | Descrizione |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Non è stato passato alcun buffer o risorse insufficienti per eseguire una query del Registro di sistema. |
STATUS_INVALID_BUFFER_SIZE | Il buffer passato in Irp->AssociatedIrp.SystemBuffer deve essere almeno grande come sizeof(AVC_SUBUNIT_ADDR_SPEC) che include un indirizzo di subunit a byte singolo, ma limitato a un indirizzo di subunit da 32 byte. |
STATUS_INVALID_PARAMETER | L'indirizzo di subunit è stato specificato in modo non corretto. |
STATUS_ACCESS_DENIED | L'utente corrente dispone di privilegi di accesso al Registro di sistema insufficienti per rendere persistente l'aggiornamento. |
Osservazioni
Deve essere chiamato in IRQL = PASSIVE_LEVEL.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | avc.h (include Avc.h) |