次の方法で共有


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 に設定し、ACPI テーブル内の_PSxメソッドを削除する必要があります。

EvtSensorStart

このコールバック関数は、ドライバーで指定された既定のプロパティ、またはクラス拡張機能によって設定されたプロパティに基づいてセンサーを起動します。

EvtSensorStop

このコールバック関数は、センサーを停止します。

EvtSensorGetSupportedDataFields

このコールバック関数は、指定されたセンサーでサポートされているデータ フィールドの一覧を返します。

EvtSensorGetDataFieldProperties

このコールバック関数は、センサーに関連付けられている特定のデータ フィールドのプロパティを返します。

EvtSensorGetDataInterval

このコールバック関数は、指定されたセンサーのデータ間隔を返します。

EvtSensorSetDataInterval

このコールバック関数は、指定したセンサーのデータ間隔を設定します。

EvtSensorGetDataThresholds

このコールバック関数は、センサーに関連付けられているしきい値を返します。

EvtSensorSetDataThresholds

このコールバック関数は、センサーを停止します。

EvtSensorGetProperties

このコールバック関数は、特定のセンサーのプロパティを返します。

EvtSensorDeviceIoControl

このコールバック関数は、クラス拡張機能の外部で IOCTL を処理します。

メモ ドライバーが IRP をキューに入れる必要がある場合は、ドライバーが所有する IoQueue に IRP をコピーする必要があります。 これにより、ドライバーのすべての 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
Header sensorscx.h