Compartilhar via


Cabeçalho ntddscsi.h

Esse cabeçalho é usado pelo armazenamento. Para obter mais informações, consulte:

  • de Armazenamento

ntddscsi.h contém as seguintes interfaces de programação:

IOCTLs

 
IOCTL_ATA_PASS_THROUGH

Permite que um aplicativo envie quase qualquer comando do ATA para um dispositivo de destino, com as seguintes restrições:_If um driver de classe para o tipo de destino do dispositivo, o aplicativo deve enviar a solicitação para o driver de classe.
IOCTL_ATA_PASS_THROUGH_DIRECT

Saiba como IOCTL_ATA_PASS_THROUGH_DIRECT permite que um aplicativo envie quase qualquer comando do ATA para um dispositivo de destino.
IOCTL_MINIPORT_PROCESS_SERVICE_IRP

Esse IOCTL é usado por um aplicativo de modo de usuário ou driver no modo kernel que requer notificação quando algo de interesse acontece no miniporto virtual.
IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO

IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO é a assinatura definida pelo sistema usada em conjunto com o código de controle IOCTL_SCSI_MINIPORT para solicitar que um miniporto retorne dados de resistência para um dispositivo de destino.
IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL

IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL é a assinatura usada em conjunto com o código de controle IOCTL_SCSI_MINIPORT para enviar dados específicos do protocolo para um miniporto.
IOCTL_MPIO_PASS_THROUGH_PATH

Esse código de controle de E/S permite que um driver de aplicativo ou kernel envie um comando SCSI para um LUN real designado.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT

Saiba como esse código de controle de E/S permite que um driver de aplicativo ou kernel envie um comando SCSI para um LUN real designado.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX

A solicitação de código de controle IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX é a versão estendida da solicitação de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT. Essa solicitação fornece suporte para transferências de dados bidirecionais e permite que um CDB (bloco de dados de comando) > 16 bytes.
IOCTL_MPIO_PASS_THROUGH_PATH_EX

A solicitação de código de controle IOCTL_MPIO_PASS_THROUGH_PATH_EX é a versão estendida da solicitação IOCTL_MPIO_PASS_THROUGH_PATH. Essa solicitação fornece suporte para transferências de dados bidirecionais e permite que um CDB (bloco de dados de comando) > 16 bytes.
IOCTL_SCSI_GET_ADDRESS

Retorna as informações de endereço, como a ID de destino (TID) e o LUN (número de unidade lógica) de um destino SCSI específico.
IOCTL_SCSI_GET_CAPABILITIES

Retorna os recursos e as limitações do HBA SCSI subjacente.
IOCTL_SCSI_GET_INQUIRY_DATA

Retorna os dados de consulta SCSI para todos os dispositivos em um determinado HBA (adaptador de barramento de host) SCSI.
IOCTL_SCSI_MINIPORT

Envia uma função de controle especial para um driver de miniporto específico do HBA.
IOCTL_SCSI_MINIPORT_DIAGNOSTIC

O código de controle IOCTL_SCSI_MINIPORT_DIAGNOSTIC é usado para executar uma solicitação de diagnóstico para o Miniporto.
IOCTL_SCSI_MINIPORT_HYBRID

O código de controle IOCTL_SCSI_MINIPORT_HYBRID envia uma solicitação de controle de disco híbrido para um driver de miniporto específico do HBA.
IOCTL_SCSI_MINIPORT_NVCACHE

As operações de Gerenciamento de Cache NV definidas aqui podem ser invocadas pelo código do aplicativo no modo de usuário em execução com privilégios de administrador, usando DeviceIoControl e o código de controle IOCTL_SCSI_MINIPORT.
IOCTL_SCSI_PASS_THROUGH

