PERF_CONFIGURATION_DATA結構 (storport.h)

PERF_CONFIGURATION_DATA 結構描述 StorPortInitializePerfOpts 例程所支援的效能優化。

語法

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;

成員

Version

結構的版本號碼。 查詢和初始化優化時,請設定此成員。

Size

結構的大小,設定為 sizeof (PERF_CONFIGURATION_DATA)

Flags

支援的旗標位 OR。 目前支援下列旗標:

旗標 意義
STOR_PERF_DPC_REDIRECTION 此旗標是用來指出 DPC 處理應該分散到多個 CPU 上。

Version 設定為 2 或 3 時,此旗標有效。

STOR_PERF_CONCURRENT_CHANNELS 此旗標用來指出支援 對 HwStorStartIo 例程的並行呼叫。 在 Windows 8 之前,迷你埠不得設定此旗標。

Version 設定為 2 或 3 時,此旗標有效。

STOR_PERF_INTERRUPT_MESSAGE_RANGES 此旗標用來指出支援中斷重新導向。 當您使用此旗標時,也必須設定STOR_PERF_DPC_REDIRECTION旗標。

Version 設定為 2 或 3 時,此旗標有效。

STOR_PERF_ADV_CONFIG_LOCALITY 此旗標是用來指出您應該使用與正確親和性之訊息群組相關的群組和遮罩。 當您使用此旗標時,也必須設定STOR_PERF_INTERRUPT_MESSAGE_RANGES和STOR_PERF_DPC_REDIRECTION旗標。

Version 設定為 3 時,此旗標有效。

STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO 此旗標用來指出迷你埠驅動程序會同時完成 I/O,並提交新的 I/O。 當您使用此旗標時,也必須設定STOR_PERF_DPC_REDIRECTION旗標。

Version 設定為 3 時,此旗標有效。 請參閱下面的<備註>。

STOR_PERF_DPC_REDIRECTION_CURRENT_CPU 此旗標用來指出您選擇加入所需的 DPC 重新導向 () 但 IO 重新導向選項會設定為要求 DPC 的 CPU,而不是將 IO 要求產生至 Storport 的 CPU。

當您使用此旗標時,也必須設定STOR_PERF_DPC_REDIRECTION旗標。

Version 設定為 4 時,此旗標有效。

STOR_PERF_NO_SGL 此旗標是用來指出小型埠不需要由 storport 驅動程式為 IO 要求緩衝區建立的 SCL。

Version 設定為 5 時,此旗標有效。

ConcurrentChannels

迷你埠驅動程式和裝置支援的 HwStorStartIo 例程並行呼叫數目。 只有在已設定STOR_PERF_CONCURRENT_CHANNELS旗標時,才能存取此成員。 在 Windows 8 之前,迷你埠不得設定此值。

FirstRedirectionMessageNumber

Flags 成員已設定STOR_PERF_INTERRUPT_MESSAGE_RANGES旗標時,迷你埠驅動程式會初始化中斷重新導向,以從這個訊息編號開始。 只有在設定STOR_PERF_INTERRUPT_MESSAGE_RANGES旗標時,才會存取此成員。

LastRedirectionMessageNumber

Flags 成員已設定STOR_PERF_INTERRUPT_MESSAGE_RANGES旗標時,迷你埠驅動程式會初始化中斷重新導向,以結束此訊息編號。 只有在設定STOR_PERF_INTERRUPT_MESSAGE_RANGES旗標時,才會存取此成員。

DeviceNode

Flags 成員已設定STOR_PERF_ADV_CONFIG_LOCALITY旗標時,Storport 會初始化此欄位,以包含迷你埠驅動程式裝置所在的 NUMA 節點編號。

Reserved

保留供系統使用。

MessageTargets

Flags 成員已設定STOR_PERF_ADV_CONFIG_LOCALITY旗標時,Storport 會在 GROUP_AFFINITY 數位的結構中初始化 的欄位。 這些結構會對應至目前使用的重新導向訊息。 陣列本身是以零起始,但 FirstRedirectionMessageNumber 不需要為零。 迷你埠會配置此陣列,並設定 MessageTargets 指向它。 迷你埠驅動程序必須配置足以容納所有傳回親和性遮罩 的GROUP_AFFINITY 數位。

備註

這個結構的目前版本是由 STOR_PERF_VERSION所定義。 將 Version 設定為此值可讓 Flags 指定所有支援的優化。

STOR_PERF_DPC_REDIRECTION旗標的目的是要確保個別 CPU 不會因為 DPC 處理而無法負荷。 設定此旗標時,DPC 處理會分散到多個CPU上。 如果未設定STOR_PERF_DPC_REDIRECTION_CURRENT_CPU,StorPort 會嘗試在產生 I/O 的相同 CPU 上排程 I/O 完成 DPC。

一般而言,迷你埠會在 HwStorStartIo 例程中完成 I/O 要求,並使用 RequestComplete 通知類型呼叫 StorPortNotification。 為了以這種方式處理 I/O,迷你埠會將STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO旗標設定在 Flags 成員中,讓 Storport 能夠調整 DPC 重新導向。

如需為裝置啟用訊息訊號中斷的相關信息,請參閱 在登錄中啟用 Message-Signaled 插斷

規格需求

需求
標頭 storport.h (包含 Storport.h)

另請參閱

StorPortInitializePerfOpts