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.
|
|
/*++
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_ */
|