/*++ ; ; Copyright (c) Microsoft Corporation. All rights reserved. ; ; Module Name: ; ; ntapm.h ; ; Abstract: ; ; This module contains definitions specific to legacy APM support ; in NT5, including special HAL interfaces ; ; Author: ; ; Bryan Willman (bryanwi) 13 Feb 1998 ; ; Revision History: ; ; --*/ // // Arguments to HalInitPowerManagment // #define HAL_APM_SIGNATURE 0x004D5041 // APM #define HAL_APM_VERSION 500 // 5.00 #define HAL_APM_TABLE_SIZE (sizeof(PM_DISPATCH_TABLE)+sizeof(PVOID)) #define HAL_APM_SLEEP_VECTOR 0 #define HAL_APM_OFF_VECTOR 1 // // Values used in the Parameters.Other part of an IO_STACK_LOCATION // to set up a link between a battery and ntapm.sys // typedef struct _NTAPM_LINK { ULONG Signature; // overlay Argument1 ULONG Version; // overlay Argument2 ULONG BattLevelPtr; // overlay Argument3, pointer to pointer to a pvoid void function ULONG ChangeNotify; // overlay Argument4, address of notify function } NTAPM_LINK, *PNTAPM_LINK; #define NTAPM_LINK_SIGNATURE 0x736d7061 // apms = Argument1 #define NTAPM_LINK_VERSION 500 // 5.00 = Argument2 // // Major code is IRP_MJ_INTERNAL_DEVICE_CONTROL // Minor code is 0. // // // BattLevelPtr gets the address of a routine with prototype: // //ULONG BatteryLevel(); // // // Data returned by NtApmGetBatteryLevel in NTAPM // is a ULONG, cracked with these defines. // #define NTAPM_ACON 0x1000 #define NTAPM_NO_BATT 0x2000 #define NTAPM_NO_SYS_BATT 0x4000 #define NTAPM_BATTERY_STATE 0x0f00 #define NTAPM_BATTERY_STATE_SHIFT 8 #define NTAPM_POWER_PERCENT 0x00ff // // ChangeNotify provides the address of a routine with prototype // //VOID ChangeNotify(); //