diff options
author | midipix <writeonce@midipix.org> | 2015-07-27 04:01:18 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2015-07-27 04:01:18 -0400 |
commit | dd89bb8ad4fe184a34b5dbdda237e640fc82121b (patch) | |
tree | 5e80d2da35f5892f92be29f57982b2708e6bd99b /include/ntapi/nt_pnp.h | |
parent | dcdadc2702712fa750ed255ed1dfa354522797a0 (diff) | |
download | ntapi-dd89bb8ad4fe184a34b5dbdda237e640fc82121b.tar.bz2 ntapi-dd89bb8ad4fe184a34b5dbdda237e640fc82121b.tar.xz |
entered advanced internal development stage.
Diffstat (limited to 'include/ntapi/nt_pnp.h')
-rw-r--r-- | include/ntapi/nt_pnp.h | 326 |
1 files changed, 326 insertions, 0 deletions
diff --git a/include/ntapi/nt_pnp.h b/include/ntapi/nt_pnp.h new file mode 100644 index 0000000..e806baf --- /dev/null +++ b/include/ntapi/nt_pnp.h @@ -0,0 +1,326 @@ +#ifndef _NT_PNP_H_ +#define _NT_PNP_H_ + +#include <psxtypes/psxtypes.h> +#include "nt_object.h" + +typedef enum _nt_latency_time { + NT_LT_DONT_CARE, + NT_LT_LOWEST_LATENCY +} nt_latency_time; + + +typedef enum _nt_device_power_state { + NT_POWER_DEVICE_UNSPECIFIED, + NT_POWER_DEVICE_D0, + NT_POWER_DEVICE_D1, + NT_POWER_DEVICE_D2, + NT_POWER_DEVICE_D3 +} nt_device_power_state; + + +typedef enum _nt_power_action { + NT_POWER_ACTION_NONE, + NT_POWER_ACTION_RESERVED, + NT_POWER_ACTION_SLEEP, + NT_POWER_ACTION_HIBERNATE, + NT_POWER_ACTION_SHUTDOWN, + NT_POWER_ACTION_SHUTDOWN_RESET, + NT_POWER_ACTION_SHUTDOWN_OFF, +} nt_power_action; + + +typedef enum _nt_system_power_state { + NT_POWER_SYSTEM_UNSPECIFIED, + NT_POWER_SYSTEM_WORKING, + NT_POWER_SYSTEM_SLEEPING1, + NT_POWER_SYSTEM_SLEEPING2, + NT_POWER_SYSTEM_SLEEPING3, + NT_POWER_SYSTEM_HIBERNATE, + NT_POWER_SYSTEM_SHUTDOWN +} nt_system_power_state; + + +typedef enum _nt_power_info_level { + NT_SYSTEM_POWER_POLICY_AC, + NT_SYSTEM_POWER_POLICY_DC, + NT_VERIFY_SYSTEM_POLICY_AC, + NT_VERIFY_SYSTEM_POLICY_DC, + NT_SYSTEM_POWER_CAPABILITIES, + NT_SYSTEM_BATTERY_STATE, + NT_SYSTEM_POWER_STATE_HANDLER, + NT_PROCESSOR_STATE_HANDLER, + NT_SYSTEM_POWER_POLICY_CURRENT, + NT_ADMINISTRATOR_POWER_POLICY, + NT_SYSTEM_RESERVE_HIBER_FILE, + NT_PROCESSOR_INFORMATION, + NT_SYSTEM_POWER_INFORMATION +} nt_power_info_level; + + +/* execution state bits */ +#define NT_ES_SYSTEM_REQUIRED (0x00000001) +#define NT_ES_DISPLAY_REQUIRED (0x00000002) +#define NT_ES_USER_PRESENT (0x00000004) +#define NT_ES_AWAYMODE_REQUIRED (0x00000040) +#define NT_ES_CONTINUOUS (0x80000000) + + +/* power action flag bits */ +#define NT_POWER_ACTION_QUERY_ALLOWED (0x00000001) +#define NT_POWER_ACTION_UI_ALLOWED (0x00000002) +#define NT_POWER_ACTION_OVERRIDE_APPS (0x00000004) +#define NT_POWER_ACTION_LIGHTEST_FIRST (0x10000000) +#define NT_POWER_ACTION_LOCK_CONSOLE (0x20000000) +#define NT_POWER_ACTION_DISABLE_WAKES (0x40000000) +#define NT_POWER_ACTION_CRITICAL (0x80000000) + + +/* power state event codes */ +#define NT_POWER_LEVEL_USER_NOTIFY_TEXT (0x00000001) +#define NT_POWER_LEVEL_USER_NOTIFY_SOUND (0x00000002) +#define NT_POWER_LEVEL_USER_NOTIFY_EXEC (0x00000004) +#define NT_POWER_USER_NOTIFY_BUTTON (0x00000008) +#define NT_POWER_USER_NOTIFY_SHUTDOWN (0x00000010) +#define NT_POWER_FORCE_TRIGGER_RESET (0x80000000) + +/* system power policy */ +#define NT_NUM_DISCHARGE_POLICIES (0x00000004) + + + +typedef struct _nt_power_action_policy { + nt_power_action action; + uint32_t action_flags; + uint32_t event_code; +} nt_power_action_policy; + + +typedef struct _nt_system_power_level { + unsigned char enable; + unsigned char padding[3]; + uint32_t battery_level; + nt_power_action_policy power_policy; + nt_system_power_state min_system_state; +} nt_system_power_level; + + +typedef struct _nt_system_power_policy { + uint32_t revision; + nt_power_action_policy power_button; + nt_power_action_policy sleep_button; + nt_power_action_policy lid_close; + nt_system_power_state lid_open_wake; + uint32_t reserved_1st; + nt_power_action_policy idle; + uint32_t idle_timeout; + unsigned char idle_sensitivity; + unsigned char dynamic_throttle; + unsigned char padding[2]; + nt_system_power_state min_sleep; + nt_system_power_state max_sleep; + nt_system_power_state reduced_latency_sleep; + uint32_t win_logon_flags; + uint32_t reserved_2nd; + uint32_t doze_s4_timeout; + uint32_t broadcast_capacity_resolution; + nt_system_power_level discharge_policy[NT_NUM_DISCHARGE_POLICIES]; + uint32_t video_timeout; + unsigned char video_dim_display; + uint32_t video_reserved[3]; + uint32_t spindown_timeout; + unsigned char optimize_for_power; + unsigned char fan_throttle_tolerance; + unsigned char forced_throttle; + unsigned char min_throttle; + nt_power_action_policy over_throttled; +} nt_system_power_policy; + + +typedef struct _nt_system_battery_state { + unsigned char ac_on_line; + unsigned char battery_present; + unsigned char charging; + unsigned char discharging; + unsigned char padding[4]; + uint32_t max_capacity; + uint32_t remaining_capacity; + uint32_t rate; + uint32_t estimated_time; + uint32_t default_alert1; + uint32_t default_alert2; +} nt_system_battery_state; + + +typedef struct _nt_battery_reporting_scale { + uint32_t granularity; + uint32_t capacity; +} nt_battery_reporting_scale; + + +typedef struct _nt_system_power_capabilities { + unsigned char power_button_present; + unsigned char sleep_button_present; + unsigned char lid_present; + unsigned char system_s1; + unsigned char system_s2; + unsigned char system_s3; + unsigned char system_s4; + unsigned char system_s5; + unsigned char hiber_file_present; + unsigned char full_wake; + unsigned char video_dim_present; + unsigned char apm_present; + unsigned char ups_present; + unsigned char thermal_control; + unsigned char processor_throttle; + unsigned char processor_min_throttle; + unsigned char processor_max_throttle; + unsigned char fast_system_s4; + unsigned char hiber_boot; + unsigned char wake_alarm_present; + unsigned char ao_ac; + unsigned char disk_spin_down; + unsigned char padding[8]; + unsigned char system_batteries_present; + unsigned char batteries_are_short_term; + nt_battery_reporting_scale battery_scale[3]; + nt_system_power_state ac_on_line_wake; + nt_system_power_state soft_lid_wake; + nt_system_power_state rtc_wake; + nt_system_power_state min_device_wake_state; + nt_system_power_state default_low_latency_wake; +} nt_system_power_capabilities; + + +typedef struct _nt_system_power_information { + uint32_t max_idleness_allowed; + uint32_t idleness; + uint32_t time_remaining; + unsigned char cooling_mode; +} nt_system_power_information; + + +typedef struct _nt_system_power_status { + unsigned char ac_line_status; + unsigned char battery_flag; + unsigned char battery_life_percent; + unsigned char reserved; + uint32_t battery_life_time; + uint32_t battery_full_life_time; +} nt_system_power_status; + + +typedef struct _nt_administrator_power_policy { + nt_system_power_state min_sleep; + nt_system_power_state max_sleep; + uint32_t min_video_timeout; + uint32_t max_video_timeout; + uint32_t min_spindown_timeout; + uint32_t max_spindown_timeout; +} nt_administrator_power_policy; + + +typedef struct _nt_user_power_policy { + uint32_t revision; + nt_power_action_policy idle_ac; + nt_power_action_policy idle_dc; + uint32_t idle_timeout_ac; + uint32_t idle_timeout_dc; + unsigned char idle_sensitivity_ac; + unsigned char idle_sensitivity_dc; + unsigned char throttle_policy_ac; + unsigned char throttle_policy_dc; + nt_system_power_state max_sleep_ac; + nt_system_power_state max_sleep_dc; + uint32_t reserved[2]; + uint32_t video_timeout_ac; + uint32_t video_timeout_dc; + uint32_t spindown_timeout_ac; + uint32_t spindown_timeout_dc; + unsigned char optimize_for_power_ac; + unsigned char optimize_for_power_dc; + unsigned char fan_throttle_tolerance_ac; + unsigned char fan_throttle_tolerance_dc; + unsigned char forced_throttle_ac; + unsigned char forced_throttle_dc; +} nt_user_power_policy; + + +typedef struct _nt_processor_power_information { + uint32_t number; + uint32_t max_mhz; + uint32_t current_mhz; + uint32_t mhz_limit; + uint32_t max_idle_state; + uint32_t current_idle_state; +} nt_processor_power_information; + + +typedef struct _nt_plug_play_notification_header { + uint16_t version; + uint16_t size; + nt_guid event; +} nt_plug_play_notification_header; + + +/* ZwRequestWakeupLatency: no longer present */ +typedef int32_t __stdcall ntapi_zw_request_wakeup_latency( + __in nt_latency_time latency); + + +/* ZwRequestDeviceWakeup: no longer present */ +typedef int32_t __stdcall ntapi_zw_request_device_wakeup( + __in void * hdevice); + + +/* ZwCancelDeviceWakeupRequest: no longer present */ +typedef int32_t __stdcall ntapi_zw_cancel_device_wakeup_request( + __in void * hdevice); + + +typedef int32_t __stdcall ntapi_zw_is_system_resume_automatic(void); + + +typedef int32_t __stdcall ntapi_zw_set_thread_execution_state( + __in uint32_t execution_state, + __out uint32_t * prev_execution_state); + + +typedef int32_t __stdcall ntapi_zw_get_device_power_state( + __in void * hdevice, + __out nt_device_power_state * device_power_state); + + +typedef int32_t __stdcall ntapi_zw_set_system_power_state( + __in nt_power_action system_action, + __in nt_system_power_state min_system_state, + __in uint32_t system_power_state_flags); + + +typedef int32_t __stdcall ntapi_zw_initiate_power_action( + __in nt_power_action system_action, + __in nt_system_power_state min_system_statem, + __in uint32_t system_power_state_flags, + __in unsigned char async); + +typedef int32_t __stdcall ntapi_zw_power_information( + __in nt_power_info_level power_info_level, + __in void * input_buffer __optional, + __in uint32_t input_buffer_length, + __out void * output_buffer __optional, + __in uint32_t output_buffer_length); + + +typedef int32_t __stdcall ntapi_zw_plug_play_control( + __in uint32_t pnp_control_code, + __in_out void * buffer, + __in uint32_t buffer_length); + +typedef int32_t __stdcall ntapi_zw_get_plug_play_event( + __in uint32_t reserved_1st, + __in uint32_t reserved_2nd, + __out void * buffer, + __in uint32_t buffer_length); + +#endif |