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.

113 lines
2.7 KiB

  1. /*++ BUILD Version: 0001 // Increment this if a change has global effects
  2. Copyright (c) 1991 Microsoft Corporation
  3. Module Name:
  4. biosp.h
  5. Abstract:
  6. PnP BIOS/ISA sepc related definitions
  7. Author:
  8. Shie-Lin Tzong (shielint) April 12, 1995
  9. Revision History:
  10. --*/
  11. //
  12. // Pnp BIOS device node structure
  13. //
  14. typedef struct _PNP_BIOS_DEVICE_NODE {
  15. USHORT Size;
  16. UCHAR Node;
  17. ULONG ProductId;
  18. UCHAR DeviceType[3];
  19. USHORT DeviceAttributes;
  20. // followed by AllocatedResourceBlock, PossibleResourceBlock
  21. // and CompatibleDeviceId
  22. } PNP_BIOS_DEVICE_NODE, far *FPPNP_BIOS_DEVICE_NODE;
  23. //
  24. // Pnp BIOS Installation check
  25. //
  26. typedef struct _PNP_BIOS_INSTALLATION_CHECK {
  27. UCHAR Signature[4]; // $PnP (ascii)
  28. UCHAR Revision;
  29. UCHAR Length;
  30. USHORT ControlField;
  31. UCHAR Checksum;
  32. ULONG EventFlagAddress; // Physical address
  33. USHORT RealModeEntryOffset;
  34. USHORT RealModeEntrySegment;
  35. USHORT ProtectedModeEntryOffset;
  36. ULONG ProtectedModeCodeBaseAddress;
  37. ULONG OemDeviceId;
  38. USHORT RealModeDataBaseAddress;
  39. ULONG ProtectedModeDataBaseAddress;
  40. } PNP_BIOS_INSTALLATION_CHECK, far *FPPNP_BIOS_INSTALLATION_CHECK;
  41. //
  42. // PnP BIOS ROM definitions
  43. //
  44. #define PNP_BIOS_START 0xF0000
  45. #define PNP_BIOS_END 0xFFFFF
  46. #define PNP_BIOS_HEADER_INCREMENT 16
  47. //
  48. // PnP BIOS API function codes
  49. //
  50. #define PNP_BIOS_GET_NUMBER_DEVICE_NODES 0
  51. #define PNP_BIOS_GET_DEVICE_NODE 1
  52. #define PNP_BIOS_SET_DEVICE_NODE 2
  53. #define PNP_BIOS_GET_EVENT 3
  54. #define PNP_BIOS_SEND_MESSAGE 4
  55. #define PNP_BIOS_GET_DOCK_INFORMATION 5
  56. // Function 6 is reserved.
  57. #define PNP_BIOS_SELECT_BOOT_DEVICE 7
  58. #define PNP_BIOS_GET_BOOT_DEVICE 8
  59. #define PNP_BIOS_SET_OLD_ISA_RESOURCES 9
  60. #define PNP_BIOS_GET_OLD_ISA_RESOURCES 0xA
  61. #define PNP_BIOS_GET_ISA_CONFIGURATION 0x40
  62. //
  63. // SMBIOS function codes
  64. #define GET_DMI_INFORMATION 0x50
  65. #define GET_DMI_STRUCTURE 0x51
  66. #define SET_DMI_STRUCTURE 0x52
  67. #define GET_DMI_STRUCTURE_CHANGE_INFO 0x53
  68. #define DMI_CONTROL 0x54
  69. #define GET_GPNV_INFORMATION 0x55
  70. #define READ_GPNV_DATA 0x56
  71. #define WRITE_GPNV_DATA 0x57
  72. typedef USHORT ( far * ENTRY_POINT) (int Function, ...);
  73. //
  74. // Control Flags for Get_Device_Node
  75. //
  76. #define GET_CURRENT_CONFIGURATION 1
  77. #define GET_NEXT_BOOT_CONFIGURATION 2
  78. //
  79. // SMBIOS definitions
  80. typedef SMBIOS_EPS_HEADER far *FPSMBIOS_EPS_HEADER;
  81. typedef SMBIOS_STRUCT_HEADER far *FPSMBIOS_STRUCT_HEADER;
  82. typedef DMIBIOS_EPS_HEADER far *FPDMIBIOS_EPS_HEADER;
  83. //
  84. // We cannot accomodate more than this amount of SMBIOS data to be passed
  85. // from NTDETECT to NTOSKRNL.
  86. #define MAXSMBIOS20SIZE 0x1000