99 lines
1.6 KiB
C
99 lines
1.6 KiB
C
/*++ BUILD Version: 0001 // Increment this if a change has global effects
|
|
|
|
Copyright (c) 1985 - 1999, Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
machine.h
|
|
|
|
Abstract:
|
|
|
|
This is the include file that defines detect of machine type.
|
|
|
|
Author:
|
|
|
|
kazum 10-Aug-1994
|
|
|
|
Revision History:
|
|
|
|
*/
|
|
|
|
#ifndef _MACHINE_ID_
|
|
#define _MACHINE_ID_
|
|
|
|
#if defined(i386)
|
|
|
|
// These definition is only for Intel platform.
|
|
|
|
|
|
// Hardware platform ID
|
|
|
|
|
|
#define PC_AT_COMPATIBLE 0x00000000
|
|
#define PC_9800_COMPATIBLE 0x00000001
|
|
#define FMR_COMPATIBLE 0x00000002
|
|
|
|
|
|
// NT Vendor ID
|
|
|
|
|
|
#define NT_MICROSOFT 0x00010000
|
|
#define NT_NEC 0x00020000
|
|
#define NT_FUJITSU 0x00040000
|
|
|
|
|
|
// Vendor/Machine IDs
|
|
|
|
// DWORD MachineID
|
|
|
|
// 31 15 0
|
|
// +-------------+-------------+
|
|
// | Vendor ID | Platform ID |
|
|
// +-------------+-------------+
|
|
|
|
|
|
#define MACHINEID_MS_PCAT (NT_MICROSOFT|PC_AT_COMPATIBLE)
|
|
#define MACHINEID_MS_PC98 (NT_MICROSOFT|PC_9800_COMPATIBLE)
|
|
#define MACHINEID_NEC_PC98 (NT_NEC |PC_9800_COMPATIBLE)
|
|
#define MACHINEID_FUJITSU_FMR (NT_FUJITSU |FMR_COMPATIBLE)
|
|
|
|
|
|
// Build 683 compatibility.
|
|
|
|
// !!! should be removed.
|
|
|
|
#define MACHINEID_MICROSOFT MACHINEID_MS_PCAT
|
|
|
|
|
|
// Macros
|
|
|
|
|
|
#define ISNECPC98(x) (x == MACHINEID_NEC_PC98)
|
|
#define ISFUJITSUFMR(x) (x == MACHINEID_FUJITSU_FMR)
|
|
#define ISMICROSOFT(x) (x == MACHINEID_MS_PCAT)
|
|
|
|
|
|
// Functions.
|
|
|
|
|
|
|
|
// User mode ( NT API )
|
|
|
|
|
|
LONG
|
|
NtGetMachineIdentifierValue(
|
|
IN OUT PULONG Value
|
|
);
|
|
|
|
|
|
// User mode ( Win32 API )
|
|
|
|
|
|
LONG
|
|
RegGetMachineIdentifierValue(
|
|
IN OUT PULONG Value
|
|
);
|
|
|
|
#endif // defined(i386)
|
|
#endif // _MACHINE_ID_
|