Condividi tramite


struttura PERF_CONFIGURATION_DATA (storport.h)

La struttura PERF_CONFIGURATION_DATA descrive le ottimizzazioni delle prestazioni supportate dalla routine StorPortInitializePerfOpt s.

Sintassi

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;

Membri

Version

Numero di versione della struttura. Impostare questo membro durante l'esecuzione di query e l'inizializzazione delle ottimizzazioni.

Size

Dimensione della struttura, impostata su sizeof(PERF_CONFIGURATION_DATA).

Flags

Or bit per bit dei flag supportati. Attualmente sono supportati i flag seguenti:

Bandiera Significato
STOR_PERF_DPC_REDIRECTION Questo flag viene usato per indicare che l'elaborazione DPC deve essere distribuita su più CPU.

Questo flag è valido quando versione è impostato su 2 o 3.

STOR_PERF_CONCURRENT_CHANNELS Questo flag viene usato per indicare che sono supportate le chiamate simultanee alla routine HwStorStartIo. Prima di Windows 8, i miniport non devono impostare questo flag.

Questo flag è valido quando versione è impostato su 2 o 3.

STOR_PERF_INTERRUPT_MESSAGE_RANGES Questo flag viene usato per indicare che il reindirizzamento degli interrupt è supportato. Quando si usa questo flag, è necessario impostare anche il flag STOR_PERF_DPC_REDIRECTION.

Questo flag è valido quando versione è impostato su 2 o 3.

STOR_PERF_ADV_CONFIG_LOCALITY Questo flag viene usato per indicare che è necessario usare il gruppo e la maschera relativi al gruppo di messaggi con l'affinità corretta. Quando si usa questo flag, è necessario impostare anche il STOR_PERF_INTERRUPT_MESSAGE_RANGES e i flag di STOR_PERF_DPC_REDIRECTION.

Questo flag è valido quando versione è impostato su 3.

STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO Questo flag viene usato per indicare che il driver miniport completerà i/o simultaneamente con l'invio di nuovi I/O. Quando si usa questo flag, è necessario impostare anche il flag STOR_PERF_DPC_REDIRECTION.

Questo flag è valido quando versione è impostato su 3. Vedere le osservazioni riportate di seguito.

STOR_PERF_DPC_REDIRECTION_CURRENT_CPU Questo flag viene usato per indicare che si sceglie il reindirizzamento DPC (obbligatorio), ma la scelta di reindirizzamento di I/O è impostata sulla CPU che richiede DPC e non sulla CPU che ha originato la richiesta di I/O in Storport.

Quando si usa questo flag, è necessario impostare anche il flag STOR_PERF_DPC_REDIRECTION.

Questo flag è valido quando versione è impostato su 4.

STOR_PERF_NO_SGL Questo flag viene usato per indicare che il miniport non richiede la creazione degli ELENCHI di archiviazione con il driver storport per un buffer delle richieste di I/O.

Questo flag è valido quando versione è impostato su 5.

ConcurrentChannels

Numero di chiamate simultanee alla routine HwStorStartIo che il driver miniport e il supporto del dispositivo. Questo membro è accessibile solo quando è stato impostato il flag STOR_PERF_CONCURRENT_CHANNELS. Prima di Windows 8, i miniport non devono impostare questo valore.

FirstRedirectionMessageNumber

Quando il membro flag flag STOR_PERF_INTERRUPT_MESSAGE_RANGES, il driver miniport inizializza il reindirizzamento interrupt per iniziare con questo numero di messaggio. Questo membro è accessibile solo quando è impostato il flag di STOR_PERF_INTERRUPT_MESSAGE_RANGES.

LastRedirectionMessageNumber

Quando il membro Flag ha impostato il flag STOR_PERF_INTERRUPT_MESSAGE_RANGES, il driver miniport inizializza il reindirizzamento di interrupt alla fine con questo numero di messaggio. Questo membro è accessibile solo quando è impostato il flag di STOR_PERF_INTERRUPT_MESSAGE_RANGES.

DeviceNode

Quando il membro Flag ha impostato il flag STOR_PERF_ADV_CONFIG_LOCALITY, Storport inizializza questo campo in modo da contenere il numero di nodo NUMA in cui risiede il dispositivo del driver miniport.

Reserved

Riservato per l'uso del sistema.

MessageTargets

Quando il membro Flag ha il flag STOR_PERF_ADV_CONFIG_LOCALITY impostato, Storport inizializza i campi di nelle strutture di una matrice di GROUP_AFFINITY. Queste strutture corrispondono ai messaggi di reindirizzamento attualmente in uso. La matrice stessa è in base zero, ma FirstRedirectionMessageNumber non è necessario essere zero. Il miniport alloca questa matrice e imposta MessageTargets in modo che punti a tale matrice. Il driver miniport deve allocare una matrice GROUP_AFFINITY abbastanza grande da contenere tutte le maschere di affinità restituite.

Osservazioni

La versione corrente di questa struttura è definita da STOR_PERF_VERSION. L'impostazione di versione su questo valore consentirà flag di specificare tutte le ottimizzazioni supportate.

Lo scopo del flag di STOR_PERF_DPC_REDIRECTION è garantire che le singole CPU non vengano sovraccaricate con l'elaborazione DPC. Quando questo flag è impostato, l'elaborazione DPC viene distribuita su più CPU. Se STOR_PERF_DPC_REDIRECTION_CURRENT_CPU non è impostato, StorPort tenterà di pianificare i controller di dominio di completamento di I/O nella stessa CPU che ha originato l'I/O.

In genere, un miniport completa le richieste di I/O in routine HwStorStartIo e chiama StorPortNotification con il tipo di notifica RequestComplete. Per l'elaborazione di I/O in questo modo, il miniport lascerà il flag di STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO impostato nel Flag membro che consente a Storport di modificare il reindirizzamento DPC.

Per informazioni sull'abilitazione di interrupt con segnalazione dei messaggi per un dispositivo, vedere Abilitazione di interrupt Message-Signaled nel Registro di sistema.

Fabbisogno

Requisito Valore
intestazione storport.h (include Storport.h)

Vedere anche

storPortInitializePerfOpts