Freigeben über


PERF_CONFIGURATION_DATA Struktur (storport.h)

Die PERF_CONFIGURATION_DATA Struktur beschreibt die Leistungsoptimierungen, die von der StorPortInitializePerfOpts Routine unterstützt werden.

Syntax

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;

Angehörige

Version

Die Versionsnummer der Struktur. Legen Sie dieses Element beim Abfragen und Initialisieren von Optimierungen fest.

Size

Die Größe der Struktur, die auf Sizeof(PERF_CONFIGURATION_DATA)festgelegt ist.

Flags

Bitweise ODER von unterstützten Flags. Derzeit werden die folgenden Flags unterstützt:

Flagge Bedeutung
STOR_PERF_DPC_REDIRECTION Dieses Flag wird verwendet, um anzugeben, dass die DPC-Verarbeitung über mehrere CPUs verteilt werden soll.

Dieses Kennzeichen ist gültig, wenn Version auf 2 oder 3 festgelegt ist.

STOR_PERF_CONCURRENT_CHANNELS Dieses Flag wird verwendet, um anzugeben, dass gleichzeitige Aufrufe an die HwStorStartIo Routine unterstützt werden. Vor Windows 8 dürfen Miniports diese Kennzeichnung nicht festlegen.

Dieses Kennzeichen ist gültig, wenn Version auf 2 oder 3 festgelegt ist.

STOR_PERF_INTERRUPT_MESSAGE_RANGES Dieses Flag wird verwendet, um anzugeben, dass die Unterbrechungsumleitung unterstützt wird. Wenn Sie dieses Kennzeichen verwenden, müssen Sie auch das STOR_PERF_DPC_REDIRECTION Flag festlegen.

Dieses Kennzeichen ist gültig, wenn Version auf 2 oder 3 festgelegt ist.

STOR_PERF_ADV_CONFIG_LOCALITY Dieses Kennzeichen wird verwendet, um anzugeben, dass Sie die Gruppe und das Maskieren verwenden sollten, die sich auf die Nachrichtengruppe mit der richtigen Affinität beziehen. Wenn Sie dieses Kennzeichen verwenden, müssen Sie auch die STOR_PERF_INTERRUPT_MESSAGE_RANGES und die STOR_PERF_DPC_REDIRECTION Flags festlegen.

Dieses Kennzeichen ist gültig, wenn Version auf 3 festgelegt ist.

STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO Diese Kennzeichnung wird verwendet, um anzugeben, dass der Miniporttreiber gleichzeitig mit der Übermittlung neuer E/Os-E/A-Vorgänge abgeschlossen wird. Wenn Sie dieses Kennzeichen verwenden, müssen Sie auch das STOR_PERF_DPC_REDIRECTION Flag festlegen.

Dieses Kennzeichen ist gültig, wenn Version auf 3 festgelegt ist. Weitere Informationen finden Sie weiter unten.

STOR_PERF_DPC_REDIRECTION_CURRENT_CPU Dieses Flag wird verwendet, um anzugeben, dass Sie sich für die DPC-Umleitung (erforderlich) entscheiden, aber die E/A-Umleitungsauswahl wird auf die CPU festgelegt, die den DPC anfordert, und nicht die CPU, die die E/A-Anforderung in Storport stammt.

Wenn Sie dieses Kennzeichen verwenden, müssen Sie auch das STOR_PERF_DPC_REDIRECTION Flag festlegen.

Dieses Kennzeichen ist gültig, wenn Version auf 4 festgelegt ist.

STOR_PERF_NO_SGL Dieses Flag wird verwendet, um anzugeben, dass miniport keine SGLs vom Storport-Treiber für einen E/A-Anforderungspuffer erstellt werden muss.

Dieses Kennzeichen ist gültig, wenn Version auf 5 festgelegt ist.

ConcurrentChannels

Die Anzahl der gleichzeitigen Aufrufe an die HwStorStartIo Routine, die der Miniporttreiber und die Geräteunterstützung unterstützen. Auf dieses Element wird nur zugegriffen, wenn das STOR_PERF_CONCURRENT_CHANNELS Flag festgelegt wurde. Vor Windows 8 dürfen Miniports diesen Wert nicht festlegen.

FirstRedirectionMessageNumber

Wenn der Flags Mitglied das STOR_PERF_INTERRUPT_MESSAGE_RANGES Flag festgelegt hat, initialisiert der Miniporttreiber die Unterbrechungsumleitung, um mit dieser Nachrichtennummer zu beginnen. Auf dieses Element wird nur zugegriffen, wenn das STOR_PERF_INTERRUPT_MESSAGE_RANGES Flag festgelegt ist.

LastRedirectionMessageNumber

Wenn der Flags Mitglied das STOR_PERF_INTERRUPT_MESSAGE_RANGES Flag festgelegt hat, initialisiert der Miniporttreiber die Unterbrechungsumleitung, um mit dieser Nachrichtennummer zu enden. Auf dieses Element wird nur zugegriffen, wenn das STOR_PERF_INTERRUPT_MESSAGE_RANGES Flag festgelegt ist.

DeviceNode

Wenn der Flags Mitglied das STOR_PERF_ADV_CONFIG_LOCALITY Flag festgelegt hat, initialisiert Storport dieses Feld so, dass es die NUMA-Knotennummer enthält, in der sich das Gerät des Miniporttreibers befindet.

Reserved

Reserviert für die Systemverwendung.

MessageTargets

Wenn das Flags-Element Element den STOR_PERF_ADV_CONFIG_LOCALITY Flag festgelegt hat, initialisiert Storport die Felder in den Strukturen eines GROUP_AFFINITY Arrays. Diese Strukturen entsprechen den derzeit verwendeten Umleitungsnachrichten. Das Array selbst ist nullbasiert, aber FirstRedirectionMessageNumber nicht null sein muss. Der Miniport weist dieses Array zu und legt MessageTargets- darauf fest. Der Miniporttreiber muss ein GROUP_AFFINITY Array zuweisen, das groß genug ist, um alle zurückgegebenen Affinitätsmasken zu enthalten.

Bemerkungen

Die aktuelle Version dieser Struktur wird durch STOR_PERF_VERSIONdefiniert. Wenn Sie Version auf diesen Wert festlegen, können Flags alle unterstützten Optimierungen angeben.

Der Zweck des STOR_PERF_DPC_REDIRECTION Flags besteht darin, sicherzustellen, dass einzelne CPUs nicht mit der DPC-Verarbeitung überfordert werden. Wenn dieses Kennzeichen festgelegt ist, wird die DPC-Verarbeitung über mehrere CPUs verteilt. Wenn STOR_PERF_DPC_REDIRECTION_CURRENT_CPU nicht festgelegt ist, versucht StorPort, E/A-Vervollständigungs-DPCs auf derselben CPU zu planen, die die E/A-Datei stammt.

In der Regel führt ein Miniport E/A-Anforderungen in dieser HwStorStartIo Routine durch und ruft StorPortNotification mit dem RequestComplete Benachrichtigungstyp auf. Bei der Verarbeitung von E/A auf diese Weise belässt der Miniport das STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO Flag, das im Flags Mitglied festgelegt ist, sodass Storport die DPC-Umleitung anpassen kann.

Informationen zum Aktivieren von Nachrichtensignalunterbruchs für ein Gerät finden Sie unter Aktivieren von Message-Signaled Interrupts in der Registrierung.

Anforderungen

Anforderung Wert
Header- storport.h (include Storport.h)

Siehe auch

StorPortInitializePerfOpts