enumeração SCSI_ADAPTER_CONTROL_TYPE (storport.h)

A enumeração SCSI_ADAPTER_CONTROL_TYPE contém operações de controle de adaptador, em que cada tipo de controle inicia uma ação em um adaptador pelo driver de miniporta. O Storport especifica o tipo de controle quando chama a rotina HwStorAdapterControl de um miniport.

Syntax

typedef enum _SCSI_ADAPTER_CONTROL_TYPE {
  ScsiQuerySupportedControlTypes,
  ScsiStopAdapter,
  ScsiRestartAdapter,
  ScsiSetBootConfig,
  ScsiSetRunningConfig,
  ScsiPowerSettingNotification,
  ScsiAdapterPower,
  ScsiAdapterPoFxPowerRequired,
  ScsiAdapterPoFxPowerActive,
  ScsiAdapterPoFxPowerSetFState,
  ScsiAdapterPoFxPowerControl,
  ScsiAdapterPrepareForBusReScan,
  ScsiAdapterSystemPowerHints,
  ScsiAdapterFilterResourceRequirements,
  ScsiAdapterPoFxMaxOperationalPower,
  ScsiAdapterPoFxSetPerfState,
  ScsiAdapterSurpriseRemoval,
  ScsiAdapterSerialNumber,
  ScsiAdapterCryptoOperation,
  ScsiAdapterQueryFruId,
  ScsiAdapterSetEventLogging,
  ScsiAdapterReportInternalData,
  ScsiAdapterResetBusSynchronous,
  ScsiAdapterPostHwInitialize,
  ScsiAdapterPrepareEarlyDumpData,
  ScsiAdapterRestoreEarlyDumpData,
  ScsiAdapterControlMax,
  MakeAdapterControlTypeSizeOfUlong
} SCSI_ADAPTER_CONTROL_TYPE, *PSCSI_ADAPTER_CONTROL_TYPE;

Constantes

 
ScsiQuerySupportedControlTypes
Relata as operações de controle de adaptador implementadas pelo driver de miniporta. Um miniporto deve dar suporte a esse tipo de controle.

O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura de SCSI_SUPPORTED_CONTROL_TYPE_LIST após o HBA ter sido inicializado, mas antes da primeira E/S.

O driver de miniporta preenche a estrutura SCSI_SUPPORTED_CONTROL_TYPE_LIST com as operações compatíveis. Depois que HwStorAdapterControl retorna dessa chamada, o driver storport chama hwStorAdapterControl do driver de miniport apenas para operações com suporte no miniporto.
ScsiStopAdapter
Desliga o HBA. Um miniporto deve dar suporte a esse tipo de controle.

O driver storport chama HwStorAdapterControl com esse tipo de controle (e Parâmetros definidos como NULL) quando o HBA foi removido do sistema, interrompido para reconfiguração de recursos, desligado para gerenciamento de energia ou reconfigurado ou desabilitado. O Storport garante que não haja solicitações não compatíveis e emita uma solicitação de SRB_FUNCTION_FLUSH para o driver de miniport antes de chamar essa rotina.

O driver de miniporta desabilita interrupções em seu HBA, interrompe todo o processamento (incluindo o processamento em segundo plano não sujeito a interrupções ou processamento dos quais o driver storport não está ciente, como a reconstrução de volumes tolerantes a falhas), libera todos os dados armazenados em cache restantes para o armazenamento persistente e coloca o HBA em um estado do qual ele pode ser reinicializado ou reiniciado.

O driver de miniporta não deve liberar seus recursos ao parar seu HBA. Se o HBA foi removido ou interrompido para reconfiguração de recursos PnP, o driver Storport libera recursos em nome do driver de miniporto. Se o HBA for desligado para gerenciamento de energia, os recursos do driver de miniport são preservados para que o HBA possa ser reiniciado.

Depois que HwStorAdapterControl retornar de interromper o HBA, todas as estruturas de dados alocadas em nome do driver de miniporto para o HBA deverão ser consideradas inválidas até que o driver de miniporto seja solicitado a reiniciar.

Observe que o Storport pode chamar HwStorAdapterControl para interromper o adaptador depois que o HBA já tiver sido fisicamente removido do sistema, portanto, a rotina HwStorAdapterControl do driver de miniporto não deve executar nenhuma operação que exija que o HBA esteja fisicamente presente enquanto está parando o HBA.

