Condividi tramite


SCSI_PASS_THROUGH struttura (ntddscsi.h)

La struttura SCSI_PASS_THROUGH viene usata insieme a una richiesta di IOCTL_SCSI_PASS_THROUGH per indicare al driver della porta di inviare un comando SCSI incorporato al dispositivo di destinazione.

Nota I modelli di driver di porta SCSI e miniport SCSI possono essere modificati o non disponibili in futuro. È invece consigliabile usare i modelli di driver Storport e Miniport Storport.
 

Sintassi

typedef struct _SCSI_PASS_THROUGH {
  USHORT    Length;
  UCHAR     ScsiStatus;
  UCHAR     PathId;
  UCHAR     TargetId;
  UCHAR     Lun;
  UCHAR     CdbLength;
  UCHAR     SenseInfoLength;
  UCHAR     DataIn;
  ULONG     DataTransferLength;
  ULONG     TimeOutValue;
  ULONG_PTR DataBufferOffset;
  ULONG     SenseInfoOffset;
  UCHAR     Cdb[16];
} SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;

Members

Length

Contiene il valore di sizeof(SCSI_PASS_THROUGH).

ScsiStatus

Segnala lo stato SCSI restituito dall'HBA o dal dispositivo di destinazione.

PathId

Indica la porta o il bus SCSI per la richiesta.

TargetId

Indica il controller di destinazione o il dispositivo nel bus.

Lun

Indica il numero di unità logica del dispositivo.

CdbLength

Indica le dimensioni in byte del blocco descrittore del comando SCSI.

SenseInfoLength

Indica le dimensioni in byte del buffer di senso della richiesta.

DataIn

Questo campo deve avere uno dei tre valori:

#######

DataTransferLength

Indica le dimensioni in byte del buffer di dati. Molti dispositivi trasferisce blocchi di dati di lunghezza predefinita. Il valore in DataTransferLength deve essere un multiplo integrale di questa lunghezza predefinita minima specificata dal dispositivo. Se si verifica un'esecuzione, il driver miniport deve aggiornare questo membro al numero di byte effettivamente trasferiti.

TimeOutValue

Indica l'intervallo in secondi in cui la richiesta può essere eseguita prima del timeout del driver di porta.

DataBufferOffset

Contiene un offset dall'inizio di questa struttura al buffer dei dati. L'offset deve rispettare i requisiti di allineamento dei dati del dispositivo.

SenseInfoOffset

Offset dall'inizio di questa struttura al buffer di senso della richiesta.

Cdb[16]

Specifica il blocco descrittore del comando SCSI da inviare al dispositivo di destinazione.

Commenti

La struttura SCSI_PASS_THROUGH viene usata con IOCTL_SCSI_PASS_THROUGH, ovvero una richiesta di controllo del dispositivo con buffer. Per ignorare il buffering nella memoria di sistema, i chiamanti devono usare IOCTL_SCSI_PASS_THROUGH_DIRECT. Quando si gestisce una richiesta di IOCTL_SCSI_PASS_THROUGH_DIRECT, il sistema blocca il buffer nella memoria utente e il dispositivo accede direttamente a questa memoria.

I membri di SCSI_PASS_THROUGH corrispondono approssimativamente ai membri di una struttura SCSI_REQUEST_BLOCK . I valori del membro DataIn corrispondono ai flag SCSI_IOCTL_DATA_IN, SCSI_IOCTL_DATA_OUT e SCSI_IOCTL_DATA_UNSPECIFIED assegnati al membro SrbFlags di SCSI_REQUEST_BLOCK.

Requisiti

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

Vedi anche

IOCTL_SCSI_PASS_THROUGH

IOCTL_SCSI_PASS_THROUGH_DIRECT

SCSI_PASS_THROUGH_DIRECT

SCSI_REQUEST_BLOCK