共用方式為


PORT_CONFIGURATION_INFORMATION 結構 (storport.h)

PORT_CONFIGURATION_INFORMATION 包含主機總線配接器 (HBA) 的組態資訊。

語法

typedef struct _PORT_CONFIGURATION_INFORMATION {
  ULONG                                  Length;
  ULONG                                  SystemIoBusNumber;
  INTERFACE_TYPE                         AdapterInterfaceType;
  ULONG                                  BusInterruptLevel;
  ULONG                                  BusInterruptVector;
  KINTERRUPT_MODE                        InterruptMode;
  ULONG                                  MaximumTransferLength;
  ULONG                                  NumberOfPhysicalBreaks;
  ULONG                                  DmaChannel;
  ULONG                                  DmaPort;
  DMA_WIDTH                              DmaWidth;
  DMA_SPEED                              DmaSpeed;
  ULONG                                  AlignmentMask;
  ULONG                                  NumberOfAccessRanges;
  ACCESS_RANGE( )                          *AccessRanges[];
  PVOID                                  MiniportDumpData;
  PVOID                                  Reserved;
  UCHAR                                  NumberOfBuses;
  CCHAR                                  InitiatorBusId[8];
  BOOLEAN                                ScatterGather;
  BOOLEAN                                Master;
  BOOLEAN                                CachesData;
  BOOLEAN                                AdapterScansDown;
  BOOLEAN                                AtdiskPrimaryClaimed;
  BOOLEAN                                AtdiskSecondaryClaimed;
  BOOLEAN                                Dma32BitAddresses;
  BOOLEAN                                DemandMode;
  UCHAR                                  MapBuffers;
  BOOLEAN                                NeedPhysicalAddresses;
  BOOLEAN                                TaggedQueuing;
  BOOLEAN                                AutoRequestSense;
  BOOLEAN                                MultipleRequestPerLu;
  BOOLEAN                                ReceiveEvent;
  BOOLEAN                                RealModeInitialized;
  BOOLEAN                                BufferAccessScsiPortControlled;
  UCHAR                                  MaximumNumberOfTargets;
  UCHAR                                  SrbType;
  UCHAR                                  AddressType;
  UCHAR                                  ReservedUchars[2];
  ULONG                                  SlotNumber;
  ULONG                                  BusInterruptLevel2;
  ULONG                                  BusInterruptVector2;
  KINTERRUPT_MODE                        InterruptMode2;
  ULONG                                  DmaChannel2;
  ULONG                                  DmaPort2;
  DMA_WIDTH                              DmaWidth2;
  DMA_SPEED                              DmaSpeed2;
  ULONG                                  DeviceExtensionSize;
  ULONG                                  SpecificLuExtensionSize;
  ULONG                                  SrbExtensionSize;
  UCHAR                                  Dma64BitAddresses;
  BOOLEAN                                ResetTargetSupported;
  UCHAR                                  MaximumNumberOfLogicalUnits;
  BOOLEAN                                WmiDataProvider;
  STOR_SYNCHRONIZATION_MODEL             SynchronizationModel;
  PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE HwMSInterruptRoutine;
  INTERRUPT_SYNCHRONIZATION_MODE         InterruptSynchronizationMode;
  MEMORY_REGION                          DumpRegion;
  ULONG                                  RequestedDumpBufferSize;
  BOOLEAN                                VirtualDevice;
  UCHAR                                  DumpMode;
  UCHAR                                  DmaAddressWidth;
  ULONG                                  ExtendedFlags1;
  ULONG                                  MaxNumberOfIO;
  ULONG                                  MaxIOsPerLun;
  ULONG                                  InitialLunQueueDepth;
  ULONG                                  BusResetHoldTime;
  ULONG                                  FeatureSupport;
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;

成員

Length

PORT_CONFIGURATION_INFORMATION 結構的大小 ,以位元組為單位。 由 Storport 驅動程式初始化,此成員也會做為結構版本。

SystemIoBusNumber

HBA 所連接的 I/O 總線系統指派號碼。 迷你埠驅動程式不得修改此成員。 其值是系統指派的,因為平臺可能有數個指定 AdapterInterfaceType 的 I/O 總線。

AdapterInterfaceType

I/O 總線介面。 Storport 會將這個成員初始化為 HW_INITIALIZATION_DATA 結構中迷你埠驅動程式所指定的值。 迷你埠驅動程式不得修改此成員。

BusInterruptLevel

總線相對中斷要求層級。 Storport 不會假設 HBA 的中斷使用方式,因此預設值為零。 Storport 會初始化這個成員,而迷你埠驅動程式不得加以修改。

BusInterruptVector

HBA 傳回的總線相對向量。 Storport 不會假設 HBA 的中斷使用方式,因此預設值為零。 此成員與設定 BusInterruptLevel 成員為其 HBA 的驅動程序無關。 這與使用插斷向量之 I/O 總線類型的 HBA 相關,例如 PCIBus。 Storport 會初始化這個成員,而迷你埠驅動程式不得加以修改。

InterruptMode

指定 HBA 是否使用 LevelSensitiveLatched (有時稱為「邊緣觸發」) 中斷。 Storport 會將這個成員初始化為總線的適當值,例如 ,LevelSensitive for PCIBus。 Storport 會初始化這個成員,而迷你埠驅動程式不得加以修改。

MaximumTransferLength

HBA 可以在單一傳輸作業中傳輸的最大位元元數目。 根據預設,此成員的值會SP_UNINITIALIZED_VALUE,表示傳輸大小無限制。 如果 HBA 的傳輸支援有限,迷你埠驅動程式必須根據 HBA 的傳輸容量重設此成員。 如果迷你埠驅動程式的 HwStorInterrupt 例程無法停用 HBA 上的中斷,則可以在驅動程式開發期間調整此成員,以確保該迷你埠驅動程式 ISR 所花費的時間不會降低整體系統效能。

NumberOfPhysicalBreaks

記憶體配接器可以在單一傳輸 (中管理的最大實體頁面數目,換句話說,其散佈/收集支援的範圍) 。 根據預設,此成員的值會0x11。 迷你埠驅動程式必須根據記憶體適配卡的功能重設此成員。

DmaChannel

次級 HBA 所使用的 DMA 通道。 根據預設,此成員的值會SP_UNINITIALIZED_VALUE。 Storport 會初始化這個成員,而迷你埠驅動程式不得加以修改。

DmaPort

次級 HBA 所使用的 DMA 埠。 根據預設,此成員的值會SP_UNINITIALIZED_VALUE。 Storport 會初始化這個成員,而迷你埠驅動程式不得加以修改。

DmaWidth

如果 HBA 使用 DMA,則 DMA 傳輸的寬度。 根據預設,這個成員的值是零。 Storport 會初始化這個成員,而迷你埠驅動程式不得加以修改。

DmaSpeed

Eisa HBA 的 DMA 數據傳送速率。 Storport 會初始化這個成員,而迷你埠驅動程式不得加以修改。

AlignmentMask

遮罩,指出 HBA 傳輸作業所需的緩衝區對齊限制。 某些範例有效遮罩值是 0 (位元組對齊) 、1 個 (字對齊) 、3 (DWORD 對齊) 和 7 (雙 DWORD 對齊) 。 如果 HBA 支援散佈/收集,迷你埠驅動程式應該設定此遮罩。 wdm.h 中定義了下列允許的對齊遮罩值:

意義
FILE_BYTE_ALIGNMENT (0x00000000) 數據會依位元組對齊, (裝置) 沒有對齊需求
FILE_WORD_ALIGNMENT (0x00000001) 數據必須在2位元組界限上對齊。
FILE_LONG_ALIGNMENT (0x00000003) 數據必須在 4 位元組界限上對齊。
FILE_QUAD_ALIGNMENT (0x00000007) 數據必須對齊 8 位元組界限。
FILE_OCTA_ALIGNMENT (0x0000000f) 數據必須在16位元組界限上對齊。
FILE_32_BYTE_ALIGNMENT (0x0000001f) 數據必須對齊 32 位元組界限。
FILE_64_BYTE_ALIGNMENT (0x0000003f) 數據必須在64位元組界限上對齊。
FILE_128_BYTE_ALIGNMENT (0x0000007f) 數據必須對齊 128 位元組界限。
FILE_256_BYTE_ALIGNMENT (0x000000ff) 數據必須對齊 256 位元組界限。
FILE_512_BYTE_ALIGNMENT (0x000001ff) 數據必須對齊 512 位元組界限。

NumberOfAccessRanges

指定陣列中的 AccessRanges 元素數目。

AccessRanges

ACCESS_RANGE類型項目的陣列指標。 Storport 會配置存取範圍的記憶體,並初始化此成員。 迷你埠驅動程式不得修改此成員。

MiniportDumpData

損毀傾印或休眠期間所使用的傾印內容的指標。

Reserved

保留給系統使用 (預先 Windows 8) 。

NumberOfBuses

配接器所控制的總線數目。 根據預設,這個成員的值是零。 此成員的最大值為 SCSI_MAXIMUM_BUSES_PER_ADAPTER。 此成員可從 Windows 8 開始提供。

InitiatorBusId[8]

啟動器總線標識碼。 如果輸入 InitiatorBusId[0] 具有值SP_UNINITIALIZED_VALUE,則如果迷你埠驅動程式不需要使用特定值, (查詢 HBA 所決定) ,則迷你埠驅動程式可以指派預設值。 否則,迷你埠驅動程序應該盡可能使用埠驅動程式指派的任何非零值。 一般而言,此值系結於 為 MaximumNumberOfTargets 設定的值。

ScatterGather

為TRUE時,HBA 支援散佈/收集。 Storport 會將這個成員初始化為 TRUE ,因為其迷你埠驅動程式必須支援散佈/收集。 使用 Storport 的迷你埠驅動程式不得修改此值。 (注意:在 Windows Server 2008 R2 和 Windows 7 之前的 Windows 版本中,此成員會設定為 FALSE。在此情況下,迷你埠驅動程序必須將此成員設定為 TRUE。未將此成員設定為 TRUE 會導致 HBA 裝置無法啟動。)

Master

為 TRUE 時,HBA 是主要總線。 Storport 會將這個成員初始化為 TRUE ,因為其迷你埠驅動程式必須支援總線主控 DMA。 使用 Storport 的迷你埠驅動程式不得修改此值。 (注意:在 Windows Server 2008 R2 和 Windows 7 之前的 Windows 版本中,此成員會設定為 FALSE。在此情況下,迷你埠驅動程序必須將此成員設定為 TRUE。未將此成員設定為 TRUE 會導致 HBA 裝置無法啟動。)

CachesData

為TRUE時,HBA 會快取數據或維護周邊上的快取狀態。 當為 FALSE 時,HBA 不會快取數據或維護周邊上的快取狀態。 根據預設,這個成員的值是 FALSE。 如果這會重設為 TRUE,Storport 會在發生特定系統事件時通知迷你埠驅動程式,例如文件系統快取排清。

AdapterScansDown

Storport 會忽略此成員。

AtdiskPrimaryClaimed

Storport 不會使用此成員,而且其迷你埠驅動程式不得加以設定。

AtdiskSecondaryClaimed

Storport 不會使用此成員,而且其迷你埠驅動程式不得加以設定。

Dma32BitAddresses

為 TRUE 時,HBA 有 32 個位址行,而且可以存取實體位址大於0x00FFFFFF的記憶體。 Storport 會將這個成員初始化為 TRUE,因為其迷你埠驅動程式必須支援總線寬度 DMA。 迷你埠驅動程式不得修改此值,因為如果未設定 Dma64BitAddresses 的值,這是預設的 DMA 尋址。 注意:如果裝置硬體只支援 32 位位址,則必須將 Dma64BitAddresses 設定為 0。

DemandMode

指出系統 DMA 控制器是否應該針對需求模式進行程序設計,而不是單一循環作業。 Storport 會將這個成員初始化為 FALSE,因為它不支援從屬模式 DMA。 迷你埠驅動程式不得修改此值。

MapBuffers

指出 Storport 是否將 SRB 數據緩衝區地址對應至系統虛擬位址。 迷你埠驅動程式會將此成員設定為下列其中一個值,以控制 SRB 數據緩衝區地址的對應。

意義
STOR_MAP_NO_BUFFERS 僅針對SRB_FUNCTION_IO_CONTROL和SRB_FUNCTION_WMI對應緩衝區。
STOR_MAP_ALL_BUFFERS 已過時。 這個值的效果與STOR_MAP_NON_READ_WRITE_BUFFERS相同。
STOR_MAP_NON_READ_WRITE_BUFFERS 對應所有 IO 的緩衝區,但讀取和寫入要求除外。
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE 對應所有 IO 的緩衝區,包括讀取和寫入要求。 支援開機的迷你埠必須處理長度PAGE_SIZE的讀取或寫入要求。 這些讀取或寫入要求必須一律順利完成。 Storport 可能無法在低系統記憶體狀況下對應緩衝區。 在此情況下,SRB 中的 DataBuffer 成員會是 NULL。

NeedPhysicalAddresses

若為 TRUE,迷你埠驅動程式必須將虛擬地址轉譯為實體位址,如 HBA 所需。 Storport 會將這個成員初始化為 TRUE,因為其迷你埠驅動程式必須支援散佈/收集清單。 Miniport 不得修改此值。

TaggedQueuing

為TRUE,HBA 支援使用SCSI標籤佇列處理多個要求。 Storport 會將這個成員初始化為 TRUE ,因為其迷你埠驅動程式必須支持標記佇列。 迷你埠驅動程式不得修改此值。

AutoRequestSense

為TRUE時,HBA 支援自動要求感知。 Storport 會將這個成員初始化為 TRUE ,因為其迷你埠驅動程式必須支持自動要求感知。 迷你埠驅動程式不得修改此值。

MultipleRequestPerLu

為 TRUE 時,HBA 支援每個邏輯單元的多個要求。 Storport 會將這個成員初始化為 TRUE ,因為其迷你埠驅動程式必須支援一次發出給邏輯單元的多個要求。 迷你埠驅動程式不得修改此值。

ReceiveEvent

Storport 不會使用此成員,而且其迷你埠驅動程式不得加以設定。

RealModeInitialized

Storport 不會使用此成員,而且其迷你埠驅動程式不得加以設定。

BufferAccessScsiPortControlled

Storport 不會使用此成員,而且其迷你埠驅動程式不得加以設定。

MaximumNumberOfTargets

配接器可以控制的目標周邊數目。 根據預設,這個成員的值是SCSI_MAXIMUM_TARGETS_PER_BUS。 如果 HBA 的功能有限或值較大,迷你埠驅動程式可以將此成員重設為較小的值,表示 HBA 具有擴充總線功能。 此成員的最大值為 255。

SrbType

要傳送至迷你埠驅動程式的SRB類型。 從 Windows 8 開始提供。 這會設定為下列其中一個值:

意義
SRB_TYPE_SCSI_REQUEST_BLOCK 迷你埠驅動程式會接收標準 SRB。
SRB_TYPE_STORAGE_REQUEST_BLOCK 迷你埠驅動程式會收到擴充的 SRB。

AddressType

Storport 與迷你埠驅動程式之間所使用的地址類型。 從 Windows 8 開始提供。 這可以設定為下列值:

意義
STORAGE_ADDRESS_TYPE_BTL8 總線、目標和 LUN (BTL) 8 位尋址。

ReservedUchars[2]

保留給系統使用 (預先 Windows 8) 。

SlotNumber

保留供 Storport 使用。 迷你埠驅動程式不得修改此成員。

BusInterruptLevel2

保留供 Storport 使用。 迷你埠驅動程式不得修改此成員。

BusInterruptVector2

保留供 Storport 使用。 迷你埠驅動程式不得修改此成員。

InterruptMode2

保留供 Storport 使用。 迷你埠驅動程式不得修改此成員。

DmaChannel2

保留供 Storport 使用。 迷你埠驅動程式不得修改此成員。

DmaPort2

保留供 Storport 使用。 迷你埠驅動程式不得修改此成員。

DmaWidth2

保留供 Storport 使用。 迷你埠驅動程式不得修改此成員。

DmaSpeed2

保留供 Storport 使用。 迷你埠驅動程式不得修改此成員。

DeviceExtensionSize

迷你埠驅動程序針對其每個適配卡裝置擴充功能所需的大小,以位元組為單位。 迷你埠驅動程式會使用其裝置擴充功能作為驅動程序判斷 HBA 資訊的記憶體。 操作系統特定的埠驅動程式會在第一次配置擴充功能時,初始化每個裝置延伸模組,並以零填滿它。 它會在每個對迷你埠驅動程式的呼叫中傳遞 HBA 特定裝置擴充功能的指標。 指定的大小不包含每個邏輯單元記憶體要求的任何迷你埠驅動程式。 每個邏輯單元記憶體的大小是透過 SpecificLuExtensionSize 欄位來指定,本主題稍後會說明。

Storport 不會遵循 SCSIPort 的模型 (每當適配卡停止時重新初始化裝置擴充功能,因此後續呼叫 HwScsiFindAdapter 會收到零除裝置擴充功能) 。 相反地,Storport 只會在第一次配置裝置擴充功能時將裝置擴充功能重設為零,因此只有指定適配卡的第一次呼叫 HwStorFindAdapter 會收到零輸出的裝置擴充功能。 後續對 HwStorFindAdapter 和其他迷你埠函式的呼叫會接收裝置擴充功能,如迷你埠驅動程式上次修改一樣。 這可讓迷你埠驅動程序維持 隨插即用 (PnP) 停止和重新啟動之間適配卡狀態的知識,可能讓迷你埠驅動程序優化其初始化程式。

SpecificLuExtensionSize

迷你埠驅動程序針對其每個邏輯單元記憶體所需的位元組大小,如果有的話,處理大於 64K 的數據傳輸。 Storport 會將這個成員初始化為 StorPortInitialize 例程中所傳送HW_INITIALIZATION_DATA結構相同成員中的值。

如果迷你埠驅動程式未維護需要記憶體的每個 LU 資訊,請將此成員設定為零。 此值是以 HBA 能夠接收 32 位位址的假設為基礎,不論控制器可以實際支持什麼。 如果 LUN 或 SRB 擴充功能需要額外的空間來處理 64 位位址,則必須先對此值進行適當的調整,才能搭配 StorPortGetUncachedExtension 等例程使用它。

SrbExtensionSize

迷你埠驅動程序針對其每個要求記憶體所需的位元組大小,如果有的話,處理大於 64K 的數據傳輸。 Storport 會將這個成員初始化為 StorPortInitialize 例程中所傳送HW_INITIALIZATION_DATA結構相同成員中的值。

在呼叫 StorPortGetUncachedExtension 之前設定 此成員,以根據 NumberOfPhysicalBreaks 變更每個要求記憶體的大小。 如果迷你埠驅動程式未維護需要記憶體的每個SRB資訊,請將此成員設定為零。 此值是以 HBA 能夠接收 32 位位址的假設為基礎,不論控制器可以實際支持什麼。 如果 LUN 或 SRB 擴充功能需要額外的空間來處理 64 位位址,則必須先對此值進行適當的調整,才能搭配 ScsiPortGetUncachedExtension 等例程使用此值。

Dma64BitAddresses

如果裝置硬體只支援 32 位位址,則必須將 Dma64BitAddresses 設定為 0。 如果裝置支援 64 位位址,此欄位會指出 HBA 是否能夠存取大於 4 GB 的位址。

需要 Storport 配接器才能支持總線寬度 DMA。 因此,在64位或PAE計算機上,Storport會將 Dma64BitAddresses 初始化為 SCSI_DMA64_SYSTEM_SUPPORTED,指出適配卡可以存取完整的位址範圍。 當迷你埠驅動程式偵測到此值時,它們必須傳回相同成員中下表中的其中一個值,以向埠驅動程式指出迷你埠驅動程式支援 64 位 DMA。 如果迷你埠無法執行這項操作,它可能會嚴重降低配接器的效能。

意義
SCSI_DMA64_MINIPORT_SUPPORTED 迷你埠驅動程序支援 I/O 傳輸的 64 位實體位址。
SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED 迷你埠驅動程序支援完整的64位尋址。 這表示 I/O 要求可能有實體位址 > 4GB。 未快取的擴充功能、SenseInfo 和 Srb 擴充功能可能超過 4GB。 配置限制為 4GB 界限對齊,以防止它們跨越 4GB 界限。
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED 迷你埠驅動程序支援完整的64位尋址。 這表示 I/O 要求可能有實體位址 > 4GB。 未快取的擴充功能、SenseInfo 和 Srb 擴充功能可能超過 4GB。 配置沒有界限對齊需求。
SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED 迷你埠驅動程式支援單一 4GB 區域中的 64 位尋址。 這表示 I/O 要求、未快取的擴充功能、SenseInfo 和 Srb 擴充功能在單一 4GB 區域中可能有 4GB 的實體位址 > 。

ResetTargetSupported

已過時。 請勿使用此成員。

MaximumNumberOfLogicalUnits

HBA 可以控制的每個目標邏輯單元數目上限。 根據預設,這個成員的值是SCSI_MAXIMUM_LOGICAL_UNITS。 如果 HBA 的功能有限或值較大,迷你埠驅動程式可以將此成員重設為較小的值,表示 HBA 具有擴充功能。 這個成員的最大值是SCSI_MAXIMUM_LUNS_PER_TARGET。

WmiDataProvider

為TRUE時,迷你埠驅動程式會回應 Windows Management Instrumentation (WMI) 要求。 Storport 會將這個成員初始化為 TRUE ,因為其迷你埠驅動程式必須支援 WMI。 此外,光纖通道適配卡的迷你埠驅動程式預期可透過WMI支援 SAN 管理 HBA API,而且需要主機型 RAID 適配卡的迷你埠驅動程式,才能支援 RAID 管理介面。

迷你埠驅動程式不得修改此值。

SynchronizationModel

迷你埠驅動程序支援的 I/O 同步處理模型。 可能值如下所示:

意義
StorSynchronizeFullDuplex 迷你埠支援全雙工模式。
StorSynchronizeHalfDuplex 迷你埠支援半雙工模式。

HwMSInterruptRoutine

迷你埠驅動程式 HwMSInterruptRoutine 例程的指標,HBA 的任何迷你埠驅動程式都需要此例程,該驅動程式會產生訊息訊號中斷 (MSI) 。 如果 HBA 不會產生 MSI,迷你埠驅動程式會將此成員設定為 NULL

InterruptSynchronizationMode

指定中斷同步處理模式 的INTERRUPT_SYNCHRONIZATION_MODE 值。 中斷同步處理模式會決定埠驅動程式如何同步處理訊息信號中斷。

DumpRegion

MEMORY_REGION結構,描述小型埠驅動程式可以在損毀傾印或休眠期間使用的實體連續記憶體區域。

RequestedDumpBufferSize

要配置在傾印/休眠期間使用之未快取擴充功能的位元元組大小。

VirtualDevice

當為 TRUE 時,此裝置後方沒有實際硬體 (例如,沒有 DMA 物件、插斷、I/O 埠) 。 當 Storport 支援「虛擬」迷你埠,而不是控制實際硬體的迷你埠時,在某些情況下會有不同的行為。

DumpMode

指出傾印模式期間使用迷你埠。 它可以有下列其中一個值。

意義
DUMP_MODE_CRASH 傾印模式中的迷你埠用於損毀傾印。
DUMP_MODE_HIBER 傾印模式中的迷你埠用於休眠。
DUMP_MODE_MARK_MEMORY 傾印模式中的迷你埠用於標記所需的記憶體。
DUMP_MODE_RESUME 傾印模式中的迷你埠用於從休眠繼續。

DmaAddressWidth

配接器的 DMA 位址寬度。 提供此值時, Miniports 必須在FeatureSupport 中指定STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED。 指定的值必須 (0 <DmaAddressWidth<= 64) 。 您可以從 2004 版 Windows 10 開始使用此欄位。

ExtendedFlags1

保留供系統使用。

MaxNumberOfIO

HBA 支援的未處理 I/O 作業數目上限。 預設會由 Storport 設定為 1000。 如果 HBA 不支援 1000 個未處理的 I/O 作業,迷你埠應該調整為適當的較小值。

如果 HBA 可以支援超過 1000 個未處理的 I/O 作業,迷你埠可以將此成員增加到適配卡硬體所支援的任何值。 若要允許超過 1000 個未處理的 I/O 作業,HBA 必須支援下列其中一個 64 位 DMA 尋址方法,在 Dma64BitAddresses 字段中設定:

  • SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED
  • SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED
  • SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED

MaxIOsPerLun

LUN 上支援的 I/O 要求數目上限。 Storport 會將此值設定為預設值 255。 如果 LUN 不支援 255 個未處理的 I/O 要求,迷你埠應該將此成員調整為適當的較小值。 這個成員必須是 <= MaxNumberOfIO。 若要支援 MaxIOsPerLun> 255,SrbType 字段必須設定為 SRB_TYPE_STORAGE_REQUEST_BLOCK 從 Windows 8 開始提供。

InitialLunQueueDepth

初始 LUN I/O 佇列深度。 Storport 會將實體迷你埠的預設值設定為 20,虛擬迷你埠則設定為 250。 此成員會調整適配卡上所有 LUN 的初始佇列深度。 個別 LUN 的佇列深度是藉由呼叫 StorPortSetDeviceQueueDepth 來設定。 這個成員通常會設定為與 MaxIOsPerLun 相同的值。 從 Windows 8 開始提供。

BusResetHoldTime

偵測到重設之後,要暫停配接器的時間量,以微秒為單位。 如果總線重設之後不需要等候時間,請將此值設定為 0。 從 Windows 8 開始提供。

FeatureSupport

針對適配卡要求的 Storport 功能。 從 Windows 8 開始提供。 迷你埠驅動程式可以將此成員設定為下列任何值的位掩碼:

意義
STOR_ADAPTER_FEATURE_DEVICE_TELEMETRY 0x00000001 迷你埠驅動程式支援記憶體裝置遙測。
STOR_ADAPTER_FEATURE_STOP_UNIT_DURING_POWER_DOWN 0x00000002 在系統關機期間接收STOP_UNIT命令的迷你埠要求。
STOR_ADAPTER_UNCACHED_EXTENSION_NUMA_NODE_PREFERRED 0x00000004 迷你埠驅動程式希望從配接器 NUMA 節點配置 UncachedExtension。
STOR_ADAPTER_DMA_V3_PREFERRED 0x00000008 迷你埠驅動程式偏好針對適配卡使用 DMA V3 核心 API。
STOR_ADAPTER_FEATURE_ABORT_COMMAND 0x00000010 迷你埠驅動程式支援透過SRB_FUNCTION_ABORT_COMMAND中止未完成的命令。
STOR_ADAPTER_FEATURE_RICH_TEMPERATURE_THRESHOLD 0x00000020 適配卡支援比 SCSI SPC4 規格中定義的更豐富的溫度閾值資訊。
STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED 0x00000040 迷你埠驅動程式在適配卡的 DmaAddressWidth 中指定 DMA 位址寬度。 此值可以從 2004 版 Windows 10 開始使用。

備註

Storport 驅動程式會配置並初始化此結構、盡可能提供 HBA 特定的設定資訊,並將結構傳遞至迷你埠驅動程式的 HwStorFindAdapter 例程。 Storport 不支援非 PnP 裝置,因此 HwStorFindAdapter 不會搜尋適配卡。 其主體函式是初始化 PORT_CONFIGURATION_INFORMATION

規格需求

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

另請參閱

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth