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 是否使用 LevelSensitive 或 Latched (有時稱為「邊緣觸發」) 中斷。 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) |