次の方法で共有


HalSetBusDataByOffset 関数 (ntddk.h)

警告

HalGetBusDataByOffsetHalSetBusDataByOffset は下位互換性のために提供されていますが、「 デバイス構成空間へのアクセス 」で推奨されるメソッドを使用できない場合にのみ使用してください。

この関数は、公開された標準インターフェイスを使用して、動的に構成可能な 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 構成領域情報が含まれます。 指定した Offset と Length によって、指定する情報の量が決まります。 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 で指定された範囲外のデータを読み取ったり書き込んだりすることはありません。また、入力 Length が正確にバイトまたは 2 バイトの単語であっても、この関数は要求された範囲外のデータにアクセスすることはありません。

要件

要件
Header ntddk.h (Ntddk.h を含む)

こちらもご覧ください

BUS_DATA_TYPE

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG