Funzione ChangerReinitializeUnit (mcd.h)
ChangerReinitializeUnit gestisce gli aspetti specifici del dispositivo di un IRP di controllo del dispositivo con il codice IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT.
Sintassi
NTSTATUS ChangerReinitializeUnit(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
Parametri
[in] DeviceObject
Puntatore all'oggetto dispositivo che rappresenta il modificatore.
[in] Irp
Puntatore all'IRP.
Valore restituito
Se il modificatore supporta la ricalibrazione di un elemento di trasporto, ChangerReinitializeUnit restituisce il valore STATUS_XXX restituito dal driver della porta di sistema o uno dei valori seguenti:
STATUS_SUCCESS
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
Se il modificatore non supporta la ricalibrazione di un elemento di trasporto, ChangerReinitializeUnit restituisce STATUS_INVALID_DEVICE_REQUEST.
Commenti
Questa routine è obbligatoria.
ChangerReinitializeUnit causa la ricalibrazione dell'elemento di trasporto da parte del modificatore. A seconda del modificatore, questo può restituire il trasporto in una posizione "home". Il driver di classe changer chiama in genere ChangerReinitializeUnit dopo che il modificatore è stato acceso o un'applicazione chiamante ha avviato un'operazione di ripristino. Il flag CHANGER_DEVICE_REINITIALIZE_CAPABLE in Features0 di GET_CHANGER_PARAMETERS indica se il trasporto del modificatore supporta la ricalibrazione in tali circostanze.
Il driver di classe changer controlla la lunghezza del buffer di input nella posizione dello stack di I/O prima di chiamare ChangerReinitializeUnit. Irp-SystemBuffer> punta a una struttura CHANGER_ELEMENT che indica l'elemento da ricalibrare.
ChangerReinitializeUnit compila un SRB con una rete CDB per posizionare l'elemento di trasporto e lo invia al driver della porta di sistema.
ChangerReinitializeUnit imposta il campo Informazioni nel blocco di stato di I/O su sizeof(CHANGER_ELEMENT) prima di tornare al driver di classe del modificatore.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |