Função StorPortLogSystemEvent (storport.h)

A rotina StorPortLogSystemEvent fornece aos drivers de miniporta acesso total aos recursos da instalação de eventos do kernel do Windows, permitindo que os drivers de miniporte criem entradas de log de eventos que são realmente úteis na solução de problemas de armazenamento. Ele fornece uma alternativa melhor para a função de log de eventos do driver de miniport existente, StorPortLogError.

Sintaxe

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

Parâmetros

[in] HwDeviceExtension

Um ponteiro para a extensão do dispositivo de hardware. Essa é uma área de armazenamento por HBA que o driver de porta aloca e inicializa em nome do driver de miniporta. Os drivers de miniporta geralmente armazenam informações específicas do HBA nessa extensão, como o estado do HBA e os intervalos de acesso mapeados para o HBA. Essa área está disponível para o miniporto imediatamente após o driver de miniporto chamar StorPortInitialize. O driver de porta libera essa memória quando remove o dispositivo.

[in, out] LogDetails

Uma estrutura STOR_LOG_EVENT_DETAILS que contém informações a serem exibidas na entrada do log de eventos do sistema.

[in, out] MaximumSize

Variável para receber o tamanho máximo combinado de cadeias de caracteres e dados de despejo do miniport. Retornado somente se a função falhar e retornar um valor STOR_STATUS_INVALID_BUFFER_SIZE. Esse parâmetro é opcional.

Retornar valor

Código de retorno Descrição
STOR_STATUS_NOT_IMPLEMENTED
Essa função não é implementada no sistema operacional ativo.
STOR_STATUS_INVALID_PARAMETER
Um parâmetro inválido foi passado.
STOR_STATUS_INVALID_IRQL
A chamada foi feita no IRQL > DISPATCH_LEVEL.
STOR_STATUS_INSUFFICIENT_RESOURCES
Não havia recursos suficientes do sistema para concluir a solicitação.
STOR_STATUS_UNSUPPORTED_VERSION:
Uma versão sem suporte (por exemplo, mais atual) da estrutura STOR_LOG_EVENT_DETAILS foi especificada. Quando isso é retornado, LogDetails->InterfaceRevision é definido como a versão mais recente com suporte.
STOR_STATUS_INVALID_BUFFER_SIZE
Os buffers passados para a função eram muito grandes. Quando esse valor é retornado, MaximumSize é definido como o tamanho máximo combinado dos dados de despejo e das cadeias de caracteres do miniport.
STOR_STATUS_SUCCESS
A operação de log foi concluída com êxito.

Comentários

Para entender como você pode usar códigos de erro personalizados para obter a melhor vantagem, consulte Extensões de log de erros do Storport. A rotina StorPortLogSystemEvent deve ser chamada em IRQL <= DISPATCH_LEVEL. Se você passar uma versão mais recente do STOR_LOG_EVENT_DETAILS do que a suportada por essa compilação, essa função alterará o campo InterfaceRevision para a versão mais recente com suporte e retornará STOR_STATUS_UNSUPPORTED_VERSION. O campo InterfaceRevision de STOR_LOG_EVENT_DETAILS é um valor de 32 bits. No entanto, apenas os três bytes mais significativos são usados para validação. O byte baixo é reservado para distinguir entre variações secundárias compatíveis de uma versão específica. Por exemplo, uma revisão 0x00000101 estrutura é compatível com um Storport que implementa 0x00000100 de revisão da interface, embora seja possível que alguma funcionalidade secundária e não crítica possa ser perdida. Se você especificar um tamanho combinado de dados de despejo e cadeias de caracteres que exceder o tamanho máximo permitido de entrada de log de eventos, o inteiro apontado por MaximumSize será definido como o tamanho máximo permitido de cadeias de caracteres e dados de despejo de miniporta e STOR_INVALID_BUFFER_SIZE será retornado. Embora essa função aceite valores ULONG para os especificadores de endereços de caminho, destino e LUN, os valores são truncados para valores UCHAR porque o Storport dá suporte interno apenas a valores de 8 bits para esses especificadores.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho storport.h (inclua Storport.h)
Regras de conformidade da DDI StorPortIrql(storport)

Confira também

StorPortLogError