IOCTL_MPIO_PASS_THROUGH_PATH_EX IOCTL (ntddscsi.h)
La richiesta di codice di controllo IOCTL_MPIO_PASS_THROUGH_PATH_EX è la versione estesa della richiesta di IOCTL_MPIO_PASS_THROUGH_PATH. Questa richiesta fornisce supporto per i trasferimenti di dati bidirezionali e consente un blocco di dati dei comandi (CDB) > 16 byte.
Questo codice di controllo di I/O consente a un driver dell'applicazione o del kernel di inviare un comando SCSI a un LUN reale designato. Le restrizioni seguenti si applicano all'uso di questo codice di controllo di I/O:
- Se esiste un driver di classe per lo pseudo LUN, l'applicazione deve inviare la richiesta a tale driver di classe. Pertanto, un'applicazione può inviare questa richiesta direttamente a MPIO solo se non è presente alcun driver di classe per il dispositivo.
- Tutte le richieste pass-through devono essere sincrone.
- Le applicazioni non richiedono privilegi amministrativi per inviare una richiesta pass-through a un dispositivo, ma devono avere accesso in lettura/scrittura al dispositivo.
- La richiesta comprende una richiesta pass-through SCSI (in una struttura di SCSI_PASS_THROUGH_EX incorporata) e determinate direttive.
- La struttura pass-through SCSI deve soddisfare i requisiti per tali elementi, come descritto in SCSI_PASS_THROUGH_EX.
- Se la richiesta deve essere inviata tramite il DSM che ha richiesto il LUN reale, deve essere indicato. In tal caso, il DSM stesso deve indicare lo stesso LUN reale. In caso contrario, la richiesta avrà esito negativo.
- La richiesta deve specificare il LUN reale costituito dallo pseudo LUN in termini di indirizzo SCSI del precedente o del relativo MPIO PathId, ma non entrambi.
Codice principale
Buffer di input
Parameters.DeviceIoControl.InputBufferLength indica le dimensioni, in byte, del buffer in Irp->AssociatedIrp.SystemBuffer.
Lunghezza del buffer di input
Il buffer deve avere almeno dimensione di(MPIO_PASS_THROUGH_PATH_EX) o, se inviato da un'applicazione a 32 bit in un sistema operativo a 64 bit, dimensioni di(MPIO_PASS_THROUGH_PATH32_EX).
Buffer di output
Il driver di porta restituisce tutti i dati di tipo request-sense e tutti i dati trasferiti dal dispositivo al buffer in Irp->AssociatedIrp.SystemBuffer.
Lunghezza del buffer di output
I membri SenseInfoLength e DataOutTransferLength nella struttura incorporata SCSI_PASS_THROUGH_EX vengono aggiornati per indicare la quantità di dati trasferiti.
Blocco di stato
Il campo Informazioni è impostato sul numero di byte restituiti nel buffer di output in Irp->AssociatedIrp.SystemBuffer. Il campo Stato è impostato su STATUS_SUCCESS oppure su STATUS_BUFFER_TOO_SMALL o STATUS_INVALID_PARAMETER se il valore lunghezza di input nel SCSI_PASS_THROUGH_EX incorporato non è impostato correttamente.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ntddscsi.h (include Ntddscsi.h) |