Permite que um aplicativo envie quase qualquer comando SCSI para um dispositivo de destino, com as seguintes restrições: comandos multitarget, como COPY, não são permitidos. Não há suporte para operações de transferência de dados bidirecionais. Se existir um driver de classe para o tipo de destino do dispositivo, a solicitação deverá ser enviada para esse driver de classe. Portanto, um aplicativo poderá enviar essa solicitação diretamente ao driver de porta do sistema para uma LU (unidade lógica de destino) somente se não houver nenhum driver de classe para o tipo de dispositivo conectado a esse LU. O driver de porta do sistema não verifica se um dispositivo foi reivindicado por um driver de classe antes de processar uma solicitação de passagem. Portanto, se um aplicativo ignorar um driver de classe que reivindicou um dispositivo e enviar uma solicitação de passagem para esse dispositivo diretamente para o driver de porta, um conflito de controle do dispositivo pode ocorrer entre o driver de classe e o aplicativo. Se uma solicitação de passagem for enviada a um objeto de dispositivo do adaptador e se ela se originar do modo de usuário e atingir um LU que é reivindicado por um driver de classe, o Storport falhará na solicitação com STATUS_INVALID_DEVICE_REQUEST. Se a solicitação for enviada a um objeto de dispositivo LU, originada no modo kernel ou direcionada a uma LU não direcionada, ela será passada para o driver de miniporto. Essa solicitação não poderá ser usada se o CDB puder exigir que o driver de miniporto subjacente acesse diretamente a memória. Se o CDB do chamador puder exigir acesso direto à memória, use IOCTL_SCSI_PASS_THROUGH_DIRECT em vez disso. Os aplicativos não devem tentar enviar uma solicitação de passagem de forma assíncrona. Todas as solicitações de passagem devem ser síncronas. Os aplicativos não exigem privilégios administrativos para enviar uma solicitação de passagem para um dispositivo, mas devem ter acesso de leitura/gravação ao dispositivo. O aplicativo de chamada cria o bloco de descritor de comando SCSI, que pode incluir uma solicitação de dados de sentido de solicitação se ocorrer uma CONDIÇÃO CHECK. IOCTL_SCSI_PASS_THROUGH é uma solicitação de controle de dispositivo em buffer. Para ignorar o buffer na memória do sistema, os chamadores devem usar IOCTL_SCSI_PASS_THROUGH_DIRECT. Ao lidar com uma solicitação IOCTL_SCSI_PASS_THROUGH_DIRECT, o sistema bloqueia o buffer na memória do usuário e o dispositivo acessa essa memória diretamente. Essa solicitação normalmente é usada para transferir pequenas quantidades de dados (<16 mil). Os aplicativos podem enviar essa solicitação por meio de uma solicitação IRP_MJ_DEVICE_CONTROL. Os drivers de classe de armazenamento definem o número IRP menor como IRP_MN_SCSI_CLASS para indicar que a solicitação foi processada por um driver de classe de armazenamento.
IOCTL_SCSI_PASS_THROUGH_DIRECT

Permite que um aplicativo envie quase qualquer comando SCSI para um dispositivo de destino, com as seguintes restrições: comandos multitarget, como COPY, não são permitidos. Não há suporte para operações de transferência de dados bidirecionais. Se existir um driver de classe para o tipo de destino do dispositivo, a solicitação deverá ser enviada para esse driver de classe. Portanto, um aplicativo pode enviar essa solicitação diretamente para o driver de porta do sistema para uma unidade lógica de destino somente se não houver nenhum driver de classe para o tipo de dispositivo conectado a esse LU. Essa solicitação deve ser feita se o CDB de entrada puder exigir que o driver de miniporto subjacente acesse diretamente a memória. O aplicativo de chamada cria o bloco de descritor de comando SCSI, que pode incluir uma solicitação de dados de sentido de solicitação se ocorrer uma CONDIÇÃO CHECK. Se o CDB solicitar uma operação de transferência de dados, o chamador deverá configurar um buffer alinhado do dispositivo do adaptador do qual ou para o qual o driver de miniporto pode transferir dados diretamente. Essa solicitação normalmente é usada para transferir quantidades maiores de dados (>16 mil). Os aplicativos podem enviar essa solicitação por meio de uma solicitação IRP_MJ_DEVICE_CONTROL. Os drivers de classe de armazenamento definem o número IRP menor como IRP_MN_SCSI_CLASS para indicar que a solicitação foi processada por um driver de classe de armazenamento.
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX

