Funzione ChangerMoveMedium (mcd.h)
ChangerMoveMedium gestisce gli aspetti specifici del dispositivo di un'IRP 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 changer.
[in] Irp
Puntatore all'IRP.
Valore restituito
ChangerMoveMedium restituisce lo stato restituito dal driver di 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
Commenti
Questa routine è necessaria.
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 scorrere il mezzo.
ChangerMoveMedium verifica prima che gli indirizzi degli elementi di trasporto, origine e destinazione siano validi e quindi converta gli indirizzi degli elementi in base zero a indirizzi specifici del dispositivo. Compila quindi una 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 della classe changer.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |