警告
HalGetBusDataByOffsetと HalSetBusDataByOffsetは、下位互換性のために提供されていますが、「デバイス構成領域へのアクセス」で推奨されるメソッド 使用できない場合にのみ使用してください。
この関数は、公開された標準インターフェイスを使用して、動的に構成可能な I/O バス上のデバイスのバス構成データを設定します。
構文
NTHALAPI ULONG HalSetBusDataByOffset(
[in] BUS_DATA_TYPE BusDataType,
[in] ULONG BusNumber,
[in] ULONG SlotNumber,
[in] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
);
パラメーター
[in] BusDataType
設定するバス データ。 この値には PCIConfiguration を指定できます。 サポートされる型の上限は常に MaximumBusDataType です。
[in] BusNumber
同じ BusDataType の複数のバスを持つシステム内のバスの 0 から始まる番号とシステム割り当て番号。 この引数には、セグメント番号も含まれます。 セグメント番号を指定するには、(セグメント << 8) |BusNumber
[in] SlotNumber
デバイスの論理スロット番号または場所。 BusDataType として PCIConfiguration を指定した場合、この値はスロットと関数番号を組み合わせたPCI_SLOT_NUMBER値として指定されます。
[in] Buffer
BusDataType に固有の構成情報の呼び出し元が指定したバッファーへのポインター。
PCIConfiguration を指定した場合、バッファーには、指定した SlotNumber と関数番号の PCI 構成領域情報が含まれます。 指定したオフセットと長さは、指定する情報の量を決定します。 PCI 構成空間の特定のメンバーには読み取り専用の値があります。呼び出し元は、システム提供の読み取り専用メンバーの値を保持します。 Type-1 PCI デバイスの場合、HalSetBusDataByOffset は共通ヘッダー (構成領域の最初の 256 バイト) 内のレジスタへの書き込みを防ぐことに注意してください。
[in] Offset
呼び出し元が指定した構成値が開始されるPCI_COMMON_CONFIG構造体のバイト オフセット。 呼び出し元は、システム定義定数PCI_COMMON_HDR_LENGTHを使用して、PCI_COMMON_CONFIGのデバイス固有の領域を指定できます。
[in] Length
バッファー内のバイト数。
戻り値
戻り値は、構成スペースに書き込まれた実際の長さです。
備考
ドライバーは、異常な状況またはそのデバイスの性質がこのような呼び出しを必要とする場合は、この関数または HalSetBusData を呼び出すことができます。 たとえば、ドライバーは、初期化中にターゲットの中止を通知する場合、PCI 状態レジスタのビットをクリアするこれらの関数のいずれかを呼び出す可能性があります。 通常、ハードウェアまたはスタートアップ コードによってデバイスが適切に構成されます。
PCI 構成領域のデバイス固有領域にアクセスする場合、HalSetBusDataByOffset は、この関数が入力 Offset と Length で指定された範囲外のデータを読み取ったり書き込んだりすることは決してないことを保証します。また、入力長が正確にバイトまたは 2 バイトの単語であっても、この関数は要求された範囲外のデータにはアクセスしません。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddk.h (Ntddk.h を含む) |
関連項目
HalGetBusData の
HalGetBusDataByOffset の
HalTranslateBusAddress を する