windows-nt/Source/XPSP1/NT/base/busdrv/acpi/inc/hctioctl.h
2020-09-26 16:20:57 +08:00

143 lines
3.7 KiB
C

/****************************************************************************
Copyright (c) 1996 Microsoft Corporation
Module Name:
hctioctl.h
Abstract:
This header file is used both by ring3 app and ring0 driver.
Environment:
Kernel & user mode
Revision History:
8-20-96 : created
****************************************************************************/
//
//Values for IOCTL_ACPI_GET_CAPABILITIES
//
#define SYSTEM_S1_BIT 0
#define SYSTEM_S1 (1 << SYSTEM_S1_BIT)
#define SYSTEM_S2_BIT 1
#define SYSTEM_S2 (1 << SYSTEM_S2_BIT)
#define SYSTEM_S3_BIT 2
#define SYSTEM_S3 (1 << SYSTEM_S3_BIT)
#define CPU_C1_BIT 3
#define CPU_C1 (1 << CPU_C1_BIN)
#define CPU_C2_BIT 4
#define CPU_C2 (1 << CPU_C2_BIT)
#define CPU_C3_BIT 5
#define CPU_C3 (1 << CPU_C3_BIT)
//
//Processor States
//
#define CPU_STATE_C1 1
#define CPU_STATE_C2 2
#define CPU_STATE_C3 3
//
//Fan States
//
#define FAN_OFF 0
#define FAN_ON 1
//
// IOCTL info
//
#define ACPIHCT_IOCTL_INDEX 80
//
//The input buffer must contain a ULONG pointer to one of the
// SYSTEM_POWER_STATE enum values.
//
#define IOCTL_ACPI_SET_SYSTEM_STATE CTL_CODE(FILE_DEVICE_UNKNOWN, \
ACPIHCT_IOCTL_INDEX+0, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
//
//The input buffer must contain a ULONG pointer to one of the
// Processor States.
//
#define IOCTL_ACPI_SET_PROCESSOR_STATE CTL_CODE(FILE_DEVICE_UNKNOWN, \
ACPIHCT_IOCTL_INDEX+1, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
//
//The input buffer must contain a ULONG pointer to on of the Fan
// States.
//
#define IOCTL_ACPI_SET_FAN_STATE CTL_CODE(FILE_DEVICE_UNKNOWN, \
ACPIHCT_IOCTL_INDEX+2, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
//
//The output buffer must contain a ULONG pointer. The ACPI driver will
// fill this buffer with the capabilities of the machine.
//
#define IOCTL_ACPI_GET_CAPABILITIES CTL_CODE(FILE_DEVICE_UNKNOWN, \
ACPIHCT_IOCTL_INDEX+3, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
//
//The input buffer must contain a ULONG pointer to a percentage (a
// number between 1 and 100).
//
#define IOCTL_ACPI_SET_CPU_DUTY_CYCLE CTL_CODE(FILE_DEVICE_UNKNOWN, \
ACPIHCT_IOCTL_INDEX+4, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
//
//The input buffer must contain a point to a TIME_FIELDS structure
//
#define IOCTL_ACPI_SET_RTC_WAKE CTL_CODE(FILE_DEVICE_UNKNOWN, \
ACPIHCT_IOCTL_INDEX+5, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
//
//The output buffer points to a structure that will receive a
// TIME_FIELDS structure
//
#define IOCTL_ACPI_GET_RTC_WAKE CTL_CODE(FILE_DEVICE_UNKNOWN, \
ACPIHCT_IOCTL_INDEX+6, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_ACPI_GET_TEMPERATURE CTL_CODE(FILE_DEVICE_UNKNOWN, \
ACPIHCT_IOCTL_INDEX+7, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)