Compartir a través de


Función StorPortLogSystemEvent (storport.h)

La rutina StorPortLogSystemEvent proporciona acceso completo a los controladores de miniportar a las funcionalidades de la instalación de eventos del kernel de Windows, lo que permite a los controladores de miniportar crear entradas de registro de eventos que son realmente útiles para solucionar problemas de almacenamiento. Proporciona una mejor alternativa a la función de registro de eventos del controlador de miniport existente, StorPortLogError.

Sintaxis

ULONG StorPortLogSystemEvent(
  [in]      PVOID                   HwDeviceExtension,
  [in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
  [in, out] PULONG                  MaximumSize
);

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 miniport. Los controladores de miniportar 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 miniporte inmediatamente después de que el controlador de miniporte llame a StorPortInitialize. El controlador de puerto libera esta memoria cuando quita el dispositivo.

[in, out] LogDetails

Estructura STOR_LOG_EVENT_DETAILS que contiene información que aparece en la entrada del registro de eventos del sistema.

[in, out] MaximumSize

Variable para recibir el tamaño máximo combinado de los datos y cadenas de volcado de miniporte. Solo se devuelve si se produce un error en la función y devuelve un valor STOR_STATUS_INVALID_BUFFER_SIZE. Este parámetro es opcional.

Valor devuelto

Código devuelto Descripción
STOR_STATUS_NOT_IMPLEMENTED
Esta función no se implementa en el sistema operativo activo.
STOR_STATUS_INVALID_PARAMETER
Se pasó un parámetro no válido.
STOR_STATUS_INVALID_IRQL
La llamada se realizó en irQL > DISPATCH_LEVEL.
STOR_STATUS_INSUFFICIENT_RESOURCES
No había recursos del sistema suficientes para completar la solicitud.
STOR_STATUS_UNSUPPORTED_VERSION:
Se especificó una versión no admitida (por ejemplo, más actual) de la estructura STOR_LOG_EVENT_DETAILS. Cuando se devuelve esto, LogDetails->InterfaceRevision se establece en la versión compatible más reciente.
STOR_STATUS_INVALID_BUFFER_SIZE
Los búferes pasados a la función eran demasiado grandes. Cuando se devuelve este valor, MaximumSize se establece en el tamaño máximo combinado de los datos y cadenas de volcado de memoria del miniporte.
STOR_STATUS_SUCCESS
La operación de registro se completó correctamente.

Observaciones

Para comprender cómo puede usar códigos de error personalizados para obtener las mejores ventajas, consulte extensiones de registro de errores de Storport. Se debe llamar a la rutina StorPortLogSystemEvent en IRQL <= DISPATCH_LEVEL. Si pasa una versión más reciente de STOR_LOG_EVENT_DETAILS que la admitida por esta compilación, esta función cambia el campo InterfaceRevision a la versión compatible más reciente y devuelve STOR_STATUS_UNSUPPORTED_VERSION. El campo InterfaceRevision de STOR_LOG_EVENT_DETAILS es un valor de 32 bits. Sin embargo, solo se usan los tres bytes más significativos para la validación. El byte bajo está reservado para distinguir entre variaciones secundarias compatibles de una versión determinada. Por ejemplo, una revisión 0x00000101 estructura es compatible con un Storport que implementa la revisión 0x00000100 de la interfaz, aunque es posible que se pierda alguna funcionalidad secundaria y no crítica. Si especifica un tamaño combinado de datos de volcado de memoria y cadenas que supera el tamaño máximo permitido de entrada del registro de eventos, el entero al que apunta MaximumSize se establece en el tamaño máximo permitido de los datos y cadenas de volcado de miniporte, y se devuelve STOR_INVALID_BUFFER_SIZE. Aunque esta función acepta valores de ULONG para los especificadores de dirección de ruta de acceso, destino y LUN, los valores se truncan en valores UCHAR porque Storport solo admite internamente valores de 8 bits para estos especificadores.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de storport.h (incluya Storport.h)
reglas de cumplimiento de DDI storPortIrql(storport)

Consulte también

StorPortLogError