次の方法で共有


KsDeviceGetBusData 関数 (ks.h)

KsDeviceGetBusData 関数は、指定された AVStream デバイスが存在するバスからデータを読み取ります。

構文

KSDDKAPI ULONG KsDeviceGetBusData(
  [in] PKSDEVICE Device,
  [in] ULONG     DataType,
  [in] PVOID     Buffer,
  [in] ULONG     Offset,
  [in] ULONG     Length
);

パラメーター

[in] Device

バスからデータを読み取る必要がある特定の AVStream デバイスを表す KSDEVICE 構造体へのポインター。

[in] DataType

このパラメーターは、読み取るバス データの種類を示します。 ゼロは構成空間に対応します。 詳細については、IRP_MN_READ_CONFIGのリファレンス ページの WhichSpace の説明を参照してください。

[in] Buffer

バスから読み取られたデータを受け取るバッファーへのポインター。 以上の大きさにする必要があります。

[in] Offset

このパラメーターには、データの読み取り元 DataType で指定された領域のバイト オフセットが含まれます。

[in] Length

このパラメーターは、バッファー に読み取るバイト数指定します。

戻り値

KsDeviceGetBusData は、バスから実際に読み取られたバイト数を返します。 エラーが発生した場合、この値は 0 です。

備考

指定したデバイスが存在するバスのドライバーに応じて、この関数には 2 つの動作と制限セットが考えられます。 指定されたバス ドライバーがバス インターフェイス標準 (通常は PCI) をサポートしている場合は、IRQL = PASSIVE_LEVELまたはDISPATCH_LEVELでこの関数を呼び出します。 このような呼び出しの後、KsDeviceGetBusData は、要求された領域から読み取られた実際のバイト数を返します。 ただし、指定されたバス ドライバーがバス インターフェイス標準をサポートしていない場合、AVStream は、IoCallDriverを介してバス ドライバーと通信します。 これにより、KsDeviceGetBusData の使用は IRQL = PASSIVE_LEVEL に制限され、また、エラーが発生した場合は戻り値が 0 であるか、データの取得が成功した場合 長さ等しいことを意味します。

互換性を確保するために、ミニドライバー ライターは、KsDeviceGetBusData の使用を IRQL = PASSIVE_LEVELに制限することができます。

必要条件

要件 価値
サポートされる最小クライアント Microsoft Windows XP 以降のオペレーティング システムと DirectX 8.0 以降の DirectX バージョンで使用できます。
ターゲット プラットフォーム 万国
ヘッダー ks.h (Ks.h を含む)
ライブラリ Ks.lib
IRQL PASSIVE_LEVEL (「解説」セクションを参照)

関連項目

IoCallDriver

KsDeviceSetBusData