O driver de miniporto não é chamado novamente para o HBA até que o gerenciador PnP solicite que o HBA seja iniciado, nesse caso, o driver storport (re)inicializa chamando suas rotinas HwStorAdapterControl e HwStorInitialize ou um HBA que foi interrompido para o gerenciamento de energia é ligado, nesse caso, o driver Storport chama a rotina HwStorAdapterControl do driver de miniporto com ScsiRestartAdapter ou, se o driver de miniporto não implementar esse tipo de controle, repetirá a sequência de inicialização para o HBA.
ScsiRestartAdapter
Reinicializa um HBA. Um miniporto deve dar suporte a esse tipo de controle.

O driver do Storport chama HwStorAdapterControl com esse tipo de controle (e Parâmetros definidos como NULL) para ligar um HBA que foi desligado para gerenciamento de energia. Todos os recursos atribuídos anteriormente ao driver de miniporto ainda estão disponíveis, e suas extensões de extensão de dispositivo e unidade lógica, se houver, estão intactas.

O driver de miniporta executa as mesmas operações que em sua rotina HwStorInitialize , como configurar os registros do HBA e seu estado inicial, se houver.

O driver de miniporto não deve chamar rotinas que só podem ser chamadas de HwStorFindAdapter ou de HwStorAdapterControl quando o tipo de controle é ScsiSetRunningConfig, como StorPortGetBusData e StorPortSetBusDataByOffset. Se o driver de miniporto precisar chamar essas rotinas para reiniciar seu HBA, ele também deverá implementar ScsiSetRunningConfig.

Se o driver de miniporto não implementar ScsiRestartAdapter, o driver storport chamará as rotinas HwStorFindAdapter e HwStorInitialize do driver de miniport. No entanto, como essas rotinas podem fazer com que a detecção funcione desnecessariamente para reiniciar o HBA, esse driver de miniporto não ligará seu HBA tão rapidamente quanto um driver de miniporto que implementa ScsiRestartAdapter.
ScsiSetBootConfig
Restaura as configurações em um HBA que o BIOS pode precisar reinicializar. O driver do Storport chama HwStorAdapterControl com esse tipo de controle (e Parâmetros definidos como NULL) depois de chamar essa rotina com ScsiStopAdapter.

Um driver de miniporto deve implementar ScsiSetBootConfig se precisar chamar StorPortGetBusData ou StorPortSetBusDataByOffset antes que o sistema possa reinicializar.
ScsiSetRunningConfig
Restaura as configurações em um HBA que o driver de miniporto pode precisar para controlar o HBA enquanto o sistema está em execução. O driver storport chama HwStorAdapterControl com esse tipo de controle (e Parâmetros definidos como NULL) antes de chamar essa rotina com ScsiRestartAdapter se o driver de miniporto implementar esse tipo de controle.

A interrupção do HBA ainda não está conectada quando o driver storport faz essa chamada, portanto, o driver de miniporto deve ter cuidado para não gerar uma interrupção.

