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 を設定します。
- 特定のイベント アクションが発生するたびに、Handle で指定された KS オブジェクトがアプリケーションに通知するように要求するには、IoControl を IOCTL_KS_ENABLE_EVENT に設定します。 通知するイベント セットのイベントを指定する KSEVENT 構造体を指すように InBuffer を設定します。 イベントが発生したときに KS オブジェクトがアプリケーションに通知する方法を記述する KSEVENTDATA 構造体をポイントするように OutBuffer を設定します。 KS イベントも参照してください。
- 特定のイベント アクションが発生するたびにアプリケーションへの通知を停止するように Handle で指定された KS オブジェクトに通知するには、IoControl を IOCTL_KS_DISABLE_EVENT に設定します。 イベント通知要求で以前に使用された KSEVENTDATA 構造体を指すように InBuffer を設定します。
KsSynchronousDeviceControl の呼び出し後、OutBuffer には、Handle で指定されたオブジェクトでサポートされるセット GUID の配列が含まれます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | ksproxy.h (Ksproxy.h を含む) |
Library | Ksproxy.lib |