次の方法で共有


HalGetBusDataByOffset 関数 (ntddk.h)

警告

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

この関数は、I/O バス上のスロットまたはアドレスに関する情報をオフセットから取得します。

構文

NTHALAPI ULONG HalGetBusDataByOffset(
  [in] BUS_DATA_TYPE BusDataType,
  [in] ULONG         BusNumber,
  [in] ULONG         SlotNumber,
  [in] PVOID         Buffer,
  [in] ULONG         Offset,
  [in] ULONG         Length
);

パラメーター

[in] BusDataType

取得するバス データ。 サポートされているバスの種類の上限は常に MaximumBusDataType です。 サポートされている BusDataType は、 PCIConfiguration 他のすべての型は非推奨です。

[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

バッファー内の最大バイト数。

戻り値

戻り値は、構成スペースから読み取られた実際の長さです。

注釈

デバイス ドライバーは、初期化中にこの関数を呼び出して、特定の I/O バス上でデバイスを見つけます。 返されるバス型固有の構成データは、HalTranslateBusAddress などの他の構成および初期化関数の後の呼び出しで使用できます。

PCI 構成領域のデバイス固有の領域にアクセスする場合、HalGetBusDataByOffset は、この関数が入力 Offset と Length で指定された範囲外のデータを読み取ったり書き込んだりすることはありません。 入力 Length が 1 バイトまたは 2 バイトの単語である場合でも、この関数は要求された範囲外のデータにアクセスすることはありません。

要件

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

こちらもご覧ください

BUS_DATA_TYPE

HalGetBusData

HalSetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG