estrutura PERF_CONFIGURATION_DATA (storport.h)
A estrutura PERF_CONFIGURATION_DATA descreve as otimizações de desempenho compatíveis com a rotina de StorPortInitializePerfOpts.
Sintaxe
typedef struct _PERF_CONFIGURATION_DATA {
ULONG Version;
ULONG Size;
ULONG Flags;
ULONG ConcurrentChannels;
ULONG FirstRedirectionMessageNumber;
ULONG LastRedirectionMessageNumber;
ULONG DeviceNode;
ULONG Reserved;
PGROUP_AFFINITY MessageTargets;
} PERF_CONFIGURATION_DATA, *PPERF_CONFIGURATION_DATA;
Membros
Version
O número de versão da estrutura. Defina esse membro ao consultar e inicializar otimizações.
Size
O tamanho da estrutura, definido como sizeof(PERF_CONFIGURATION_DATA).
Flags
Um OR bit a bit de sinalizadores com suporte. Atualmente, há suporte para os seguintes sinalizadores:
ConcurrentChannels
O número de chamadas simultâneas para o HwStorStartIo rotina que o driver de miniporto e o dispositivo dão suporte. Esse membro só será acessado quando o sinalizador de STOR_PERF_CONCURRENT_CHANNELS tiver sido definido. Antes do Windows 8, os miniportos não devem definir esse valor.
FirstRedirectionMessageNumber
Quando o Flags membro tem o sinalizador STOR_PERF_INTERRUPT_MESSAGE_RANGES definido, o driver de miniporto inicializa o redirecionamento de interrupção para começar com esse número de mensagem. Esse membro só é acessado quando o sinalizador de STOR_PERF_INTERRUPT_MESSAGE_RANGES é definido.
LastRedirectionMessageNumber
Quando o Flags membro tem o sinalizador STOR_PERF_INTERRUPT_MESSAGE_RANGES definido, o driver de miniporto inicializa o redirecionamento de interrupção para terminar com esse número de mensagem. Esse membro só é acessado quando o sinalizador de STOR_PERF_INTERRUPT_MESSAGE_RANGES é definido.
DeviceNode
Quando o Flags membro tem o sinalizador STOR_PERF_ADV_CONFIG_LOCALITY definido, o Storport inicializa esse campo para conter o número do nó NUMA no qual o dispositivo do driver de miniporto reside.
Reserved
Reservado para uso do sistema.
MessageTargets
Quando o Flags membro tem o sinalizador STOR_PERF_ADV_CONFIG_LOCALITY definido, o Storport inicializa os campos das estruturas de uma matriz de GROUP_AFFINITY. Essas estruturas correspondem às mensagens de redirecionamento que estão sendo usadas no momento. A matriz em si é baseada em zero, mas FirstRedirectionMessageNumber não é necessário ser zero. O miniporto aloca essa matriz e define messageTargets apontar para ela. O driver de miniporto deve alocar uma matriz GROUP_AFFINITY grande o suficiente para conter todas as máscaras de afinidade retornadas.
Observações
A versão atual dessa estrutura é definida por STOR_PERF_VERSION. Definir versão para esse valor permitirá que Flags especifique todas as otimizações com suporte.
A finalidade do sinalizador STOR_PERF_DPC_REDIRECTION é garantir que as CPUs individuais não sejam sobrecarregadas com o processamento de DPC. Quando esse sinalizador é definido, o processamento de DPC é distribuído por várias CPUs. Se STOR_PERF_DPC_REDIRECTION_CURRENT_CPU não estiver definido, o StorPort tentará agendar DPCs de conclusão de E/S na mesma CPU que originou a E/S.
Normalmente, um miniporto conclui solicitações de E/S em sua rotina HwStorStartIo e chama StorPortNotification com o tipo de notificação RequestComplete. Para processar a E/S dessa maneira, o miniporto deixará o sinalizador STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO definido no membro sinalizadores, permitindo que Storport ajuste o redirecionamento de DPC.
Para obter informações sobre como habilitar interrupções sinalizadas por mensagem para um dispositivo, consulte Habilitar interrupções de Message-Signaled no registro.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | storport.h (inclua Storport.h) |