次の方法で共有


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

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

戻り値

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

備考

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

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

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

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー ksproxy.h (Ksproxy.h を含む)
ライブラリ Ksproxy.lib

関連項目

IKsObject::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT する

KSEVENTDATA

KSMETHOD

KSPROPERTY する