Funzione ChangerSetPosition (mcd.h)

ChangerSetPosition gestisce gli aspetti specifici del dispositivo di un IRP di controllo del dispositivo con il codice IOCTL IOCTL_CHANGER_SET_POSITION.

Sintassi

NTSTATUS ChangerSetPosition(
  [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 l'impostazione della posizione dell'elemento di trasporto, ChangerSetPosition restituisce lo stato restituito dal driver della porta di sistema o uno dei valori seguenti:

STATUS_SUCCESS

STATUS_INFO_LENGTH_MISMATCH

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

Se il modificatore non supporta l'impostazione della posizione dell'elemento di trasporto, ChangerSetPosition restituisce STATUS_INVALID_DEVICE_REQUEST.

Commenti

Questa routine è obbligatoria.

ChangerSetPosition imposta il meccanismo di trasporto robotico del modificatore sulla destinazione specificata, in genere per ottimizzare lo spostamento o lo scambio di supporti posizionando prima il trasporto.

Il flag CHANGER_POSITION_TO_ELEMENT in Features0 di GET_CHANGER_PARAMETERS indica se il modificatore supporta questa funzionalità.

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

ChangerSetPosition verifica innanzitutto che gli indirizzi degli elementi di trasporto e di destinazione siano validi e converta gli indirizzi degli elementi in base zero in indirizzi specifici del dispositivo. Compila quindi un SRB con una rete CDB per posizionare l'elemento e lo invia al driver della porta di sistema.

ChangerSetPosition imposta il campo Informazioni nel blocco di stato di I/O su sizeof(CHANGER_SET_POSITION) 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_SET_POSITION

CHANGER_ELEMENT

CHANGER_SET_POSITION