#ifndef SID__H
#define SID__H

typedef struct  _SID5
{
   UCHAR Revision;
   UCHAR SubAuthorityCount;
   SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
   ULONG SubAuthority[ 5 ];
} SID5;

#define MAKE_SID0(_name, _sa ) \
	SID5 _name = { 1, 1, { 0, 0, 0, 0, 0, _sa } }
#define MAKE_SID1(_name, _sa, _rid ) \
	SID5 _name = { 1, 1, { 0, 0, 0, 0, 0, _sa }, _rid }
#define MAKE_SID2(_name, _sa, _rid , _rid2 ) \
	SID5 _name = { 1, 2, { 0, 0, 0, 0, 0, _sa }, _rid, _rid2 }
#define MAKE_SID3(_name, _sa, _rid , _rid2, _rid3 ) \
	SID5 _name = { 1, 2, { 0, 0, 0, 0, 0, _sa }, _rid, _rid2, _rid3 }
#define MAKE_SID4(_name, _sa, _rid , _rid2, _rid3, _rid4 ) \
	SID5 _name = { 1, 2, { 0, 0, 0, 0, 0, _sa }, _rid, _rid2, _rid3, _rid4 }
#define MAKE_SID5(_name, _sa, _rid , _rid2, _rid3, _rid4, _rid5 ) \
	SID5 _name = { 1, 2, { 0, 0, 0, 0, 0, _sa }, _rid, _rid2, _rid3, _rid4, _rid5 }

#endif

syntax highlighted by Code2HTML, v. 0.9.1