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 の割り込み使用量に関する仮定は行われません。そのため、既定値は 0 です。 Storport は、このメンバーを初期化し、ミニポート ドライバーは変更しないでください。

BusInterruptVector

HBA によって返されるバス相対ベクトル。 Storport では、HBA の割り込み使用量に関する仮定は行われません。そのため、既定値は 0 です。 このメンバーは、 HBA の BusInterruptLevel メンバーを設定したドライバーには関係ありません。 これは、PCIBus などの割り込みベクトルを使用する I/O バスの種類の HBA に関連します。 Storport は、このメンバーを初期化し、ミニポート ドライバーは変更しないでください。

InterruptMode

HBA で LevelSensitive または Latched ("エッジ トリガー" と呼ばれることもあります) 割り込みを使用するかどうかを指定します。 Storport は、バスとデバイスの適切な値 (PCIBusLevelSensitive など) にこのメンバーを初期化します。 Storport は、このメンバーを初期化し、ミニポート ドライバーは変更しないでください。

MaximumTransferLength

HBA が 1 回の転送操作で転送できる最大バイト数。 既定では、このメンバーの値は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型要素の配列へのポインター。 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構造体の同じメンバー内の値に対して、このメンバーを初期化します。

NumberOfPhysicalBreaks に基づいて要求ごとのストレージのサイズを変更するには、StorPortGetUncachedExtension を呼び出す前にこのメンバーを設定します。 ミニポート ドライバーが記憶域を必要とする 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 ミニポート ドライバーは、1 つの 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 Management Instrumentation (WMI) 要求に応答します。 Storport は、ミニポート ドライバーが WMI をサポートする必要があるため、このメンバーを TRUE に 初期化します。 さらに、ファイバー チャネル アダプターのミニポート ドライバーは、WMI を介して SAN 管理 HBA API をサポートすることが期待され、RAID 管理インターフェイスをサポートするにはホスト ベースの RAID アダプターのミニポート ドライバーが必要です。

ミニポート ドライバーは、この値を変更することはできません。

SynchronizationModel

ミニポート ドライバーがサポートする I/O 同期モデル。 使用できる値は次のとおりです。

意味
StorSynchronizeFullDuplex ミニポートは、全二重モードをサポートしています。
StorSynchronizeHalfDuplex ミニポートは、半二重モードをサポートしています。

HwMSInterruptRoutine

メッセージ通知割り込み (MSI) を生成する HBA のミニポート ドライバーに必要なミニポート ドライバーの HwMSInterruptRoutine ルーチンへのポインター。 ミニポート ドライバーは、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を初期化することです。

要件

要件
Header storport.h (Srb.h、Storport.h、Strmini.h を含む)

こちらもご覧ください

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth