SCSI_PASS_THROUGH_DIRECT_EX struttura (ntddscsi.h)
La struttura SCSI_PASS_THROUGH_DIRECT_EX viene usata insieme a una richiesta di IOCTL_SCSI_PASS_THROUGH_DIRECT_EX per indicare al driver della porta di inviare un comando SCSI incorporato al dispositivo di destinazione. SCSI_PASS_THROUGH_DIRECT_EX può contenere trasferimenti di dati bidirezionali e un blocco dati a lunghezza variabile.
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_DIRECT_EX {
ULONG Version;
ULONG Length;
ULONG CdbLength;
ULONG StorAddressLength;
UCHAR ScsiStatus;
UCHAR SenseInfoLength;
UCHAR DataDirection;
UCHAR Reserved;
ULONG TimeOutValue;
ULONG StorAddressOffset;
ULONG SenseInfoOffset;
ULONG DataOutTransferLength;
ULONG DataInTransferLength;
VOID *DataOutBuffer;
VOID *DataInBuffer;
UCHAR Cdb[ANYSIZE_ARRAY];
} SCSI_PASS_THROUGH_DIRECT_EX, *PSCSI_PASS_THROUGH_DIRECT_EX;
Members
Version
Versione di questa struttura. Impostare su 0.
Length
Dimensione della struttura. Impostare su sizeof(SCSI_PASS_THROUGH_DIRECT_EX).
CdbLength
Indica le dimensioni in byte del blocco descrittore del comando SCSI in Cdb.
StorAddressLength
Lunghezza della struttura dell'indirizzo del dispositivo di archiviazione in corrispondenza dell'offset di StorAddressOffset dopo questa struttura. Questa opzione è impostata su sizeof(STOR_ADDR_BTL8).
ScsiStatus
Segnala lo stato SCSI restituito dall'HBA o dal dispositivo di destinazione.
SenseInfoLength
Indica le dimensioni in byte del buffer di senso della richiesta. Questo membro è facoltativo e può essere impostato su 0.
DataDirection
Questo campo deve avere uno di questi valori:
Tipo di trasferimento dati | Significato |
---|---|
SCSI_IOCTL_DATA_IN | Leggere i dati dal dispositivo. |
SCSI_IOCTL_DATA_OUT | Scrivere dati nel dispositivo. |
SCSI_IOCTL_DATA_UNSPECIFIED | Non vengono trasferiti dati. |
SCSI_IOCTL_DATA_BIDIRECTIONAL | I dati sono validi sia per l'input che per l'output. |
Reserved
Riservato. Impostare su 0.
TimeOutValue
Indica l'intervallo in secondi in cui la richiesta può essere eseguita prima del timeout del driver di porta.
StorAddressOffset
Posizione della struttura degli indirizzi STOR_ADDR_BTL8 del dispositivo di destinazione, in byte, dall'inizio di questa struttura.
SenseInfoOffset
Offset dall'inizio di questa struttura al buffer di senso della richiesta. Impostare su 0 se non è presente alcun buffer di senso richiesta.
DataOutTransferLength
Indica le dimensioni in byte del buffer dei dati di output. Molti dispositivi trasferisce blocchi di dati di lunghezza predefinita. Il valore in DataOutTransferLength 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. Se non è presente alcun buffer di dati di output, questo membro è impostato su 0.
DataInTransferLength
Indica le dimensioni in byte del buffer di dati di input. Molti dispositivi trasferisce blocchi di dati di lunghezza predefinita. Il valore in DataInTransferLength 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. Se non è presente alcun buffer di dati di input, questo membro è impostato su 0.
DataOutBuffer
Puntatore a un buffer di dati di output.
DataInBuffer
Puntatore a un buffer di dati di input.
Cdb[ANYSIZE_ARRAY]
Specifica il blocco descrittore del comando SCSI da inviare al dispositivo di destinazione.
Commenti
La struttura SCSI_PASS_THROUGH_DIRECT_EX viene usata con IOCTL_SCSI_PASS_THROUGH_DIRECT_EX. Con questa richiesta, il sistema blocca il buffer nella memoria utente e il dispositivo accede direttamente a questa memoria. Per un equivalente con buffer doppio di questa richiesta di controllo del dispositivo, vedere IOCTL_SCSI_PASS_THROUGH_EX e SCSI_PASS_THROUGH_EX.
Nota
I driver in esecuzione in una versione a 64 bit di Windows devono usare la struttura SCSI_PASS_THROUGH_DIRECT32_EX come tipo di dati della richiesta durante la gestione di una richiesta di IOCTL_SCSI_PASS_THROUGH_DIRECT_EX da un processo a 32 bit.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 8. |
Intestazione | ntddscsi.h (include Ntddscsi.h) |
Vedi anche
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per