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.
ULONG StorPortLogSystemEvent(
[in] PVOID HwDeviceExtension,
[in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
[in, out] PULONG MaximumSize
);
[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.
Código de retorno | Descrição |
---|---|
|
Essa função não é implementada no sistema operacional ativo. |
|
Um parâmetro inválido foi passado. |
|
A chamada foi feita no IRQL > DISPATCH_LEVEL. |
|
Não havia recursos suficientes do sistema para concluir a solicitação. |
|
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. |
|
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. |
|
A operação de log foi concluída com êxito. |
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.
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | storport.h (inclua Storport.h) |
Regras de conformidade da DDI | StorPortIrql(storport) |