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 の割り込み使用に関する想定は行われません。そのため、既定値は 0 です。 Storport は、このメンバーを初期化し、ミニポート ドライバーは変更しないでください。
BusInterruptVector
HBA によって返されるバス相対ベクトル。 Storport では、HBA の割り込み使用に関する想定は行われません。そのため、既定値は 0 です。 このメンバーは、HBA の BusInterruptLevel メンバーを設定するドライバーとは無関係です。 これは、PCIBusなど、割り込みベクトルを使用する I/O バスの種類の HBA に関連します。 Storport は、このメンバーを初期化し、ミニポート ドライバーは変更しないでください。
InterruptMode
HBA で LevelSensitive 使用するか、ラッチされた ("エッジ トリガー" とも呼ばれる) 割り込みを 使用するかを指定します。 Storport は、バスとデバイスの適切な値にこのメンバーを初期化します。たとえば、PCIBus のLevelSensitive します。 Storport は、このメンバーを初期化し、ミニポート ドライバーは変更しないでください。
MaximumTransferLength
1 回の転送操作で HBA が転送できる最大バイト数。 既定では、このメンバーの値は SP_UNINITIALIZED_VALUE であり、転送の最大サイズは無制限であることを示します。 HBA の転送サポートが制限されている場合、ミニポート ドライバーは、HBA の転送容量に従ってこのメンバーをリセットする必要があります。 ミニポート ドライバーの HwStorInterrupt ルーチンが HBA の割り込みを無効にできない場合、このメンバーは、ミニポート ドライバーの ISR で費やされた時間がシステムの全体的なパフォーマンスを低下させないように、ドライバーの開発中に調整できます。
NumberOfPhysicalBreaks
記憶域アダプターが 1 回の転送で管理できる物理ページの最大数 (つまり、その散布/収集サポートの範囲)。 既定では、このメンバーの値は0x11です。 ミニポート ドライバーは、記憶域アダプターの機能に従ってこのメンバーをリセットする必要があります。
DmaChannel
下位 HBA によって使用される DMA チャネル。 既定では、このメンバーの値はSP_UNINITIALIZED_VALUE。 Storport は、このメンバーを初期化し、ミニポート ドライバーは変更しないでください。
DmaPort
下位 HBA によって使用される DMA ポート。 既定では、このメンバーの値はSP_UNINITIALIZED_VALUE。 Storport は、このメンバーを初期化し、ミニポート ドライバーは変更しないでください。
DmaWidth
HBA が DMA を使用する場合の DMA 転送の幅。 既定では、このメンバーの値は 0 です。 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-type 要素の配列へのポインター。 Storport はアクセス範囲にメモリを割り当て、このメンバーを初期化します。 ミニポート ドライバーは、このメンバーを変更できません。
MiniportDumpData
クラッシュダンプまたは休止中に使用されるダンプ コンテキストへのポインター。
Reserved
システム用に予約されています (Windows 8 より前)。
NumberOfBuses
アダプターによって制御されるバスの数。 既定では、このメンバーの値は 0 です。 このメンバーの最大値は SCSI_MAXIMUM_BUSES_PER_ADAPTER です。 このメンバーは、Windows 8 以降で使用できます。
InitiatorBusId[8]
イニシエーター バス ID。 InitiatorBusId[0] の入力 値がSP_UNINITIALIZED_VALUE場合、ミニポート ドライバーは、HBA の HBA のクエリによって決定された特定の値を使用する必要がない場合、既定値を割り当てることができます。 それ以外の場合、ミニポート ドライバーは、可能な場合は、ポート ドライバーによって割り当てられた 0 以外の値を使用する必要があります。 通常、この値は、MaximumNumberOfTargetsに設定された値によって制限されます。
ScatterGather
TRUE 場合、HBA は散布図/収集をサポートします。 Storport は、ミニポート ドライバーが散布図/収集をサポートする必要があるため、TRUE このメンバーを初期化します。 Storport で動作するミニポート ドライバーは、この値を変更しないでください。 (注: Windows Server 2008 R2 および Windows 7 より前のバージョンの Windows では、このメンバーは FALSE に設定されています。この場合、ミニポート ドライバーは、このメンバーを TRUE に設定する必要があります。このメンバーを TRUE に設定しないと、HBA デバイスの起動に失敗します)。
Master
TRUE 場合、HBA はマスター バスです。 Storport は、ミニポート ドライバーがバス マスタリング DMA をサポートする必要があるため、このメンバーを TRUE 初期化します。 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 は、ミニポート ドライバーがバス幅 DMA をサポートする必要があるため、TRUE このメンバーを初期化します。 ミニポート ドライバーは、Dma64BitAddresses の値が設定されていない場合、既定の DMA アドレス指定であるため、この値を変更しないでください。 注: デバイス ハードウェアで 32 ビット アドレスのみがサポートされている場合は、Dma64BitAddresses を 0 に設定する必要があります。
DemandMode
システム DMA コントローラーを、単一サイクル操作ではなく、需要モード用にプログラムする必要があるかどうかを示します。 Storport は、下位モード DMA をサポートしていないため、このメンバーを FALSE 初期化します。 ミニポート ドライバーは、この値を変更することはできません。
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 に初期化します。 ミニポートは、この値を変更することはできません。
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 情報の記憶域として、そのデバイス拡張機能を使用します。 オペレーティング システム固有のポート ドライバーは、最初に拡張機能を割り当てるときに、各デバイス拡張機能を 1 回初期化し、ゼロで埋めます。 ミニポート ドライバーへのすべての呼び出しで HBA 固有のデバイス拡張機能へのポインターを渡します。 指定されたサイズには、ミニポート ドライバーが要求した論理ユニットごとの記憶域は含まれません。 論理ユニットごとのストレージのサイズは、このトピックで後述 SpecificLuExtensionSize フィールドを使用して指定します。
Storport は SCSIPort のモデルに従いません (アダプターが停止するたびにデバイス拡張機能を再初期化するため、hwScsiFindAdapterへの後続の呼び出しは、ゼロアウトデバイス拡張機能を受け取ります)。 代わりに、Storport は最初に割り当てられたときにのみデバイス拡張機能を 0 にリセットするため、特定のアダプターに対する HwStorFindAdapterをする最初の呼び出しのみがゼロアウト デバイス拡張機能を受け取ります。 HwStorFindAdapter およびその他のミニポート関数 後続の呼び出しは、ミニポート ドライバーによって最後に変更されたデバイス拡張機能を受け取ります。 これにより、ミニポート ドライバーは、プラグ アンド プレイ (PnP) の停止と再起動の間のアダプターの状態に関する知識を維持することができます。場合によっては、ミニポート ドライバーが初期化手順を最適化できるようにします。
SpecificLuExtensionSize
ミニポート ドライバーが 64K を超えるデータ転送を処理するために必要な論理ユニットごとの記憶域 (存在する場合) に必要なバイト単位のサイズ。 Storport はこのメンバーを、StorPortInitialize ルーチンで送信された HW_INITIALIZATION_DATA 構造体の同じメンバー内の値に初期化します。
ミニポート ドライバーが記憶域を必要とする LU ごとの情報を維持しない場合は、このメンバーを 0 に設定します。 この値は、コントローラーが実際にサポートできる内容に関係なく、HBA が 32 ビット アドレスを受け取ることができるという前提に基づいています。 64 ビット アドレスを処理するために LUN または SRB 拡張機能に追加の領域が必要な場合は、StorPortGetUncachedExtension などのルーチンで使用する前に、この値に適切な調整を行う必要があります。
SrbExtensionSize
64K を超えるデータ転送を処理するために、ミニポート ドライバーが要求ごとの記憶域に必要なバイト単位のサイズ (存在する場合)。 Storport はこのメンバーを、StorPortInitialize ルーチンで送信された HW_INITIALIZATION_DATA 構造体の同じメンバー内の値に初期化します。
StorPortGetUncachedExtension を呼び出す前に、このメンバーを設定して、NumberOfPhysicalBreaks に基づいて要求ごとのストレージのサイズ変更します。 ミニポート ドライバーが記憶域を必要とする SRB ごとの情報を維持しない場合は、このメンバーを 0 に設定します。 この値は、コントローラーが実際にサポートできる内容に関係なく、HBA が 32 ビット アドレスを受け取ることができるという前提に基づいています。 64 ビット アドレスを処理するために LUN または SRB 拡張機能に追加の領域が必要な場合は、ScsiPortGetUncachedExtension などのルーチンで使用する前に、この値に適切な調整を行う必要があります。
Dma64BitAddresses
デバイス ハードウェアが 32 ビット アドレスのみをサポートしている場合は、Dma64BitAddresses を 0 に設定する必要があります。 デバイスが 64 ビット アドレスをサポートしている場合、このフィールドは、HBA が 4 GB を超えるアドレスにアクセスできるかどうかを示します。
バス幅 DMA をサポートするには、Storport アダプターが必要です。 そのため、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 要求の物理アドレスが 4 GB > 可能性があることを示します。 キャッシュされていない拡張機能、SenseInfo、および Srb 拡張機能は、4 GB を超える場合があります。 割り当ては、4 GB 境界を越えないように、4 GB の境界アラインメントに制限されます。 |
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED | ミニポート ドライバーは、完全な 64 ビット アドレス指定をサポートしています。 これは、I/O 要求の物理アドレスが 4 GB > 可能性があることを示します。 キャッシュされていない拡張機能、SenseInfo、および Srb 拡張機能は、4 GB を超える場合があります。 割り当てには境界アラインメント要件はありません。 |
SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED | ミニポート ドライバーは、単一の 4 GB リージョンで 64 ビット アドレス指定をサポートします。 これは、I/O 要求、キャッシュされていない拡張機能、SenseInfo、および Srb 拡張機能が、1 つの 4 GB リージョン > 4 GB の物理アドレスを持つ可能性があることを示します。 |
ResetTargetSupported
廃れた。 このメンバーは使用しないでください。
MaximumNumberOfLogicalUnits
HBA が制御できるターゲットあたりの論理ユニットの最大数。 既定では、このメンバーの値はSCSI_MAXIMUM_LOGICAL_UNITS。 ミニポート ドライバーは、HBA の機能が制限されている場合、またはより大きな値に HBA が拡張機能を持っていることを示す場合は、小さい値にこのメンバーをリセットできます。 このメンバーの最大値はSCSI_MAXIMUM_LUNS_PER_TARGET。
WmiDataProvider
TRUE すると、ミニポート ドライバーは Windows 管理インストルメンテーション (WMI) 要求に応答します。 Storport は、ミニポート ドライバーが WMI をサポートする必要があるため、TRUE このメンバーを初期化します。 さらに、ファイバー チャネル アダプターのミニポート ドライバーは、WMI を介して SAN 管理 HBA API をサポートすることが期待され、RAID 管理インターフェイスをサポートするにはホスト ベースの RAID アダプターのミニポート ドライバーが必要です。
ミニポート ドライバーは、この値を変更することはできません。
SynchronizationModel
ミニポート ドライバーがサポートする I/O 同期モデル。 指定できる値は次のとおりです。
価値 | 意味 |
---|---|
StorSynchronizeFullDuplex の | ミニポートは、全二重モードをサポートしています。 |
StorSynchronizeHalfDuplex の | ミニポートは、半二重モードをサポートしています。 |
HwMSInterruptRoutine
ミニポート ドライバーの HwMSInterruptRoutine ルーチンへのポインター。これは、メッセージ通知割り込み (MSI) を生成する HBA のミニポート ドライバーに必要です。 ミニポート ドライバーは、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 アドレスの幅。 ミニポートは、この値を指定するときに FeatureSupport でSTOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIEDを指定する必要があります。 指定する値は (0 <DmaAddressWidth<= 64) である必要があります。 このフィールドは、Windows 10 バージョン 2004 以降で使用できます。
ExtendedFlags1
システム用に予約されています。
MaxNumberOfIO
HBA でサポートされている未処理の I/O 操作の最大数。 Storport では、既定値は 1000 に設定されています。 HBA が 1000 の未処理の I/O 操作をサポートしていない場合、ミニポートはこれを適切な小さい値に調整する必要があります。
HBA が 1,000 を超える未処理の I/O 操作をサポートできる場合、ミニポートはアダプター ハードウェアでサポートされている任意の値にこのメンバーを増やすことができます。 1,000 を超える未処理の I/O 操作を許可するには、HBA は、Dma64BitAddresses フィールドに設定された、次の 64 ビット DMA アドレス指定メソッドのいずれかをサポートする必要があります。
- 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 アドレスの幅を指定しました。 この値は、Windows 10 バージョン 2004 以降で使用できます。 |
備考
Storport ドライバーは、この構造体を割り当てて初期化し、できるだけ多くの HBA 固有の構成情報を提供し、ミニポート ドライバーの HwStorFindAdapter ルーチンに構造体を渡します。 Storport は PnP 以外のデバイスをサポートしていないため、HwStorFindAdapter はアダプターを検索しません。 その主な機能は、PORT_CONFIGURATION_INFORMATION初期化することです。
必要条件
要件 | 価値 |
---|---|
ヘッダー | storport.h (Srb.h、Storport.h、Strmini.h を含む) |
関連項目
HwStorFindAdapterの
INTERRUPT_SYNCHRONIZATION_MODE
StorPortGetUncachedExtensionの
StorPortInitializeの
StorPortSetDeviceQueueDepthの