IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX IOCTL (ntddscsi.h)

La richiesta di codice di controllo IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX è la versione estesa della richiesta di IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT . Questa richiesta fornisce il supporto per i trasferimenti di dati bidirezionali e consente un blocco di dati di comando (CDB) > di 16 byte.

Questo codice di controllo di I/O consente a un'applicazione o a un driver 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. Di conseguenza, un'applicazione può inviare questa richiesta direttamente a un 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 è costituita da una richiesta pass-through SCSI (in una struttura di SCSI_PASS_THROUGH_DIRECT incorporata) e da determinate direttive.
  • La struttura pass-through SCSI deve soddisfare i requisiti per tali elementi, come descritto in SCSI_PASS_THROUGH_DIRECT.
  • 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 verrà rifiutata.
  • La richiesta deve specificare il LUN reale costituito dallo pseudo LUN in termini di indirizzo SCSI del primo o del relativo PathId MPIO, ma non da entrambi.

Codice principale

IRP_MJ_DEVICE_CONTROL

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 essere almeno sizeof(MPIO_PASS_THROUGH_PATH_DIRECT_EX) o, se inviato da un'applicazione a 32 bit in un sistema operativo a 64 bit, sizeof(MPIO_PASS_THROUGH_PATH_DIRECT32_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

La strutturaSCSI_PASS_THROUGH_DIRECT_EX incorporata SenseInfoLength e DataOutTransferLength viene aggiornata per indicare la quantità di dati trasferiti.

Blocco dello 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_DIRECT_EX incorporato è impostato in modo non corretto.

Requisiti

Requisito Valore
Intestazione ntddscsi.h (include Ntddscsi.h)

Vedi anche

MPIO_PASS_THROUGH_PATH_DIRECT_EX

SCSI_PASS_THROUGH_DIRECT_EX