структура SENSOR_CONTROLLER_CONFIG (sensorscx.h)

Эта структура содержит указатели на функции обратного вызова, которые должны быть реализованы драйвером и переданы в расширение класса для вызова.

Синтаксис

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;

Члены

Size

Выделенный размер этой структуры (в байтах).

DriverIsPowerPolicyOwner

Указывает, является ли драйвер владельцем политики управления питанием. Это значение должно быть WdfFalse, WdfUseDefault или WdfTrue. Чтобы партнеры воспользовались преимуществами управления питанием на основе pep, они должны установить для этого флага WdfFalse или WdfUseDefault и удалить все методы _PSx в таблицах ACPI.

EvtSensorStart

Эта функция обратного вызова запускает датчик на основе свойств по умолчанию, заданных драйвером, или свойств, заданных расширением класса.

EvtSensorStop

Эта функция обратного вызова останавливает работу датчика.

EvtSensorGetSupportedDataFields

Эта функция обратного вызова возвращает список полей данных, поддерживаемых указанным датчиком.

EvtSensorGetDataFieldProperties

Эта функция обратного вызова возвращает свойства заданного поля данных, связанного с датчиком.

EvtSensorGetDataInterval

Эта функция обратного вызова возвращает интервал данных для указанного датчика.

EvtSensorSetDataInterval

Эта функция обратного вызова задает интервал данных для указанного датчика.

EvtSensorGetDataThresholds

Эта функция обратного вызова возвращает пороговые значения, связанные с датчиком.

EvtSensorSetDataThresholds

Эта функция обратного вызова останавливает работу датчика.

EvtSensorGetProperties

Эта функция обратного вызова возвращает свойства для заданного датчика.

EvtSensorDeviceIoControl

Эта функция обратного вызова обрабатывает IOCTL за пределами расширения класса.

Примечание Если драйверу необходимо ставить IRP в очередь, он должен скопировать IRP в ioQueue, принадлежащий драйверу. Это позволит предотвратить остановку всех irp для драйвера до завершения.

 

EvtSensorStartHistory

EvtSensorStopHistory

EvtSensorClearHistory

EvtSensorStartHistoryRetrieval

EvtSensorCancelHistoryRetrieval

EvtSensorSetBatchLatency

Эта функция обратного вызова задает задержку пакета для указанного датчика.

EvtSensorStartStateChangeNotification

EvtSensorStopStateChangeNotification

EvtSensorEnableWake

EvtSensorDisableWake

Комментарии

Эта структура задается расширению класса с помощью функции SensorsCxDeviceInitialize . Если какой-либо из следующих указателей на функцию не задан, драйвер не сможет загрузиться:

  • EvtSensorStart
  • EvtSensorStop
  • EvtSensorGetSupportedDataFields
  • EvtSensorGetDataFieldProperties
  • EvtSensorGetDataInterval
  • EvtSensorSetDataInterval
  • EvtSensorGetDataThresholds
  • EvtSensorSetDataThresholds
  • EvtSensorGetProperties
Каждая функция возвращает STATUS_SUCCESS после успешного завершения.
Примечание Расширение класса (CX) использует только макрос NT_SUCCESS для определения успешности вызова функции Evt драйвера, но не выполняет никаких действий, если функция завершилась сбоем или не возвращает STATUS_SUCCESS.
 

Требования

Требование Значение
Минимальная версия клиента Windows 8.1
Минимальная версия сервера Windows Server 2012 R2
Верхняя часть sensorscx.h