次の方法で共有


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 使用するか、ラッチされた ("エッジ トリガー" とも呼ばれる) 割り込みを 使用するかを指定します。 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 を含む)

関連項目

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth