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_CONFIGWhichSpace パラメーターの説明を参照してください。

[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 「解説」を参照してください。

こちらもご覧ください

BUS_INTERFACE_STANDARD

IRP_MN_READ_CONFIG