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 del registro de eventos que son realmente útiles para solucionar problemas de almacenamiento. Proporciona una alternativa mejor 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 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 miniporte inmediatamente después de que el controlador de minipuerto 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 las cadenas y los datos de volcado de miniporte. Solo se devuelve si se produce un error en la función y devuelve un valor de STOR_STATUS_INVALID_BUFFER_SIZE. Este parámetro es opcional.
Valor devuelto
Código devuelto | Descripción |
---|---|
|
Esta función no se implementa en el sistema operativo activo. |
|
Se pasó un parámetro no válido. |
|
La llamada se realizó en irQL > DISPATCH_LEVEL. |
|
No había recursos del sistema suficientes para completar la solicitud. |
|
Se especificó una versión no admitida (por ejemplo, más actual) de la estructura de STOR_LOG_EVENT_DETAILS. Cuando se devuelve esto, LogDetails->InterfaceRevision se establece en la versión compatible más reciente. |
|
Los búferes pasados a la función eran demasiado grandes. Cuando se devuelve este valor, MaximumSize se establece en el tamaño combinado máximo de las cadenas y los datos de volcado de memoria de la miniporta. |
|
La operación de registro se completó correctamente. |
Comentarios
Para comprender cómo puede usar códigos de error personalizados para aprovechar mejor las 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 las variaciones secundarias compatibles de una versión determinada. Por ejemplo, una estructura de 0x00000101 de revisión es compatible con 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 y cadenas de volcado de memoria 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 miniporto, 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 | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | storport.h (incluya Storport.h) |
Reglas de cumplimiento de DDI | StorPortIrql(storport) |