Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

195 lines
7.5 KiB

/*++
Copyright (c) 1991 - 2001 Microsoft Corporation
Module Name:
### ### #### ##### ## ##
## # ### ## ## ## ## ##
### ## ## ## ## ## ## ##
### ## ## ## ## ## #######
### ####### ## ## ## ## ##
# ## ## ## ## ## ## ## ## ##
### ## ## #### ##### ## ## ##
Abstract:
This header contains all definitions necessary
for user mode and kernel mode components to
communicate with the server availability driver stack.
Author:
Wesley Witt (wesw) 1-Oct-2001
Environment:
Kernel mode and user mode both.
Notes:
--*/
#ifndef _SAIO_
#define _SAIO_
#ifdef __cplusplus
extern "C" {
#endif
//
// Current inteface version
//
#define SA_INTERFACE_VERSION 0x00000004
//
// Device name strings
//
#define SA_DEVICE_DISPLAY_NAME_STRING L"\\Device\\ServerAvailabilityLocalDisplay"
#define SA_DEVICE_KEYPAD_NAME_STRING L"\\Device\\ServerAvailabilityKeypad"
#define SA_DEVICE_NVRAM_NAME_STRING L"\\Device\\ServerAvailabilityNvram"
#define SA_DEVICE_WATCHDOG_NAME_STRING L"\\Device\\ServerAvailabilityWatchdog"
//
// Device types
//
#define SA_DEVICE_UNKNOWN (0)
#define SA_DEVICE_DISPLAY (1)
#define SA_DEVICE_KEYPAD (2)
#define SA_DEVICE_NVRAM (3)
#define SA_DEVICE_WATCHDOG (4)
//
// All IOCTL codes & definitions
//
#define FILE_DEVICE_SERVER_AVAILABILITY ((ULONG) 'A')
#define IOCTL_SERVERAVAILABILITY_BASE 0x800
#define SA_IOCTL(FUNC_CODE) CTL_CODE(FILE_DEVICE_SERVER_AVAILABILITY, FUNC_CODE, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
#define FUNC_SA_GET_VERSION (IOCTL_SERVERAVAILABILITY_BASE+0)
#define FUNC_SA_GET_CAPABILITIES (IOCTL_SERVERAVAILABILITY_BASE+1)
#define FUNC_SAWD_DISABLE (IOCTL_SERVERAVAILABILITY_BASE+2)
#define FUNC_SAWD_QUERY_EXPIRE_BEHAVIOR (IOCTL_SERVERAVAILABILITY_BASE+3)
#define FUNC_SAWD_SET_EXPIRE_BEHAVIOR (IOCTL_SERVERAVAILABILITY_BASE+4)
#define FUNC_SAWD_PING (IOCTL_SERVERAVAILABILITY_BASE+5)
#define FUNC_SAWD_QUERY_TIMER (IOCTL_SERVERAVAILABILITY_BASE+6)
#define FUNC_SAWD_SET_TIMER (IOCTL_SERVERAVAILABILITY_BASE+7)
#define FUNC_SAWD_DELAY_BOOT (IOCTL_SERVERAVAILABILITY_BASE+8)
#define FUNC_NVRAM_WRITE_BOOT_COUNTER (IOCTL_SERVERAVAILABILITY_BASE+9)
#define FUNC_NVRAM_READ_BOOT_COUNTER (IOCTL_SERVERAVAILABILITY_BASE+10)
#define FUNC_SADISPLAY_LOCK (IOCTL_SERVERAVAILABILITY_BASE+12)
#define FUNC_SADISPLAY_UNLOCK (IOCTL_SERVERAVAILABILITY_BASE+13)
#define FUNC_SADISPLAY_BUSY_MESSAGE (IOCTL_SERVERAVAILABILITY_BASE+14)
#define FUNC_SADISPLAY_SHUTDOWN_MESSAGE (IOCTL_SERVERAVAILABILITY_BASE+15)
#define FUNC_SADISPLAY_CHANGE_LANGUAGE (IOCTL_SERVERAVAILABILITY_BASE+16)
#define FUNC_DISPLAY_STORE_BITMAP (IOCTL_SERVERAVAILABILITY_BASE+17)
#define FUNC_SA_LAST (IOCTL_SERVERAVAILABILITY_BASE+31)
#define IOCTL_SA_GET_VERSION SA_IOCTL(FUNC_SA_GET_VERSION)
#define IOCTL_SA_GET_CAPABILITIES SA_IOCTL(FUNC_SA_GET_CAPABILITIES)
#define IOCTL_SAWD_DISABLE SA_IOCTL(FUNC_SAWD_DISABLE)
#define IOCTL_SAWD_QUERY_EXPIRE_BEHAVIOR SA_IOCTL(FUNC_SAWD_QUERY_EXPIRE_BEHAVIOR)
#define IOCTL_SAWD_SET_EXPIRE_BEHAVIOR SA_IOCTL(FUNC_SAWD_SET_EXPIRE_BEHAVIOR)
#define IOCTL_SAWD_PING SA_IOCTL(FUNC_SAWD_PING)
#define IOCTL_SAWD_QUERY_TIMER SA_IOCTL(FUNC_SAWD_QUERY_TIMER)
#define IOCTL_SAWD_SET_TIMER SA_IOCTL(FUNC_SAWD_SET_TIMER)
#define IOCTL_NVRAM_WRITE_BOOT_COUNTER SA_IOCTL(FUNC_NVRAM_WRITE_BOOT_COUNTER)
#define IOCTL_NVRAM_READ_BOOT_COUNTER SA_IOCTL(FUNC_NVRAM_READ_BOOT_COUNTER)
#define IOCTL_SADISPLAY_LOCK SA_IOCTL(FUNC_SADISPLAY_LOCK)
#define IOCTL_SADISPLAY_UNLOCK SA_IOCTL(FUNC_SADISPLAY_UNLOCK)
#define IOCTL_SADISPLAY_BUSY_MESSAGE SA_IOCTL(FUNC_SADISPLAY_BUSY_MESSAGE)
#define IOCTL_SADISPLAY_SHUTDOWN_MESSAGE SA_IOCTL(FUNC_SADISPLAY_SHUTDOWN_MESSAGE)
#define IOCTL_SADISPLAY_CHANGE_LANGUAGE SA_IOCTL(FUNC_SADISPLAY_CHANGE_LANGUAGE)
#define IOCTL_FUNC_DISPLAY_STORE_BITMAP SA_IOCTL(FUNC_DISPLAY_STORE_BITMAP)
//
// Structure defintions for IOCTL interfaces
//
#define SA_DISPLAY_TYPE_LED 0x0001
#define SA_DISPLAY_TYPE_CHARACTER_LCD 0x0002
#define SA_DISPLAY_TYPE_BIT_MAPPED_LCD 0x0004
#define SA_DISPLAY_CHAR_ASCII 0x0001
#define SA_DISPLAY_CHAR_UNICODE 0x0002
typedef struct _SA_DISPLAY_CAPS {
ULONG SizeOfStruct;
USHORT DisplayType;
USHORT CharacterSet;
USHORT DisplayHeight;
USHORT DisplayWidth;
} SA_DISPLAY_CAPS, *PSA_DISPLAY_CAPS;
#define SA_DISPLAY_MAX_WIDTH 128
#define SA_DISPLAY_MAX_HEIGHT 128
#define SA_DISPLAY_MAX_BITMAP_SIZE (SA_DISPLAY_MAX_WIDTH * SA_DISPLAY_MAX_HEIGHT)
#define SA_DISPLAY_READY 0x00000001 // OS is running normally
#define SA_DISPLAY_SHUTTING_DOWN 0x00000002 // OS is shutting down
#define SA_DISPLAY_NET_ERR 0x00000004 // LAN error
#define SA_DISPLAY_HW_ERR 0x00000008 // general hardware error
#define SA_DISPLAY_CHECK_DISK 0x00000010 // autochk.exe is running
#define SA_DISPLAY_BACKUP_DISK 0x00000020 // disk backup in progress
#define SA_DISPLAY_NEW_TAPE 0x00000040 // new tape media required
#define SA_DISPLAY_NEW_DISK 0x00000080 // new disk media required
#define SA_DISPLAY_STARTING 0x00000100 // OS is booting
#define SA_DISPLAY_WAN_CONNECTED 0x00000200 // connected to ISP
#define SA_DISPLAY_WAN_ERR 0x00000400 // WAN error, e.g. no dial tone
#define SA_DISPLAY_DISK_ERR 0x00000800 // disk error, e.g. dirty bit set
#define SA_DISPLAY_ADD_START_TASKS 0x00001000 // additional startup tasks running, e.g. autochk, sw update
typedef struct _SA_DISPLAY_SHOW_MESSAGE {
ULONG SizeOfStruct;
ULONG MsgCode;
USHORT Width;
USHORT Height;
UCHAR Bits[SA_DISPLAY_MAX_BITMAP_SIZE];
} SA_DISPLAY_SHOW_MESSAGE, *PSA_DISPLAY_SHOW_MESSAGE;
#define SA_KEYPAD_UP 0x00000001
#define SA_KEYPAD_DOWN 0x00000002
#define SA_KEYPAD_LEFT 0x00000004
#define SA_KEYPAD_RIGHT 0x00000008
#define SA_KEYPAD_CANCEL 0x00000010
#define SA_KEYPAD_SELECT 0x00000020
#define SA_NVRAM_MINIMUM_SIZE 32
#define SA_NVRAM_MAXIMUM_SIZE 128
typedef struct _SA_NVRAM_CAPS {
ULONG SizeOfStruct;
USHORT NvramSize;
} SA_NVRAM_CAPS, *PSA_NVRAM_CAPS;
typedef struct _SA_NVRAM_BOOT_COUNTER {
ULONG SizeOfStruct;
ULONG Number;
ULONG Value;
ULONG DeviceId;
} SA_NVRAM_BOOT_COUNTER, *PSA_NVRAM_BOOT_COUNTER;
typedef struct _SA_WD_CAPS {
ULONG SizeOfStruct;
USHORT Minimum;
USHORT Maximum;
} SA_WD_CAPS, *PSA_WD_CAPS;
#ifdef __cplusplus
}
#endif
#endif /* _SAIO_ */