A solicitação de código de controle IOCTL_SCSI_PASS_THROUGH_DIRECT_EX é a versão estendida da solicitação de IOCTL_SCSI_PASS_THROUGH_DIRECT. Essa solicitação fornece suporte para transferências de dados bidirecionais e permite que um CDB (bloco de dados de comando) > 16 bytes.
IOCTL_SCSI_PASS_THROUGH_EX

A solicitação de código de controle IOCTL_SCSI_PASS_THROUGH_EX é a versão estendida da solicitação de IOCTL_SCSI_PASS_THROUGH. Essa solicitação fornece suporte para transferências de dados bidirecionais e permite que um CDB (bloco de dados de comando) > 16 bytes.
IOCTL_SCSI_RESCAN_BUS

Recapita os LUNs nos ônibus(es).

Estruturas

 
ATA_PASS_THROUGH_DIRECT

A estrutura ATA_PASS_THROUGH_DIRECT é usada em conjunto com uma solicitação IOCTL_ATA_PASS_THROUGH_DIRECT para instruir o driver de porta a enviar um comando do ATA inserido para o dispositivo de destino.
ATA_PASS_THROUGH_EX

A estrutura ATA_PASS_THROUGH_EX é usada em conjunto com uma solicitação IOCTL_ATA_PASS_THROUGH para instruir o driver de porta a enviar um comando do ATA inserido para o dispositivo de destino.
HYBRID_INFORMATION

A estrutura HYBRID_INFORMATION contém informações de funcionalidade de disco híbrido.
IO_SCSI_CAPABILITIES

A estrutura IO_SCSI_CAPABILITIES é usada em conjunto com a solicitação IOCTL_SCSI_GET_CAPABILITIES para recuperar os recursos e as limitações do adaptador de host SCSI subjacente. Observe que 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 os modelos de driver storport e driver de miniporto Storport.
MPIO_PASS_THROUGH_PATH

A estrutura MPIO_PASS_THROUGH_PATH é usada junto com uma solicitação IOCTL_MPIO_PASS_THROUGH_PATH para instruir o driver de porta a enviar um comando SCSI inserido para o dispositivo de destino.
MPIO_PASS_THROUGH_PATH_DIRECT

A estrutura MPIO_PASS_THROUGH_PATH_DIRECT é usada junto com uma solicitação IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT para instruir o driver de porta a enviar um comando SCSI inserido para o dispositivo de destino.
MPIO_PASS_THROUGH_PATH_DIRECT_EX

A estrutura MPIO_PASS_THROUGH_PATH_DIRECT_EX é usada junto com uma solicitação IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX para instruir o driver de porta a enviar um comando SCSI inserido para o dispositivo de destino.
MPIO_PASS_THROUGH_PATH_EX

A estrutura MPIO_PASS_THROUGH_PATH_EX é usada junto com uma solicitação IOCTL_MPIO_PASS_THROUGH_PATH_EX para instruir o driver de porta a enviar um comando SCSI inserido para o dispositivo de destino.
NTSCSI_UNICODE_STRING

Os drivers de porta de armazenamento podem usar a estrutura NTSCSI_UNICODE_STRING para definir cadeias de caracteres Unicode.
NV_FEATURE_PARAMETER

A estrutura de NV_FEATURE_PARAMETER é usada em conjunto com a solicitação IOCTL_SCSI_MINIPORT_NVCACHE para obter informações de suporte do recurso NV Cache Manager do dispositivo.
NVCACHE_REQUEST_BLOCK

