KsSynchronousDeviceControl 関数 (ksproxy.h)

KsSynchronousDeviceControl 関数は、ファイル ハンドルで指定された KS オブジェクトに同期デバイス I/O 制御操作を発行します。

構文

KSDDKAPI HRESULT KsSynchronousDeviceControl(
  [in]            HANDLE Handle,
  [in]            ULONG  IoControl,
  [in, optional]  PVOID  InBuffer,
  [in]            ULONG  InLength,
  [out, optional] PVOID  OutBuffer,
  [in]            ULONG  OutLength,
  [in, out]       PULONG BytesReturned
);

パラメーター

[in] Handle

操作を実行する KS オブジェクトを処理します。

[in] IoControl

KS オブジェクトに対して実行する特定の種類の操作を識別するコードを制御します。

[in, optional] InBuffer

実行する操作を指定するデータを含むバッファーへのポインター。

[in] InLength

InBuffer のバッファーのサイズ (バイト単位)。

[out, optional] OutBuffer

操作のデータを含むバッファーへのポインター、または操作のデータを受け取るバッファー領域。

[in] OutLength

OutBuffer のバッファーのサイズ (バイト単位)。

[in, out] BytesReturned

KsSynchronousDeviceControlOutBuffer のバッファーに格納するデータのサイズ (バイト単位) を受け取る変数へのポインター。

戻り値

成功した場合は NOERROR を返します。それ以外の場合は、エラー コードを返します。

注釈

KS オブジェクトへのハンドルを取得するには、アプリケーションで IKsObject::KsGetObjectHandle メソッドを呼び出す必要があります。

アプリケーションは、次のように IoControl のコントロール コードと InBuffer と OutBuffer のバッファーを設定して、実行する操作を指定できます。

  • プロパティにアクセスするには、 IoControlIOCTL_KS_PROPERTY に設定します。 InBuffer を、アクセスするプロパティ セットのプロパティを指定する KSPROPERTY 構造体を指すように設定し、プロパティに関する情報を取得するか、プロパティの情報を設定するかを指定します。 プロパティに情報を設定するには、その情報を指すように OutBuffer を設定します。 プロパティから情報を取得するには、その情報を受信するように OutBuffer を設定します。
  • IoControlIOCTL_KS_METHOD に設定して、メソッドを実行します。 InBufferKSMETHOD 構造体を指すように設定します。この構造体は、実行するメソッドセットのメソッドと、メソッドに関連するデータの読み取りまたは書き込みを行うかどうかを指定します。 データを読み取る場合は、そのデータをポイントするように OutBuffer を設定します。 データを書き込むには、そのデータを受信するように OutBuffer を設定します。
  • 特定のイベント アクション発生するたびに、Handle で指定された KS オブジェクトがアプリケーションに通知するように要求するには、IoControl を IOCTL_KS_ENABLE_EVENT に設定します。 通知するイベント セットのイベントを指定する KSEVENT 構造体を指すように InBuffer を設定します。 イベントが発生したときに KS オブジェクトがアプリケーションに通知する方法を記述する KSEVENTDATA 構造体をポイントするように OutBuffer を設定します。 KS イベントも参照してください。
  • 特定のイベント アクション発生するたびにアプリケーションへの通知を停止するように Handle で指定された KS オブジェクトに通知するには、IoControl を IOCTL_KS_DISABLE_EVENT に設定します。 イベント通知要求で以前に使用された KSEVENTDATA 構造体を指すように InBuffer を設定します。
フィルターでサポートされているすべてのプロパティ、イベント、またはメソッドの一覧を取得するには、アプリケーションで IoControl を IOCTL_KS_PROPERTY、IOCTL_KS_ENABLE_EVENT、またはIOCTL_KS_METHODに設定できます。 InBuffer がポイントする KSPROPERTY、KSEVENT、または KSMETHOD 構造体の場合は、Set メンバーを GUID_NULL に設定し、Flags メンバーを KSPROPERTY_TYPE_SETSUPPORT に設定します。

KsSynchronousDeviceControl の呼び出し後、OutBuffer には、Handle で指定されたオブジェクトでサポートされるセット GUID の配列が含まれます。

要件

要件
対象プラットフォーム デスクトップ
Header ksproxy.h (Ksproxy.h を含む)
Library Ksproxy.lib

こちらもご覧ください

IKsObject::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT

KSEVENTDATA

KSMETHOD

KSPROPERTY