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 中设置控制代码,并在 InBufferOutBuffer 中设置控件代码,以指定要执行的作:

  • IoControl 设置为访问属性 IOCTL_KS_PROPERTY。 将 InBuffer 设置为指向 KSPROPERTY 结构,该结构指定要访问的属性集的属性,以及检索属性中有关属性的信息还是设置信息。 若要在属性中设置信息,请将 OutBuffer 设置为指向该信息。 若要从属性中检索信息,请将 OutBuffer 设置为接收该信息。
  • IoControl 设置为执行方法 IOCTL_KS_METHODInBuffer 设置为指向 KSMETHOD 结构,该结构指定要执行的方法集的方法,以及是否读取和/或写入与该方法相关的数据。 若要读取数据,请将 OutBuffer 设置为指向该数据。 若要写入数据,请将 OutBuffer 设置为接收该数据。
  • IoControl 设置为 IOCTL_KS_ENABLE_EVENT 以请求 Handle 指定的 KS 对象, 发生特定事件作时通知应用程序。 InBuffer 设置为指向 KSEVENT 结构,该结构指定要通知的事件集的事件集。 OutBuffer 设置为指向 KSEVENTDATA 结构,该结构描述 KS 对象在事件发生时应如何通知应用程序。 另请参阅 KS 事件
  • IoControl 设置为 IOCTL_KS_DISABLE_EVENT,以通知由 Handle 指定的 KS 对象,以在发生特定事件作时停止通知应用程序。 将 InBuffer 设置为指向以前在事件通知请求中使用的 KSEVENTDATA 结构。
若要检索筛选器支持的所有属性、事件或方法的列表,应用程序可以将 ioControl 设置为IOCTL_KS_PROPERTY、IOCTL_KS_ENABLE_EVENT或IOCTL_KS_METHOD。 对于 InBuffer 点的 KSPROPERTY、KSEVENT 或 KSMETHOD 结构,请将 成员设置为GUID_NULL,并将 标志 成员设置为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