Condividi tramite


Funzione ChangerExchangeMedium (mcd.h)

ChangerExchangeMedium gestisce gli aspetti specifici del dispositivo di un IRP con il codice IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM.

Sintassi

NTSTATUS ChangerExchangeMedium(
  [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 lo scambio di supporti, ChangerExchangeMedium 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_SOURCE_ELEMENT_EMPTY

Se il modificatore non supporta lo scambio di supporti, ChangerExchangeMedium restituisce STATUS_INVALID_DEVICE_REQUEST.

Osservazioni

Questa routine è obbligatoria.

ChangerExchangeMedium sposta un elemento multimediale da un elemento di origine a una destinazione e da tale destinazione a un'altra destinazione. L'origine e la seconda destinazione sono spesso uguali, con conseguente semplice scambio di supporti.

Il flag CHANGER_EXCHANGE_MEDIA in Features0 della struttura di GET_CHANGER_PARAMETERS indica se il modificatore supporta questa funzionalità. Un modificatore che supporta lo scambio di supporti include in genere due meccanismi di selezione su un singolo elemento di trasporto o almeno due elementi di trasporto. Un modificatore che dispone di un singolo meccanismo di selezione può supportare lo scambio di supporti tramite l'emulazione del comando.

Il driver della classe changer controlla la lunghezza del buffer di input nella posizione dello stack I/O prima di chiamare la routine di ChangerExchangeMed ium di un driver miniclasse. Irp:>SystemBuffer punta a una struttura CHANGER_EXCHANGE_MEDIUM come parametro di input che indica l'elemento di trasporto e la destinazione da impostare.

ChangerExchangeMedium verifica innanzitutto che gli indirizzi degli elementi di trasporto, origine e destinazione siano validi, quindi converte gli indirizzi degli elementi in base zero in indirizzi di elemento specifici del dispositivo. Crea quindi un SRB con un CDB per scambiare il supporto e lo invia al driver della porta di sistema.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione mcd.h (include Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Vedere anche

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS