Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

112 lines
2.6 KiB

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
uuidsup.hxx
Abstract:
Data structures and functions avaliable in uuidsup.cxx
This file is shared between all systems.
Author:
Mario Goertzel (MarioGo) May 25, 1994
Revision History:
--*/
#ifndef __UUIDSUP_HXX__
#define __UUIDSUP_HXX__
#if !defined(DOSWIN32RPC) && !defined(WINNT35_UUIDS)
// On NT systems (post 3.5) use kernel supplied uuid time allocator.
#define KERNEL_UUIDS
#endif
// This is the "true" OSF DCE format for Uuids. We use this
// when generating Uuids. The NodeId is faked on systems w/o
// a netcard.
typedef struct _RPC_UUID_GENERATE
{
unsigned long TimeLow;
unsigned short TimeMid;
unsigned short TimeHiAndVersion;
unsigned char ClockSeqHiAndReserved;
unsigned char ClockSeqLow;
unsigned char NodeId[6];
} RPC_UUID_GENERATE;
#define RPC_UUID_TIME_HIGH_MASK 0x0FFF
#define RPC_UUID_VERSION 0x1000
#define RPC_UUID_RESERVED 0x80
#define RPC_UUID_CLOCK_SEQ_HI_MASK 0x3F
// Note UUIDTIME is assumed to have a .LowPart and a .HighPart
// on all systems. Also, COMPARE_TIMES and ADD_TIME must be defined.
#ifdef WIN32RPC
//
// Definitions for Windows NT/Windows 4.x
//
typedef ULARGE_INTEGER UUIDTIME;
#define COMPARE_TIMES(t1,t2) ((t1).QuadPart == (t2).QuadPart)
#define ADD_TIME(t,v) (t).QuadPart += (v);
#elif defined(DOS) || defined(MAC)
//
// Definitions for DOS and Win16
//
typedef struct {
unsigned long LowPart;
unsigned long HighPart;
} UUIDTIME;
#define COMPARE_TIMES(t1,t2) ( ((t1).HighPart == (t2).HighPart )\
&& ((t1).LowPart == (t2).LowPart) )
#define ADD_TIME(t,v) { unsigned long __save_VaLue = (t).LowPart;\
(t).LowPart += (v); \
if( (t).LowPart< __save_VaLue) \
(t).HighPart++; }
#else
#error Unknown System
#endif // WIN32RPC
typedef struct _UUID_CACHED_VALUES_STRUCT
{
UUIDTIME NextTime; // Next time avaliable, used in next uuid
UUIDTIME LastTime; // Last time reserved, always > NextTime.
unsigned short ClockSequence;
unsigned char NodeId[6];
} UUID_CACHED_VALUES_STRUCT;
RPC_STATUS __RPC_API
UuidGlobalMutexRequest(void);
void __RPC_API
UuidGlobalMutexClear(void);
#ifdef KERNEL_UUIDS
#define UuidGlobalMutexRequest() RPC_S_OK
#define UuidGlobalMutexClear()
#endif
RPC_STATUS __RPC_API
GetNodeId(unsigned char __RPC_FAR *NodeId);
RPC_STATUS __RPC_API
UuidGetValues(UUID_CACHED_VALUES_STRUCT __RPC_FAR *);
#endif // __UUIDSUP_HXX__