Funzione ChangerMoveMedium (mcd.h)
ChangerMoveMedium gestisce gli aspetti specifici del dispositivo di un IRP di controllo del dispositivo con il codice IOCTL IOCTL_CHANGER_MOVE_MEDIUM.
Sintassi
NTSTATUS ChangerMoveMedium(
[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
ChangerMoveMedium restituisce lo stato restituito dal driver della porta di sistema o uno dei valori seguenti:
STATUS_SUCCESS
STATUS_DESTINATION_ELEMENT_FULL
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
STATUS_SOURCE_ELEMENT_EMPTY
Osservazioni
Questa routine è obbligatoria.
ChangerMoveMedium sposta un elemento multimediale da un elemento a un altro.
Il driver della classe changer controlla la lunghezza del buffer di input nella posizione dello stack I/O prima di chiamare ChangerMoveMedium. Irp:>SystemBuffer punta a una struttura CHANGER_MOVE_MEDIUM che indica l'elemento di trasporto, l'origine, la destinazione e se capovolgere il supporto.
ChangerMoveMedium verifica innanzitutto che gli indirizzi degli elementi di trasporto, origine e destinazione siano validi e quindi convertano gli indirizzi degli elementi in base zero in indirizzi specifici del dispositivo. Crea quindi un SRB con un CDB per spostare il componente multimediale e lo invia al driver della porta di sistema.
ChangerMoveMedium imposta il campo informazioni nel blocco di stato I/O su sizeof(CHANGER_MOVE_MEDIUM) prima di tornare al driver di classe del modificatore.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |