Compartir a través de


HW_PASSIVE_INITIALIZE_ROUTINE función de devolución de llamada (storport.h)

Se llama a la rutina de devolución de llamada HwStorPassiveInitializeRoutine después de la rutina HwStorInitialize cuando el IRQL actual está en PASSIVE_LEVEL. La devolución de llamada HwStorPassiveInitializeRoutine se establece mediante una llamada a la rutina StorPortEnablePassiveInitialization . La inicialización de las llamadas a procedimiento diferido de miniporte se produce en la devolución de llamada HwStorPassiveInitializeRoutine .

Sintaxis

HW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine;

BOOLEAN HwPassiveInitializeRoutine(
  PVOID DeviceExtension
)
{...}

Parámetros

DeviceExtension

Valor devuelto

La rutina HwStorPassiveInitializeRoutine devuelve TRUE si el miniporte inicializó correctamente el procesamiento de DPC o FALSE si se produjo un error en el proceso de inicialización.

Comentarios

La rutina HwStorPassiveInitializeRoutine debe inicializar cualquier DPC que use el controlador de miniporte. El controlador de puerto llama a HwStorPassiveInitializeRoutine en PASSIVE_LEVEL sin bloqueos de giro retenidos. Las interrupciones se habilitan mientras se llama a esta rutina.

El nombre HwStorPassiveInitializeRoutine es simplemente un marcador de posición. El prototipo real de esta rutina de devolución de llamada se define en Storport.h de la siguiente manera:

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

El controlador de puerto llama a la rutina HwStorPassiveInitializeRoutine en PASSIVE IRQL sin adquirir ningún bloqueo de giro.

Ejemplos

Para definir una función de devolución de llamada HwStorPassiveInitializeRoutine , primero debe proporcionar una declaración de función que identifique el tipo de función de devolución de llamada que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Análisis de código para controladores, Comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una rutina de devolución de llamada HwStorPassiveInitializeRoutine denominada MyHwPassiveInitialize, use el tipo HW_PASSIVE_INITIALIZE_ROUTINE tal como se muestra en este ejemplo de código:

HW_PASSIVE_INITIALIZE_ROUTINE MyHwPassiveInitialize;

A continuación, implemente la rutina de devolución de llamada de la siguiente manera:

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

El tipo de función HW_PASSIVE_INITIALIZE_ROUTINE se define en el archivo de encabezado Storport.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función HW_PASSIVE_INITIALIZE_ROUTINE en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante tipos de rol de función para controladores de Storport. Para obtener información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado storport.h (incluya Storport.h)
IRQL PASSIVE_LEVEL (consulte la sección Comentarios).

Consulte también

HwStorInitialize

StorPortEnablePassiveInitialization