Función StorPortAsyncNotificationDetected (storport.h)

Un controlador de miniporte de almacenamiento llama a StorPortAsyncNotificationDetected para notificar al controlador de Storport un evento de cambio de estado del dispositivo de almacenamiento.

La notificación se pone en cola como un elemento de trabajo para el procesamiento diferido en DISPATCH_LEVEL o irQL inferior.

Sintaxis

ULONG StorPortAsyncNotificationDetected(
  [in] PVOID         HwDeviceExtension,
       PSTOR_ADDRESS Address,
       ULONGLONG     Flags
);

Parámetros

[in] HwDeviceExtension

Puntero a la extensión de dispositivo de hardware. Se trata de un área de almacenamiento por HBA que el controlador de puerto asigna e inicializa en nombre del controlador de minipuerto. Los controladores de minipuerto suelen almacenar información específica de HBA en esta extensión, como el estado del HBA y los intervalos de acceso asignados para el HBA. Esta área está disponible para el controlador de minipuerto inmediatamente después de que el controlador de minipuerto llame a StorPortInitialize. El controlador de puerto libera esta memoria cuando quita el dispositivo.

Address

Dirección del dispositivo de almacenamiento con un evento de cambio de estado.

Flags

Las notificaciones de estado que se van a indicar a Storport.

El parámetro Flags contiene una combinación OR bit a bit de notificaciones de estado. Todos los valores de estado se pueden establecer con el valor de RAID_ASYNC_NOTIFY_SUPPORTED_FLAGS único.

Valor Significado
RAID_ASYNC_NOTIFY_FLAG_MEDIA_STATUS
Notifique a Storport que se ha producido un cambio multimedia.
RAID_ASYNC_NOTIFY_FLAG_DEVICE_STATUS
Notifique a Storport que el estado funcional del dispositivo de almacenamiento ha cambiado.
RAID_ASYNC_NOTIFY_FLAG_DEVICE_OPERATION
Notifique a Storport que ha cambiado un rol operativo del dispositivo de almacenamiento.

Valor devuelto

Valor de estado que indica el resultado de la notificación. Puede ser uno de estos valores:

Código devuelto Descripción
STOR_STATUS_SUCCESS
La notificación de cambio de estado está programada para su procesamiento.
STOR_STATUS_INVALID_PARAMETER
El tipo de dirección no es válido.

O bien

HwDeviceExtension es NULL.

O bien

Las marcas contienen un valor indefinido.

STOR_STATUS_INVALID_DEVICE_REQUEST
No se encuentra la unidad de dispositivo de almacenamiento en la dirección.

O bien

El dispositivo de almacenamiento no admite notificaciones asincrónicas.

STOR_STATUS_BUSY
Una notificación previa está en proceso y esta no se puede programar.

Comentarios

Un miniport puede detectar eventos de estado en su rutina HwStorInterrupt y llamar a StorPortAsyncNotificationDetected para poner en cola y procesar la notificación de cambio de estado más adelante en un IRQL inferior.

Cuando Storport procesa, la notificación de eventos de estado se reenvía al controlador de clase de almacenamiento para iniciar las acciones de respuesta del sistema necesarias.

Si el parámetro Flags es 0, Storport indicará todos los valores de estado de su notificación al controlador de clase de almacenamiento.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Plataforma de destino Universal
Encabezado storport.h (incluya Storport.h)
IRQL Any