estructura de SENSOR_CONTROLLER_CONFIG (sensorscx.h)

Esta estructura contiene punteros a funciones de devolución de llamada que el controlador debe implementar y pasar a la extensión de clase que se va a llamar.

Sintaxis

typedef struct _SENSOR_CONTROLLER_CONFIG {
  ULONG                                             Size;
  WDF_TRI_STATE                                     DriverIsPowerPolicyOwner;
  PFN_SENSOR_DRIVER_START_SENSOR                    EvtSensorStart;
  PFN_SENSOR_DRIVER_STOP_SENSOR                     EvtSensorStop;
  PFN_SENSOR_DRIVER_GET_SUPPORTED_DATA_FIELDS       EvtSensorGetSupportedDataFields;
  PFN_SENSOR_DRIVER_GET_DATA_FIELD_PROPERTIES       EvtSensorGetDataFieldProperties;
  PFN_SENSOR_DRIVER_GET_DATA_INTERVAL               EvtSensorGetDataInterval;
  PFN_SENSOR_DRIVER_SET_DATA_INTERVAL               EvtSensorSetDataInterval;
  PFN_SENSOR_DRIVER_GET_DATA_THRESHOLDS             EvtSensorGetDataThresholds;
  PFN_SENSOR_DRIVER_SET_DATA_THRESHOLDS             EvtSensorSetDataThresholds;
  PFN_SENSOR_DRIVER_GET_PROPERTIES                  EvtSensorGetProperties;
  PFN_SENSOR_DRIVER_DEVICE_IO_CONTROL               EvtSensorDeviceIoControl;
  PFN_SENSOR_DRIVER_START_SENSOR_HISTORY            EvtSensorStartHistory;
  PFN_SENSOR_DRIVER_STOP_SENSOR_HISTORY             EvtSensorStopHistory;
  PFN_SENSOR_DRIVER_CLEAR_SENSOR_HISTORY            EvtSensorClearHistory;
  PFN_SENSOR_DRIVER_START_HISTORY_RETRIEVAL         EvtSensorStartHistoryRetrieval;
  PFN_SENSOR_DRIVER_CANCEL_HISTORY_RETRIEVAL        EvtSensorCancelHistoryRetrieval;
  PFN_SENSOR_DRIVER_SET_BATCH_LATENCY               EvtSensorSetBatchLatency;
  PFN_SENSOR_DRIVER_START_STATE_CHANGE_NOTIFICATION EvtSensorStartStateChangeNotification;
  PFN_SENSOR_DRIVER_STOP_STATE_CHANGE_NOTIFICATION  EvtSensorStopStateChangeNotification;
  PFN_SENSOR_DRIVER_ENABLE_WAKE                     EvtSensorEnableWake;
  PFN_SENSOR_DRIVER_DISABLE_WAKE                    EvtSensorDisableWake;
} SENSOR_CONTROLLER_CONFIG, *PSENSOR_CONTROLLER_CONFIG;

Miembros

Size

Tamaño asignado de esta estructura (en bytes).

DriverIsPowerPolicyOwner

Indica si el controlador posee o no la directiva de energía. Este valor debe ser WdfFalse, WdfUseDefault o WdfTrue. Para que los asociados aprovechen la administración de energía basada en pep, deben establecer esta marca en WdfFalse o WdfUseDefault y quitar cualquier método de _PSx en sus tablas ACPI.

EvtSensorStart

Esta función de devolución de llamada inicia el sensor en función de las propiedades predeterminadas especificadas por el controlador o las propiedades establecidas por la extensión de clase.

EvtSensorStop

Esta función de devolución de llamada detiene el sensor.

EvtSensorGetSupportedDataFields

Esta función de devolución de llamada devuelve una lista de campos de datos admitidos por el sensor especificado.

EvtSensorGetDataFieldProperties

Esta función de devolución de llamada devuelve las propiedades de un campo de datos determinado asociado a un sensor.

EvtSensorGetDataInterval

Esta función de devolución de llamada devuelve el intervalo de datos de un sensor especificado.

EvtSensorSetDataInterval

Esta función de devolución de llamada establece el intervalo de datos de un sensor especificado.

EvtSensorGetDataThresholds

Esta función de devolución de llamada devuelve los umbrales asociados a un sensor.

EvtSensorSetDataThresholds

Esta función de devolución de llamada detiene el sensor.

EvtSensorGetProperties

Esta función de devolución de llamada devuelve las propiedades de un sensor determinado.

EvtSensorDeviceIoControl

Esta función de devolución de llamada controla las ITL fuera de la extensión de clase.

Nota Si el controlador necesita poner en cola el IRP, debe copiar el IRP en una instancia de IoQueue que posee el controlador. Esto impedirá que todas las IRP del controlador se detengan hasta que finalicen.

 

EvtSensorStartHistory

EvtSensorStopHistory

EvtSensorClearHistory

EvtSensorStartHistoryRetrieval

EvtSensorCancelHistoryRetrieval

EvtSensorSetBatchLatency

Esta función de devolución de llamada establece la latencia por lotes de un sensor especificado.

EvtSensorStartStateChangeNotification

EvtSensorStopStateChangeNotification

EvtSensorEnableWake

EvtSensorDisableWake

Comentarios

Esta estructura se asigna a la extensión de clase mediante la función SensorsCxDeviceInitialize . Si no se establece alguno de los siguientes punteros de función, el controlador no se cargará:

  • EvtSensorStart
  • EvtSensorStop
  • EvtSensorGetSupportedDataFields
  • EvtSensorGetDataFieldProperties
  • EvtSensorGetDataInterval
  • EvtSensorSetDataInterval
  • EvtSensorGetDataThresholds
  • EvtSensorSetDataThresholds
  • EvtSensorGetProperties
Cada función devuelve STATUS_SUCCESS cuando se completa correctamente.
Nota La extensión de clase (CX) solo usa la macro NT_SUCCESS para determinar si la llamada a la función Evt del controlador se realizó correctamente, pero no realiza ninguna acción si se produjo un error en la función o no devuelve STATUS_SUCCESS.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1
Servidor mínimo compatible Windows Server 2012 R2
Encabezado sensorscx.h