Compartilhar via


função de retorno de chamada HW_PASSIVE_INITIALIZE_ROUTINE (storport.h)

A rotina de retorno de chamada HwStorPassiveInitializeRoutine é chamada após a rotina HwStorInitialize quando o IRQL atual está em PASSIVE_LEVEL. O retorno de chamada HwStorPassiveInitializeRoutine é definido chamando a rotina StorPortEnablePassiveInitialization . A inicialização das DPCs (chamadas de procedimento adiadas) do miniporto ocorre no retorno de chamada HwStorPassiveInitializeRoutine .

Sintaxe

HW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine;

BOOLEAN HwPassiveInitializeRoutine(
  PVOID DeviceExtension
)
{...}

Parâmetros

DeviceExtension

Valor retornado

A rotina HwStorPassiveInitializeRoutine retornará TRUE se o miniporto inicializar com êxito o processamento de DPCs ou FALSE se o processo de inicialização falhar.

Comentários

A rotina HwStorPassiveInitializeRoutine deve inicializar todos os DPCs que o driver de miniporto usará. O driver de porta chama HwStorPassiveInitializeRoutine em PASSIVE_LEVEL sem nenhum bloqueio de rotação mantido. As interrupções são habilitadas enquanto essa rotina é chamada.

O nome HwStorPassiveInitializeRoutine é apenas um espaço reservado. O protótipo real para essa rotina de retorno de chamada é definido em Storport.h da seguinte maneira:

typedef
BOOLEAN
(*PHW_PASSIVE_INITIALIZE_ROUTINE) (
  _In_ PVOID DeviceExtension
  );

O driver de porta chama a rotina HwStorPassiveInitializeRoutine em IRQL PASSIVO sem adquirir nenhum bloqueio de rotação.

Exemplos

Para definir uma função de retorno de chamada HwStorPassiveInitializeRoutine , primeiro você deve fornecer uma declaração de função que identifique o tipo de função de retorno de chamada que você está definindo. O Windows fornece um conjunto de tipos de função de retorno de chamada para drivers. Declarar uma função usando os tipos de função de retorno de chamada ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma rotina de retorno de chamada HwStorPassiveInitializeRoutine chamada MyHwPassiveInitialize, use o tipo HW_PASSIVE_INITIALIZE_ROUTINE conforme mostrado neste exemplo de código:

HW_PASSIVE_INITIALIZE_ROUTINE MyHwPassiveInitialize;

Em seguida, implemente sua rotina de retorno de chamada da seguinte maneira:

_Use_decl_annotations_
BOOLEAN
MyHwPassiveInitialize (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

O tipo de função HW_PASSIVE_INITIALIZE_ROUTINE é definido no arquivo de cabeçalho Storport.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função HW_PASSIVE_INITIALIZE_ROUTINE no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função para drivers storport. Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho storport.h (inclua Storport.h)
IRQL PASSIVE_LEVEL (consulte a seção Comentários.)

Confira também

HwStorInitialize

StorPortEnablePassiveInitialization