HalSetBusDataByOffset 函式 (ntddk.h)
警告
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 數個總線的以零為基底和系統指派的總線數目。 這個自變數也會包含區段編號。 若要指定區段編號,請使用 (區段 << 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保證此函式永遠不會讀取或寫入輸入位移和長度所指定範圍以外的數據,即使輸入Length完全是位元組或雙位元組位元,此函式永遠不會存取要求範圍以外的任何數據。
規格需求
需求 | 值 |
---|---|
標頭 | ntddk.h (包含 Ntddk.h) |