Um driver de miniporto deve implementar ScsiSetRunningConfig se precisar chamar StorPortGetBusData ou StorPortSetBusDataByOffset para restaurar a configuração em execução apropriada para o HBA antes que ele possa ser reiniciado.
ScsiPowerSettingNotification
Notificação para uma alteração de configuração de energia registrada. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura STOR_POWER_SETTING_INFO se ocorrer uma alteração de configuração de energia. Os miniportos registram-se para notificações de configuração de energia chamando StorPortSetPowerSettingNotificationGuids com uma lista de GUIDs que representam os eventos de alteração de energia de interesse. Esse tipo de controle é válido em Windows 8 e posterior.
ScsiAdapterPower
Relata os estados de ligar ou desligar o adaptador. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura STOR_ADAPTER_CONTROL_POWER . Se o miniporto der suporte a esse tipo de controle, ele não receberá um bloco de solicitação de armazenamento com SRB_FUNCTION_POWER e HwStorAdapterControl não será chamado com o tipo de controle ScsiStopAdapter . Esse tipo de controle é válido em Windows 8 e posterior.
ScsiAdapterPoFxPowerRequired
Notifica o miniporto se a energia é necessária ou não para o componente do adaptador. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para um valor BOOLEAN que será TRUE se o componente do adaptador exigir energia; caso contrário, FALSE. Esse tipo de controle é válido em Windows 8 e posterior.
ScsiAdapterPoFxPowerActive
Notifica o miniporto se o componente do adaptador está ativo ou ocioso. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura STOR_POFX_ACTIVE_CONTEXT . Esse tipo de controle é válido em Windows 8 e posterior.
ScsiAdapterPoFxPowerSetFState
Notifica o miniporto para definir o componente do adaptador para o estado F especificado. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estruturaSTOR_POFX_FSTATE_CONTEXT . Esse tipo de controle é válido em Windows 8 e posterior.
ScsiAdapterPoFxPowerControl
Solicita que o miniporto execute uma operação de controle de energia privada iniciada para o adaptador por um PEP (plug-in do power engine). O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura STOR_POFX_POWER_CONTROL . Esse tipo de controle é válido em Windows 8 e posterior.
ScsiAdapterPrepareForBusReScan
Notifica o miniporto para preparar o adaptador para enumeração de barramento. O driver do Storport chama HwStorAdapterControl com esse tipo de controle (e Parâmetros definidos como NULL). O miniporto deve ligar o adaptador e todos os dispositivos conectados para permitir que a operação de enumeração de barramento localize os dispositivos. Esse tipo de controle é válido em Windows 8 e posterior.
ScsiAdapterSystemPowerHints
Fornece dicas de energia do sistema para o miniporto. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura de STOR_SYSTEM_POWER_HINTS . Esse tipo de controle é válido em Windows 8 e posterior.
ScsiAdapterFilterResourceRequirements
Filtra os recursos necessários para o adaptador. O driver storport chama HwStorAdapterControl com esse tipo de controle IRP_MN_FILTER_RESOURCE_REQUIREMENTS e Parâmetros apontando para uma estrutura STOR_FILTER_RESOURCE_REQUIREMENTS quando o Storport processa a solicitação e o miniporto tem o sinalizador STOR_FEATURE_ADAPTER_CONTROL_PRE_FINDADAPTER definido no campo FeatureSupport de HW_INITIALIZATION_DATA. Observe que a DeviceExtension passada para esse tipo de controle não será inicializada.

O driver de miniporta deve alterar ou reduzir os recursos descritos no buffer usando a estrutura STOR_FILTER_RESOURCE_REQUIREMENTS . Esse tipo de controle é válido em Windows 8.1 e posterior.
ScsiAdapterPoFxMaxOperationalPower
Comunica um valor máximo de energia operacional para o miniporto. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura de STOR_MAX_OPERATIONAL_POWER . Para receber esse controle, o miniporto deve ter chamado StorPortPoFxSetPerfState anteriormente para registrar um conjunto de perf com PStateType = StorPoFxPerfStateTypeDiscrete e Count> 1.

O campo Valor em cada estado de energia (P-State) deve representar um nível de energia máximo relativo em proporção aos outros P-States e estará dentro do intervalo de níveis máximos de energia relatados pelos P-States do miniporto, inclusive. O miniporto deve garantir que ele escolha um estado de energia cujo consumo máximo de energia seja menor ou igual ao valor fornecido neste parâmetro.
ScsiAdapterPoFxSetPerfState
Informa o miniporto do status de uma transição P-State solicitada por uma chamada para StorPortPoFxSetPerfState. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura STOR_POFX_PERF_STATE_CONTEXT .

Se o miniporto precisar iniciar uma transição de estado de energia física, ele deverá aguardar o retorno de chamada HwStorAdapterControl antes de fazer isso. Ou seja, um miniporto deve primeiro chamar StorPortPoFxSetPerfState para sinalizar sua intenção de fazer uma transição de P-State. Em seguida, o Storport chamará o retorno de chamada HwStorAdapterControl do miniporto, momento em que o miniporto poderá executar qualquer ação relacionada à transição de P-State (como alterar o estado de energia física do dispositivo).
ScsiAdapterSurpriseRemoval
Notifica o miniporto de que a unidade foi removida de surpresa. O driver do Storport chama HwStorAdapterControl com esse tipo de controle (e Parâmetros definidos como NULL).
ScsiAdapterSerialNumber
Solicita que o miniporto recupere o número de série do adaptador. O driver storport chama HwStorAdapterControl com esse tipo de controle e Parâmetros apontando para uma estrutura STOR_SERIAL_NUMBER .
ScsiAdapterCryptoOperation
Reservado para uso do sistema. Notifica o miniporto para executar uma operação criptográfica. Storport chama HwStorAdapterControl com ele e Parâmetros apontando para um STOR_CRYPTO_OPERATION.
ScsiAdapterQueryFruId
Disponível a partir Windows 10 versão 21H1. Consulta a ID de uma FRU (unidade de substituição de falha) do adaptador. Storport chama HwStorAdapterControl com ele e Parâmetros apontando para uma estrutura de STOR_FRU_ID_DESCRIPTION ao manipular [IOCTL_STORAGE_QUERY_PROPERTY]ni-ntddstor-ioctl_storage_query_property.md) com uma ID da propriedade StorageFruIdProperty .

