Source code of Windows XP (NT5)
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.
|
|
/*****************************************************************************
* * (C) Copyright MICROSOFT Corp., 1994 * * Title: BIOS.H - PnP BIOS Enumerator VxD * * Version: 4.00 * * Date: 6-Feb-1994 * * Author: MSq * *------------------------------------------------------------------------------ * * Change log: * * DATE REV DESCRIPTION * ----------- --- ----------------------------------------------------------- * 6-Feb-1994 MSq Original *****************************************************************************/
/*XLATOFF*/ #define BIOS_Service Declare_Service
/*XLATON*/
/*MACROS*/ Begin_Service_Table(BIOS, VxD) BIOS_Service (_BIOSGetVersion, VxD_CODE) BIOS_Service (_BIOSSoftUndock, VxD_CODE) BIOS_Service (_BIOSGetCapabilities, VxD_CODE) BIOS_Service (_BIOSGetAPMTable, VxD_CODE) End_Service_Table(BIOS, VxD) /*ENDMACROS*/
/*
* One can add a VxD to fix a broken BIOS. This VxD must have * BIOS_EXT_DEVICE_ID as device ID and must export three services, in that * order: * * GetVersion: must return in eax 0x00000100 for this release and carry * clear (ie standard version code). * * GetHeader: must return in eax the linear address to an installation * structure, this need not be in BIOS space, but need to have the correct * values for building BIOS selectors. The structure will be used instead of * the one found by the scan. Also, the BIOS EXT VxD must use this time to * initialize. If initialization failed, the value 0 must be return. * * CallBIOS: will be called instead of calling the BIOS entry point. The * stack will be the exact same as if we were calling the BIOS except that * the return address is a 32-bit ret to BIOS.VxD. Also CS=DS=ES=SS=Flat * segment. Thus the BIOS_EXT VxD can pop the return address in a local * variable (this API will never be reentered) and do stack munging before * calling its internal function or call BIOS even. All registers except * eax, which is the return value, must be preserved. The high word of eax * is discarded by BIOS.VxD. */
/*XLATOFF*/ #define BIOS_EXT_Service Declare_Service
/*XLATON*/
/*MACROS*/ Begin_Service_Table(BIOS_EXT, VxD) BIOS_EXT_Service (_BIOSEXTGetVersion, VxD_CODE) BIOS_EXT_Service (_BIOSEXTGetHeader, VxD_CODE) BIOS_EXT_Service (_BIOSEXTCallBIOS, VxD_CODE) End_Service_Table(BIOS_EXT, VxD) /*ENDMACROS*/
#define PNPBIOS_SERVICE_GETVERSION 0x000
#define PNPBIOS_SERVICE_SOFTUNDOCK 0x100
#define PNPBIOS_SERVICE_GETDOCKCAPABILITIES 0x200
#define PNPBIOS_SERVICE_GETAPMTABLE 0x300
struct BIOSPARAMSTAG { DWORD bp_ret; WORD *bp_pTableSize; char *bp_pTable; };
typedef struct BIOSPARAMSTAG BIOSPARAMS; typedef struct BIOSPARAMSTAG *PBIOSPARAMS;
#define PNPBIOS_ERR_NONE 0x00
#define PNPBIOS_ERR_SUCCESS PNPBIOS_ERR_NONE
#define PNPBIOS_WARN_NOT_SET_STATICALLY 0x7F
#define PNPBIOS_ERR_UNKNOWN_FUNCTION 0x81
#define PNPBIOS_ERR_FUNCTION_NOT_SUPPORTED 0x82
#define PNPBIOS_ERR_INVALID_HANDLE 0x83
#define PNPBIOS_ERR_BAD_PARAMETER 0x84
#define PNPBIOS_ERR_SET_FAILED 0x85
#define PNPBIOS_ERR_EVENTS_NOT_PENDING 0x86
#define PNPBIOS_ERR_SYSTEM_NOT_DOCKED 0x87
#define PNPBIOS_ERR_NO_ISA_PNP_CARDS 0x88
#define PNPBIOS_ERR_CANT_DETERMINE_DOCKING 0x89
#define PNPBIOS_ERR_CHANGE_FAILED_NO_BATTERY 0x8A
#define PNPBIOS_ERR_CHANGE_FAILED_CONFLICT 0x8B
#define PNPBIOS_ERR_BUFFER_TOO_SMALL 0x8C
#define PNPBIOS_ERR_USE_ESCD_SUPPORT 0x8D
#define PNPBIOS_ERR_MS_INTERNAL 0xFE
#define PNPBIOS_DOCK_CAPABILITY_VCR 0x0001
#define PNPBIOS_DOCK_CAPABILITY_TEMPERATURE 0x0006
#define PNPBIOS_DOCK_CAPABILITY_COLD 0x0000
#define PNPBIOS_DOCK_CAPABILITY_WARM 0x0002
#define PNPBIOS_DOCK_CAPABILITY_HOT 0x0004
|