IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)
Il codice di controllo IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO I/O 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, è 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 dello stato
Se ha esito positivo, il driver del protocollo AV/C imposta Irp-IoStatus.Status>su STATUS_SUCCESS.
Gli altri valori restituiti possibili includono:
Valore restituito | Descrizione |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Nessun buffer passato o risorse insufficienti disponibili 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 subunit a byte singolo, ma limitato a un indirizzo subunit di 32 byte. |
STATUS_INVALID_PARAMETER | L'indirizzo subunit è stato specificato in modo errato. |
STATUS_ACCESS_DENIED | L'utente corrente ha privilegi di accesso al Registro di sistema insufficienti per rendere persistente l'aggiornamento. |
Commenti
Deve essere chiamato in IRQL = PASSIVE_LEVEL.
Requisiti
Requisito | Valore |
---|---|
Intestazione | avc.h (include Avc.h) |