A estrutura de NVCACHE_REQUEST_BLOCK é usada em conjunto com a solicitação IOCTL_SCSI_MINIPORT para gerenciar dispositivos H-HDD (unidade de disco rígido híbrido) (por exemplo, tecnologia Do Microsoft ReadyDrive).
SCSI_ADAPTER_BUS_INFO

A estrutura de SCSI_ADAPTER_BUS_INFO é usada em conjunto com a solicitação IOCTL_SCSI_GET_INQUIRY_DATA para recuperar os dados de consulta SCSI para todos os dispositivos em um determinado barramento SCSI.
SCSI_ADDRESS

A estrutura SCSI_ADDRESS é usada em conjunto com a solicitação IOCTL_SCSI_GET_ADDRESS para recuperar as informações de endereço, como a ID de destino (TID) e o LUN (número de unidade lógica) de um destino SCSI específico.
SCSI_BUS_DATA

A estrutura de SCSI_BUS_DATA é usada em conjunto com a solicitação IOCTL_SCSI_GET_INQUIRY_DATA e a estrutura SCSI_ADAPTER_BUS_INFO para recuperar os dados de consulta SCSI para todos os dispositivos em um determinado barramento SCSI.
SCSI_INQUIRY_DATA

A estrutura de SCSI_INQUIRY_DATA é usada em conjunto com a solicitação IOCTL_SCSI_GET_INQUIRY_DATA para recuperar os dados de consulta SCSI para todos os dispositivos em um determinado barramento SCSI.
SCSI_PASS_THROUGH

A estrutura SCSI_PASS_THROUGH é usada em conjunto com uma solicitação IOCTL_SCSI_PASS_THROUGH para instruir o driver de porta a enviar um comando SCSI inserido para o dispositivo de destino.
SCSI_PASS_THROUGH_DIRECT

A estrutura SCSI_PASS_THROUGH_DIRECT é usada em conjunto com uma solicitação IOCTL_SCSI_PASS_THROUGH_DIRECT para instruir o driver de porta a enviar um comando SCSI inserido para o dispositivo de destino.
SCSI_PASS_THROUGH_DIRECT_EX

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_EX

A estrutura de SCSI_PASS_THROUGH_EX é usada em conjunto com uma solicitação IOCTL_SCSI_PASS_THROUGH_EX para instruir o driver de porta a enviar um comando SCSI inserido para o dispositivo de destino.
SRB_IO_CONTROL

estrutura SRB_IO_CONTROL
STORAGE_DIAGNOSTIC_MP_REQUEST

Descreve uma solicitação de diagnóstico para Miniport. A estrutura STORAGE_DIAGNOSTIC_MP_REQUEST é fornecida no buffer de entrada/saída de uma solicitação de IOCTL_SCSI_MINIPORT_DIAGNOSTIC.
STORAGE_ENDURANCE_DATA_DESCRIPTOR

Um miniporto usa STORAGE_ENDURANCE_DATA_DESCRIPTOR para relatar as informações de resistência de um dispositivo ao driver da porta de armazenamento.
STORAGE_ENDURANCE_INFO

Um miniporto usa a estrutura STORAGE_ENDURANCE_INFO para relatar as informações de resistência de um dispositivo.
STORAGE_FIRMWARE_SLOT_INFO

Saiba mais sobre a estrutura de STORAGE_FIRMWARE_SLOT_INFO.

Enumerações

 
MP_STORAGE_DIAGNOSTIC_LEVEL

A enumeração MP_STORAGE_DIAGNOSTIC_LEVEL permite que o chamador controle quais tipos de dados o provedor deve retornar.
MP_STORAGE_DIAGNOSTIC_TARGET_TYPE

A enumeração MP_STORAGE_DIAGNOSTIC_TARGET_TYPE especifica o tipo de destino de um diagnóstico de armazenamento.