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 ルーチンは、正常な読み取り操作の後に読み取られる構成データの長さをバイト単位で返します。 読み取り操作が失敗した場合は、0 の値が返されます。
注釈
DataType パラメーターの値に応じて、GetBusData ルーチンは、次の表で定義されている割り込み要求レベル (IRQL) からのみ呼び出すことができます。
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) 仮想関数 (VFs) のドライバーに適用されます。
- PCIe VFs のドライバーは、IRQL <= APC_LEVELで GetBusData ルーチンを呼び出す必要があります。
- IRQL = DISPATCH_LEVELで VF の PCI 構成データを読み取るには、ドライバーが IRP_MN_READ_CONFIGの I/O 要求を発行する必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | wdm.h (Ntddk.h を含む) |
IRQL | 「解説」を参照してください。 |