структура SENSOR_CONTROLLER_CONFIG (sensorcx.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

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

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

 

EvtSensorStartHistory

EvtSensorStopHistory

EvtSensorClearHistory

EvtSensorStartHistoryRetrieval

EvtSensorCancelHistoryRetrieval

EvtSensorSetBatchLatency

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

EvtSensorStartStateChangeNotification

EvtSensorStopStateChangeNotification

EvtSensorEnableWake

EvtSensorDisableWake

Замечания

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 8.1
минимальный поддерживаемый сервер Windows Server 2012 R2
заголовка sensorcx.h