Condividi tramite


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

Vedi anche

, IOCTL_CHANGER_REINITIALIZE_TRANSPORT

CHANGER_ELEMENT

GET_CHANGER_PARAMETERS