次の方法で共有


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

バスから読み取られたデータを受信するバッファーへのポインター。 少なくとも Length と同じ大きさにする必要があります。

[in] Offset

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

[in] Length

このパラメーターは、Buffer に読み取るバイト数を指定 します

戻り値

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

注釈

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

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

要件

要件
サポートされている最小のクライアント Microsoft Windows XP 以降のオペレーティング システムおよび DirectX 8.0 以降の DirectX バージョンで使用できます。
対象プラットフォーム ユニバーサル
Header ks.h (Ks.h を含む)
Library Ks.lib
IRQL PASSIVE_LEVEL (「解説」セクションを参照)

こちらもご覧ください

IoCallDriver

KsDeviceSetBusData