SCSI_PASS_THROUGH_DIRECT_EX estrutura (ntddscsi.h)
A estrutura SCSI_PASS_THROUGH_DIRECT_EX é usada em conjunto com uma solicitação IOCTL_SCSI_PASS_THROUGH_DIRECT_EX para instruir o driver de porta a enviar um comando SCSI inserido para o dispositivo de destino. SCSI_PASS_THROUGH_DIRECT_EX pode conter transferências de dados bidirecionais e um bloco de dados de comando de comprimento variável.
Nota
O driver de porta SCSI e os modelos de driver de miniporto SCSI podem estar alterados ou indisponíveis no futuro. Em vez disso, recomendamos usar o de driver do Storport e miniporto storport modelos de driver.
Sintaxe
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;
Membros
Version
A versão dessa estrutura. Definido como 0.
Length
O tamanho dessa estrutura. Definido como tamanho de(SCSI_PASS_THROUGH_DIRECT_EX).
CdbLength
Indica o tamanho em bytes do bloco do descritor de comando SCSI em cdb.
StorAddressLength
O comprimento da estrutura de endereços do dispositivo de armazenamento no deslocamento de StorAddressOffset após essa estrutura. Isso é definido como tamanhos de(STOR_ADDR_BTL8).
ScsiStatus
Relata o status do SCSI retornado pelo HBA ou pelo dispositivo de destino.
SenseInfoLength
Indica o tamanho em bytes do buffer de sentido de solicitação. Esse membro é opcional e pode ser definido como 0.
DataDirection
Esse campo deve ter um destes valores:
Tipo de Transferência de Dados | Significado |
---|---|
SCSI_IOCTL_DATA_IN | Leia os dados do dispositivo. |
SCSI_IOCTL_DATA_OUT | Gravar dados no dispositivo. |
SCSI_IOCTL_DATA_UNSPECIFIED | Nenhum dado é transferido. |
SCSI_IOCTL_DATA_BIDIRECTIONAL | Os dados são válidos para entrada e saída. |
Reserved
Reservado. Definido como 0.
TimeOutValue
Indica o intervalo em segundos que a solicitação pode ser executada antes que o driver de porta considere o tempo limite.
StorAddressOffset
O local da estrutura de endereço STOR_ADDR_BTL8 do dispositivo de destino, em bytes, desde o início dessa estrutura.
SenseInfoOffset
Deslocamento do início dessa estrutura para o buffer de sentido de solicitação. Defina como 0 se nenhum buffer de sentido de solicitação estiver presente.
DataOutTransferLength
Indica o tamanho em bytes do buffer de dados de saída. Muitos dispositivos transferem partes de dados de comprimento predefinido. O valor em DataOutTransferLength deve ser um múltiplo integral desse comprimento mínimo predefinido especificado pelo dispositivo. Se ocorrer uma subexecução, o driver de miniporto deverá atualizar esse membro para o número de bytes realmente transferidos. Se nenhum buffer de dados de saída estiver presente, esse membro será definido como 0.
DataInTransferLength
Indica o tamanho em bytes do buffer de dados de entrada. Muitos dispositivos transferem partes de dados de comprimento predefinido. O valor em DataInTransferLength deve ser um múltiplo integral desse comprimento mínimo predefinido especificado pelo dispositivo. Se ocorrer uma subexecução, o driver de miniporto deverá atualizar esse membro para o número de bytes realmente transferidos. Se nenhum buffer de dados de entrada estiver presente, esse membro será definido como 0.
DataOutBuffer
Um ponteiro para um buffer de dados de saída.
DataInBuffer
Um ponteiro para um buffer de dados de entrada.
Cdb[ANYSIZE_ARRAY]
Especifica o bloco do descritor de comando SCSI a ser enviado para o dispositivo de destino.
Observações
A estrutura SCSI_PASS_THROUGH_DIRECT_EX é usada com IOCTL_SCSI_PASS_THROUGH_DIRECT_EX. Com essa solicitação, o sistema bloqueia o buffer na memória do usuário e o dispositivo acessa essa memória diretamente. Para obter um equivalente de buffer duplo dessa solicitação de controle de dispositivo, consulte IOCTL_SCSI_PASS_THROUGH_EX e SCSI_PASS_THROUGH_EX.
Nota
Os drivers em execução em uma versão de 64 bits do Windows devem usar a estrutura SCSI_PASS_THROUGH_DIRECT32_EX como o tipo de dados de solicitação ao lidar com uma solicitação IOCTL_SCSI_PASS_THROUGH_DIRECT_EX de um processo de 32 bits.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 8. |
cabeçalho | ntddscsi.h (include Ntddscsi.h) |
Consulte também
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX