função de retorno de chamada IDE_HW_CONTROL (irb.h)

A rotina do driver de miniporto IdeHwControl notifica o driver de miniporto sobre Plug and Play (PnP) e eventos de energia.

Nota Os modelos de driver de porta do ATA e do driver de miniporto do ATA podem ser alterados ou indisponíveis no futuro. Em vez disso, recomendamos usar os modelos de driver do Storport e do driver de miniporto storport .
 

Sintaxe

IDE_HW_CONTROL IdeHwControl;

BOOLEAN IdeHwControl(
  [in]      PVOID ChannelExtension,
  [in]      IDE_CONTROL_ACTION ControlAction,
  [in, out] PVOID Parameters
)
{...}

Parâmetros

[in] ChannelExtension

Um ponteiro para a extensão de canal.

[in] ControlAction

Contém um valor enumerador do tipo IDE_CONTROL_ACTION que indica a ação de controle a ser executada.

[in, out] Parameters

Um ponteiro para um buffer que contém os parâmetros associados à ação de controle. Esse parâmetro pode ter um dos valores na tabela a seguir.

Ação de controle Parâmetros Descrição
IdeStart O parâmetro aponta para uma estrutura do tipo IDE_CHANNEL_CONFIGURATION. Indica que o driver de porta está iniciando o canal.
IdeVendorDefined O parâmetro aponta para uma estrutura do tipo IDE_VENDOR_DEFINED_POWER_INFO. Indica que há um evento de energia definido pelo fornecedor chegando.

Retornar valor

IdeHwControl retornará TRUE se a operação tiver sido bem-sucedida. Caso contrário, retornará FALSE.

Comentários

O driver de porta garante que não haja E/S pendente no canal antes de invocar essa rotina. O driver de miniporte pode ter seus próprios métodos de política de energia quando o sistema entra em um estado de energia diferente. Para conseguir isso, o driver de miniporto precisa fazer o seguinte:

  • Adicione um esquema de configuração de política de energia ao arquivo INF do driver de miniport. Um GUID é necessário para apresentar uma política de energia definida pelo driver de miniport. Para obter mais informações sobre a diretiva de configurações de energia, consulte Diretiva AddPowerSetting do INF. Mais informações sobre os GUIDs podem ser encontradas em Configurações de disco.
  • Quando a rotina do driver de miniporto IdeHwControl é chamada com a ação de controle IdeStart:
    Verifique o campo SupportedAdvances.AdvancedChannelConfigurationSupported na estrutura ChannelConfiguration.
    Verifique o campo AdvancedChannelConfiguration->Present.VendorDefinedPower na estrutura ChannelConfiguration.
    Se os valores dos dois campos listados anteriormente forem TRUE, essa versão do driver de porta do ATA oferecerá suporte ao gerenciamento de energia definido pelo fornecedor.
    Se o gerenciamento de energia definido pelo fornecedor for compatível com o driver de porta do ATA, o driver de miniporte poderá se registrar para tratamento especial de gerenciamento de energia definindo os campos AdvancedChannelConfiguration->VendorDefinedPower.ValidGuids e AdvancedChannelConfiguration->VendorDefinedPower.Guid[] (este último deve ser o GUID da política de energia no arquivo INF do driver de miniport).
  • Depois que o gerenciamento de energia definido pelo fornecedor for registrado, o driver de miniporto poderá receber chamadas para sua rotina IdeHwControl com a ação de controle IdeVendorDefined quando o esquema de energia do sistema for alterado.
  • Embora o driver de miniporte processe a rotina IdeHwControl com a ação de controle IdeVendorDefined, ele deve fazer o seguinte:
    Compare o campo SettingGuid do campo parâmetro de estrutura IDE_VENDOR_DEFINED_POWER_INFO com o GUID que o driver de miniporto registrou para garantir que a chamada seja para esse canal. Se os GUIDs não corresponderem, o driver de miniporte deverá concluir a chamada e não tomar nenhuma ação.
    Obtenha o campo Valor do campo de parâmetro da estrutura IDE_VENDOR_DEFINED_POWER_INFO e execute a ação de gerenciamento de energia específica do driver de miniporto apropriado.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho irb.h (inclua Irb.h)

Confira também

AtaPortGetUncachedExtension