O Storport enviará esse controle somente se um miniporto também tiver chamado StorPortSetFeatureList anteriormente em sua rotina HwFindAdapter com StorportFeatureFruIdAdapterControl especificado.
ScsiAdapterSetEventLogging
Disponível a partir Windows 10 versão 21H1. Notifica o miniporto sobre se um canal de evento específico está habilitado ou desabilitado para um adaptador. Em seguida, um miniporto deve chamar uma API para registrar um evento para o adaptador somente quando o canal correspondente estiver habilitado. Se o miniporto der suporte a esse tipo de controle, Storport chamará HwStorAdapterControl com ele e Parâmetros apontando para uma estrutura STOR_SET_EVENT_LOGGING .

O Storport enviará esse controle somente se um miniporto também tiver chamado StorPortSetFeatureList anteriormente em sua rotina HwFindAdapter com StorportFeatureFruIdAdapterControl especificado.
ScsiAdapterReportInternalData
Reservado para uso do sistema. Disponível a partir do Windows 11, versão 22H2.

O Storport enviará esse controle somente se um miniporto também tiver chamado StorPortSetFeatureList em sua rotina HwFindAdapter com ScsiAdapterReportInternalData especificado.
ScsiAdapterResetBusSynchronous
Disponível a partir de Windows 11, versão 22H2. O Storport envia esse controle durante a manipulação de um IOCTL_STORAGE_DEVICE_RESET. O driver de miniporte deve lidar com esse controle semelhante ao que ele faz em sua rotina de retorno de chamada HwResetBus e deve retornar SCSI_ADAPTER_CONTROL_STATUS.

O Storport enviará esse controle somente se um miniporto também tiver chamado StorPortSetFeatureList em sua rotina HwFindAdapter com StorportFeatureResetBusSynchronous especificado.
ScsiAdapterPostHwInitialize
Reservado para uso do sistema. Disponível a partir de Windows 11, versão 22H2.

O Storport enviará esse controle somente se um miniporto também tiver chamado StorPortSetFeatureList em sua rotina HwFindAdapter com StorportFeaturePostHwInitialize especificado.
ScsiAdapterPrepareEarlyDumpData
Reservado para uso do sistema. Disponível a partir de Windows 11, versão 22H2.

O Storport enviará esse controle somente se um miniporto também tiver chamado StorPortSetFeatureList em sua rotina HwFindAdapter com StorportFeaturePrepareEarlyDumpData especificado.
ScsiAdapterRestoreEarlyDumpData
Reservado para uso do sistema. Disponível a partir de Windows 11, versão 22H2.

O Storport enviará esse controle somente se um miniporto também tiver chamado StorPortSetFeatureList em sua rotina HwFindAdapter com StorportFeatureRestoreEarlyDumpData especificado.
ScsiAdapterControlMax
Valor máximo do tipo de controle.
MakeAdapterControlTypeSizeOfUlong
Faz dessa enumeração o tamanho de um ULONG.

Comentários

Um miniporto relata quais tipos de controle ele dá suporte quando o Storport chama a rotina HwStorAdapterControl do miniport com um tipo de controle ScsiQuerySupportedControlTypes. Para esses tipos de controle compatíveis com o miniporto, o Storport chama HwStorAdapterControl com um valor SCSI_ADAPTER_CONTROL_TYPE para indicar a operação de controle que especifica a operação de controle do adaptador a ser executada pelo miniporto.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8
Cabeçalho storport.h

Confira também

HwStorAdapterControl