Compartir a través de


Función StorPortNotification (storport.h)

El controlador de minipuerto usa la rutina StorPortNotification para notificar al controlador de Storport determinados eventos y condiciones.

StorPortNotification toma un número variable de parámetros según el tipo de notificación especificado.

Sintaxis

STORPORT_API VOID StorPortNotification(
  SCSI_NOTIFICATION_TYPE NotificationType,
  PVOID                  HwDeviceExtension,
  ...                    
);

Parámetros

NotificationType

Especifica el tipo de notificación, que puede ser uno de los valores siguientes.

Tipo de notificación Descripción
BufferOverrunDetected Este tipo de notificación no tiene argumentos y ofrece al controlador de minipuerto una oportunidad para comprobar el sistema si detecta daños.
BusChangeDetected Indica que es posible que se haya agregado o quitado un dispositivo de destino de un bus dinámico. Para usar este tipo de notificación, incluya un parámetro PathId opcional para indicar el puerto SCSI o el bus donde se detectó el cambio.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_opt_ UCHAR                  PathId
);
IoTargetRequestServiceTime Indica a Storport la cantidad de tiempo necesario para procesar una solicitud especificada.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ ULONGLONG              Duration,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);

Duración [in]

Duración del tiempo de servicio necesario para Srb en unidades de 100 nanosegundos.

Srb [in]

Bloque de solicitud para el que se va a establecer la hora del servicio.

LinkDown Indica que el vínculo está inactivo y probablemente estará inactivo durante algún tiempo. StorPort pausará el adaptador en respuesta a esta notificación.
Linkup Indica que se ha restaurado el vínculo. StorPort reinicia el adaptador para que pueda reanudar la operación en respuesta a esta notificación. Los controladores de minipuerto no deben enviar esta notificación a menos que el vínculo esté inactivo.
QueryTickCount Este tipo de notificación devuelve un LARGE_INTEGER que contiene el valor de KeQueryTickCount. El valor devuelto en TickCount es el recuento de las interrupciones del temporizador de intervalo que se han producido desde el arranque del sistema.
VOID StorPortNotification(
  _In_    SCSI_NOTIFICATION_TYPE NotificationType,
  _In_    PVOID                  HwDeviceExtension,
  _Inout_ PLARGE_INTEGER         TickCount
);
RequestComplete Indica que la SRB especificada ha finalizado. Una vez enviada esta notificación, el controlador de puerto posee la solicitud. El parámetro Srb representa un puntero al bloque de solicitud SCSI completado. El controlador de minipuerto no debe intentar acceder a la solicitud en Srb, y no debe pasar Srb a otra rutina.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);
RequestTimerCall Indica que el controlador de minipuerto requiere que el controlador de puerto llame a la rutina HwStorTimer del controlador de miniporte en el número solicitado de microsegundos.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PHW_TIMER              HwStorTimer,
  _In_ ULONG                  MiniportTimerValue
);

HwStorTimer [in]

Puntero a una rutina de temporizador a la que se llama después del intervalo de tiempo especificado en MiniportTimerValue.

MiniportTimerValue [in]

Indica el intervalo después del cual se llama a la rutina del temporizador a la que apunta HwStorTimer. Se trata de un valor positivo especificado en microsegundos. Un valor de 0 cancelará el temporizador. La resolución del temporizador del sistema es de aproximadamente 10 milisegundos.

ResetDetected Indica que el HBA ha detectado un restablecimiento en el bus. Una vez enviada esta notificación, el controlador de minipuerto sigue siendo responsable de completar las solicitudes activas. El controlador de puerto administrará todos los retrasos de restablecimiento de bus necesarios.
WMIEvent Indica que el controlador de minipuerto ha detectado un evento para el que se registran uno o varios consumidores de datos WMI. Tenga en cuenta que el parámetro WmiEvent está limitado a un máximo de 128 bytes. Si WmiEvent tiene más de 128 bytes, se omitirá.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     PWNODE_EVENT_ITEM      WMIEvent,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

WMIEvent [in]

Puntero a estructuras de eventos que tienen información sobre un evento WMI detectado por el controlador de minipuerto.

PathId [in]

Indica el puerto o bus SCSI de la solicitud. Establezca este parámetro en 0xff para un dispositivo adaptador. De lo contrario, establezca en un identificador de ruta de acceso válido.

TargetId [in, opcional]

Indica el controlador de destino o el dispositivo del bus. Este parámetro no se usa cuando el evento es para un adaptador.

Lun [in, opcional]

Indica el número de unidad lógica del dispositivo. Este parámetro no se usa cuando el evento es para un adaptador.

WMIReregister Indica que el controlador de minipuerto ha cambiado los elementos de datos o el número de instancias de un bloque de datos determinado que se registró anteriormente mediante una llamada a IoWMIRegistrationControl.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

PathId [in]

Indica el puerto o bus SCSI de la solicitud. Establezca este parámetro en 0xff para un dispositivo adaptador. De lo contrario, establezca en un identificador de ruta de acceso válido.

TargetId [in, opcional]

Indica el controlador de destino o el dispositivo del bus. Este parámetro no se usa cuando el registro es para un adaptador.

Lun [in, opcional]

Indica el número de unidad lógica del dispositivo. Este parámetro no se usa cuando el registro es para un adaptador.

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.

...

Parámetros adicionales.

Valor devuelto

Ninguno.

Comentarios

StorPortNotification es una función polimórfica que controla muchos tipos diferentes de solicitudes, lo que dificulta la anotación de una manera que cubriría todos los usos posibles. Dado que StorPortNotification devuelve VOID, el motor de análisis debe suponer que lockHandle se adquirió como se le preguntó.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado storport.h (incluya Storport.h)
Library Storport.lib
Reglas de cumplimiento de DDI StorPortNotification2(storport), StorPortStatusPending, StorPortTimer(storport)

Consulte también

StorPortInitialize