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.
 
 
 
 
 
 

352 lines
7.5 KiB

/*---------------------------------------------------------------------------------*/
/* TREE and LEAF Definitions */
/*---------------------------------------------------------------------------------*/
typedef struct LEAF_
{
BYTE NodeCode;
BYTE NodeGroup;
BYTE NodeClass;
BYTE NodeModifiers;
TEXT * NodeInherentText;
}
LEAF;
typedef struct TREE_
{
BYTE TypeOfSubordinateNodes;
BYTE NumberOfSubordinateNodes;
struct TREE_ * SubordinateNodes;
TEXT * NodeInherentText;
}
TREE;
/*---------------------------------------------------------------------------------*/
/* All tree and leaf relevant constants */
/*---------------------------------------------------------------------------------*/
#define AuxiliaryClass 0x01
#define CollateGroup 0x01
#define CollateRecordsRequest 0x12
#define CreateGroup 0x02
#define ClearCreateFlagRequest 0x21
#define CreateNextRecordRequest 0x22
#define CreateRecordRequest 0x23
#define CreateRecordsRequest 0x24
#define SetCreateFlagRequest 0x25
#define RecordGroup 0x03
#define AppendRecordRequest 0x31
#define CollateFileRequest 0x32
#define CopyRecordRequest 0x33
#define TypeGroup 0x04
#define TypeCommentRequest 0x41
#define UtilityGroup 0x05
#define AppendFileRequest 0x51
#define CollateFilesRequest 0x52
#define CopyFileRequest 0x53
#define DefineClass 0x02
#define DefineGroup 0x01
#define DefineFileRequest 0x11
#define DefineProcessRequest 0x12
#define DefinePrototypeRequest 0x13
#define DefineSemaphoreRequest 0x14
#define DefineTimerRequest 0x15
#define FileClass 0x03
#define FileLocksGroup 0x01
#define ChangeFileLocksRequest 0x11
#define LockSet 0x10
#define LockRange 0x11
#define LockShare 0x12
#define UnlockSet 0x20
#define FilePointerGroup 0x02
#define ChangeFilePointerRequest 0x21
#define GenericFileGroup 0x03
#define CloseFileRequest 0x31
#define DeleteFileRequest 0x32
#define QueryFileRequest 0x33
#define GenericFilesGroup 0x04
#define CloseFilesRequest 0x41
#define DeleteFilesRequest 0x42
#define OpenFilesRequest 0x43
#define QueryFilesRequest 0x44
#define OpenFileGroup 0x05
#define OpenFileRequest 0x51
#define TruncateFileRequest 0x52
#define ReadFileGroup 0x06
#define BeginReadingFileRequest 0x61
#define ContinueReadingFileRequest 0x62
#define EndReadingFileRequest 0x63
#define ReadFileRequest 0x64
#define WriteFileGroup 0x07
#define BeginWritingFileRequest 0x71
#define ContinueWritingFileRequest 0x72
#define EndWritingFileRequest 0x73
#define WriteFileRequest 0x74
#define FlowClass 0x04
#define BraceGroup 0x01
#define LeftBraceRequest 0x11
#define RightBraceRequest 0x12
#define OnErrorGroup 0x02
#define OnErrorRequest 0x21
#define OnOptionBlock 0x01
#define OnOptionCommand 0x02
#define OnOptionExit 0x04
#define OnOptionPause 0x08
#define OnOptionRepeat 0x10
#define OnTimeoutGroup 0x03
#define OnTimeoutRequest 0x31
#define RepeatGroup 0x04
#define RepeatRequest 0x41
#define RepeatIndefinitely 0x01
#define RepeatOnCount 0x02
#define RepeatOnTimer 0x04
#define ParameterClass 0x05
#undef FileLocksGroup
#define FileLocksGroup 0x01
#undef FilePointerGroup
#define FilePointerGroup 0x02
#define ByteIndexGroup 0x03
#define BufferChosen 0x31
#define PatternChosen 0x32
#define PrototypeChosen 0x33
#define SchemeChosen 0x34
#define SemaphoreChosen 0x35
#define QuadIndexGroup 0x05
#define CountChosen 0x51
#define RecordChosen 0x52
#define QuadSizeGroup 0x06
#define BufferSpaceValue 0x61
#define FileSizeValue 0x62
#define LockLengthValue 0x63
#define LockStartValue 0x64
#define SignedQuadGroup 0x07
#define OffsetValue 0x71
#define TextTokenGroup 0x08
#define OffPointIndex 0x81
#define OffPointBegin 0x01
#define OffPointCurrent 0x02
#define OffPointEnd 0x04
#define TimeGroup 0x09
#define TimeoutValue 0x91
#define WordSizeGroup 0x0A
#define RecordSizeValue 0xA1
#define AttributeGroup 0x81
#define FileAttributeSet 0x80
#define FileArchived 0x40
#define FileHidden 0x20
#define FileNormal 0x10
#define FileReadOnly 0x08
#define FileSystem 0x04
#define OpenFlagsGroup 0x82
#define FileOpenFlagsSet 0x80
#define OpenFlagsCreate 0x40
#define OpenFlagsOpen 0x20
#define OpenFlagsOpenCreate 0x10
#define OpenFlagsTruncate 0x08
#define OpenFlagsTruncateCreate 0x04
#define AccessModeGroup 0x83
#define FileAccessModeSet 0x80
#define AccessModeReadOnly 0x40
#define AccessModeReadWrite 0x20
#define AccessModeWriteOnly 0x10
#define ShareModeGroup 0x84
#define FileShareModeSet 0x80
#define ShareModeDenyNone 0x40
#define ShareModeDenyRead 0x20
#define ShareModeDenyReadWrite 0x10
#define ShareModeDenyWrite 0x08
#define LocalityModeGroup 0x85
#define FileLocalityModeSet 0x80
#define LocalityFlag 0x40
#define RandomFlag 0x20
#define RandomSequentialFlag 0x10
#define SequentialFlag 0x08
#define OtherModeGroup 0x86
#define FileModeFlagsSet 0x80
#define CacheFlag 0x40
#define DASD_Flag 0x20
#define FailOnErrorFlag 0x10
#define InheritanceFlag 0x08
#define WriteThroughFlag 0x04
#define ScanClass 0x06
#define ScanGroup 0x01
#define CompletePackingRequest 0x11
#define ExecutionSectionRequest 0x12
#define PrototypeSectionRequest 0x13
#define SemaphoreClass 0x07
#define BaseGroup 0x01
#define ClearSemaphoreRequest 0x11
#define SetSemaphoreRequest 0x12
#define WaitGroup 0x02
#define RequestSemaphoreRequest 0x21
#define SetSemaphoreAndWaitRequest 0x22
#define WaitForSemaphoreRequest 0x23
#define TimerClass 0x08
#define SleepGroup 0x01
#define SleepRequest 0x11
#define TimerGroup 0x02
#define ReadTimerRequest 0x21
#define StartTimerRequest 0x22
#define TimersGroup 0x03
#define StartTimersRequest 0x31
/*---------------------------------------------------------------------------------*/
#define Leaf 0x10
#define Tree 0x20
#define Join 0x01
#define List 0x02
#define Text 0x06
/*---------------------------------------------------------------------------------*/
#define AsynchronousFlag 0x80
#define ProcessFlag 0x40
#define PrototypeFlag 0x20
#define SemaphoreFlag 0x10
#define PatternFlag 0x08
#define SchemeFlag 0x08
#define ExceptFlag 0x04
#define UsingFlag 0x02
#define UsingSuiteFlag 0x01
#define DecrementFlag 0x02
#define IncrementFlag 0x01
#define OptionChosenNo 0x02
#define OptionChosenYes 0x01
#define TimeInHour 0x80
#define TimeInHours 0x40
#define TimeInMilliseconds 0x20
#define TimeInMinutes 0x10
#define TimeInSeconds 0x08
#define TimeInUnits 0xf8
#define ChangeFlags ( DecrementFlag | IncrementFlag )
#define SuiteFlags ( ExceptFlag | UsingSuiteFlag )
/*---------------------------------------------------------------------------------*/