共用方式為


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

Buffer 中的位元元組數目。

傳回值

傳回值是寫入設定空間的實際長度。

言論

如果異常情況或其裝置的性質需要這類呼叫,驅動程式可以呼叫此函式或 HalSetBusData。 例如,如果驅動程式在初始化期間發出目標中止訊號,則驅動程式可能會呼叫其中一個函式來清除PCI狀態緩存器中的某個位。 通常,硬體或啟動程式代碼會適當地設定裝置。

存取PCI組態空間的裝置特定區域時,HalSetBusDataByOffset 保證此函式永遠不會讀取或寫入輸入 Offset 和 Length 所指定範圍以外的數據,即使輸入 Length 正好是位元組或雙位元組字,此函式絕不會存取要求範圍以外的任何數據。

要求

要求 價值
標頭 ntddk.h (包括 Ntddk.h)

另請參閱

BUS_DATA_TYPE

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG