GET_SET_DEVICE_DATA回呼函式 (wdm.h)
GetBusData 例程會從裝置的設定空間讀取數據。
語法
GET_SET_DEVICE_DATA GetSetDeviceData;
ULONG GetSetDeviceData(
[in] PVOID Context,
[in] ULONG DataType,
[in] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
)
{...}
參數
[in] Context
介面特定內容資訊的指標。 呼叫端會傳遞值,這個值會當做介面之BUS_INTERFACE_STANDARD結構的Context成員傳遞。
[in] DataType
要讀取的總線數據類型。 如需詳細資訊,請參閱 IRP_MN_READ_CONFIG 中的 WhichSpace 參數討論。
[in] Buffer
緩衝區的指標,其中包含要從裝置的組態空間讀取的組態資訊。
[in] Offset
此讀取作業開始所在的總線特定裝置數據的位移。 例如,如果 DataType 參數PCI_WHICHSPACE_CONFIG,Offset 參數值就是 PCI 組態空間的位移。
[in] Length
要讀取之數據的長度,以位元組為單位。
傳回值
GetBusData 例程會傳回成功讀取作業之後所讀取之組態數據的長度,以位元組為單位。 如果讀取作業失敗,則會傳回零的值。
備註
根據 DataType 參數的值,只能從中斷要求層級呼叫 GetBusData 例程, (下表中所定義的 IRQLs) 。
DataType 值 | IRQL |
---|---|
PCI_WHICHSPACE_CONFIG | <= DIRQL |
PCI_WHICHSPACE_ROM | <= APC_LEVEL |
PCCARD_COMMON_MEMORY
PCCARD_COMMON_MEMORY_INDIRECT |
<= DISPATCH_LEVEL |
PCCARD_ATTRIBUTE_MEMORY
PCCARD_ATTRIBUTE_MEMORY_INDIRECT |
<= DISPATCH_LEVEL |
PCCARD_PCI_CONFIGURATION_SPACE | <= DIRQL |
下列備註適用於支持單一根 I/O 虛擬化 (SR-IOV) 介面之裝置上的 PCI Express (PCIe) 虛擬函式的驅動程式 () VF:
- PCIe VFs 的驅動程序應該在 IRQL <= APC_LEVEL呼叫 GetBusData 例程。
- 若要讀取 IRQL = DISPATCH_LEVEL VF 的 PCI 組態數據,驅動程式必須發出 IRP_MN_READ_CONFIG的 I/O 要求。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | wdm.h (包含 Ntddk.h) |
IRQL | 請參閱一節。 |