Función KsSynchronousDeviceControl (ksproxy.h)

La función KsSynchronousDeviceControl emite una operación de control de E/S de dispositivo sincrónica al objeto KS especificado por un identificador de archivo.

Sintaxis

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
);

Parámetros

[in] Handle

Identificador del objeto KS en el que se va a realizar la operación.

[in] IoControl

Código de control que identifica un tipo específico de operación que se va a realizar en un objeto KS.

[in, optional] InBuffer

Puntero a un búfer que contiene datos que especifican la operación que se va a realizar.

[in] InLength

Tamaño, en bytes, del búfer en InBuffer.

[out, optional] OutBuffer

Puntero a un búfer que contiene datos para la operación o el espacio de búfer que recibe los datos de la operación.

[in] OutLength

Tamaño, en bytes, del búfer en OutBuffer.

[in, out] BytesReturned

Puntero a una variable que recibe el tamaño, en bytes, de los datos que KsSynchronousDeviceControl almacena en el búfer en OutBuffer.

Valor devuelto

Devuelve NOERROR si se ejecuta correctamente; de lo contrario, devuelve un código de error.

Comentarios

Para recuperar el identificador del objeto KS, una aplicación debe llamar al método IKsObject::KsGetObjectHandle .

Una aplicación puede establecer el código de control en IoControl y los búferes en InBuffer y OutBuffer como se indica a continuación para especificar la operación que se va a realizar:

  • Establezca IoControl en IOCTL_KS_PROPERTY para acceder a una propiedad. Establezca InBuffer para que apunte a una estructura KSPROPERTY que especifica la propiedad de la propiedad establecida para tener acceso y si se va a recuperar información sobre la propiedad o establecer información en la propiedad . Para establecer información en la propiedad , establezca OutBuffer para que apunte a esa información. Para recuperar información de la propiedad , establezca OutBuffer para recibir esa información.
  • Establezca IoControlen IOCTL_KS_METHOD para ejecutar un método. Establezca InBuffer para que apunte a una estructura KSMETHOD que especifica el método del método establecido para ejecutarse y si se van a leer o escribir datos relacionados con el método. Para leer datos, establezca OutBuffer para que apunte a esos datos. Para escribir datos, establezca OutBuffer para recibir esos datos.
  • Establezca IoControl en IOCTL_KS_ENABLE_EVENT para solicitar que el objeto KS especificado por Handle notifique a la aplicación cada vez que se produzca una acción de evento específica. Establezca InBuffer para que apunte a una estructura KSEVENT que especifica el evento del conjunto de eventos sobre el que se va a notificar. Establezca OutBuffer para que apunte a una estructura KSEVENTDATA que describe cómo el objeto KS debe notificar a la aplicación cuándo se produce el evento. Consulte también Eventos de KS.
  • Establezca IoControl en IOCTL_KS_DISABLE_EVENT para informar al objeto KS especificado por Handle para dejar de notificar a la aplicación cada vez que se produzca una acción de evento específica. Establezca InBuffer para que apunte a la estructura KSEVENTDATA que se usó anteriormente en la solicitud de notificación de eventos.
Para recuperar una lista de todas las propiedades, eventos o métodos admitidos por un filtro, una aplicación puede establecer IoControl en IOCTL_KS_PROPERTY, IOCTL_KS_ENABLE_EVENT o IOCTL_KS_METHOD. Para la estructura KSPROPERTY, KSEVENT o KSMETHOD a la que apunta InBuffer , establezca el miembro Set en GUID_NULL y establezca el miembro Flags en KSPROPERTY_TYPE_SETSUPPORT.

Después de la llamada a KsSynchronousDeviceControl, OutBuffer contendrá una matriz de GUID de conjunto admitidos por el objeto especificado por Handle.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado ksproxy.h (incluya Ksproxy.h)
Library Ksproxy.lib

Consulte también

IKsObject::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT

KSEVENTDATA

KSMETHOD

KSPROPERTY