Condividi tramite


struttura PERF_CONFIGURATION_DATA (storport.h)

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

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;

Members

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:

Contrassegno 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 La versione è impostata 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 La versione è impostata 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 di STOR_PERF_DPC_REDIRECTION.

Questo flag è valido quando La versione è impostata 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 STOR_PERF_DPC_REDIRECTION.

Questo flag è valido quando La versione è impostata 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 di STOR_PERF_DPC_REDIRECTION.

Questo flag è valido quando La versione è impostata su 3. Vedere la sezione Note riportata 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 il DPC e non sulla CPU che ha origine la richiesta di I/O in Storport.

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

Questo flag è valido quando La versione è impostata su 4.

STOR_PERF_NO_SGL Questo flag viene usato per indicare che il miniport non richiede la creazione di elenchi di archiviazione con estensione sgls da parte del driver storport per un buffer delle richieste di I/O.

Questo flag è valido quando La versione è impostata su 5.

ConcurrentChannels

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

FirstRedirectionMessageNumber

Quando il membro Flags ha il flag STOR_PERF_INTERRUPT_MESSAGE_RANGES impostato, il driver miniport inizializza il reindirizzamento degli 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 Flags ha il flag STOR_PERF_INTERRUPT_MESSAGE_RANGES impostato, il driver miniport inizializza il reindirizzamento di interrupt per terminare con questo numero di messaggio. Questo membro è accessibile solo quando è impostato il flag di STOR_PERF_INTERRUPT_MESSAGE_RANGES.

DeviceNode

Quando il membro Flags ha il flag STOR_PERF_ADV_CONFIG_LOCALITY impostato, 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'utilizzo nel sistema.

MessageTargets

Quando il membro Flags 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 è basata su zero, ma FirstRedirectionMessageNumber non deve essere zero. Il miniport alloca questa matrice e imposta MessageTargets in modo che punti a tale matrice. Il driver miniport deve allocare una matrice di GROUP_AFFINITY abbastanza grande per contenere tutte le maschere di affinità restituite.

Commenti

La versione corrente di questa struttura è definita da STOR_PERF_VERSION. L'impostazione di Version su questo valore consentirà a 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 avuto origine l'I/O.

In genere, un miniport completa le richieste di I/O nella 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 STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO impostato nel membro Flag che consente a Storport di modificare il reindirizzamento DPC.

Per informazioni sull'abilitazione di interruzioni segnalate dai messaggi per un dispositivo, vedere Abilitazione di interrupt Message-Signaled nel Registro di sistema.

Requisiti

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

Vedi anche

StorPortInitializePerfOpts