共用方式為


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 數個總線的以零起始和系統指派的總線數目。 這個自變數也會包含區段編號。 若要指定區段編號,請使用區段 << 8 () |BusNumber

[in] SlotNumber

裝置的邏輯插槽號碼或位置。 如果您將PCIConfiguration指定為 BusDataType,這個值是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 位元組字,此函式永遠不會存取要求範圍以外的任何數據。

規格需求

需求
標頭 ntddk.h (包含 Ntddk.h)

另請參閱

BUS_DATA_TYPE

HalGetBusData

HalSetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG