#ifndef __PROTOCOL_H__ #define __PROTOCOL_H__ #define XTCB_SEED_LENGTH 16 #define XTCB_HMAC_LENGTH 16 typedef struct _XTCB_INIT_MESSAGE { ULONG Version ; ULONG Length ; UCHAR Seed[ XTCB_SEED_LENGTH ]; UCHAR HMAC[ XTCB_HMAC_LENGTH ]; UNICODE_STRING32 OriginatingNode ; UNICODE_STRING32 Group ; ULONG PacOffset ; ULONG PacLength ; } XTCB_INIT_MESSAGE, * PXTCB_INIT_MESSAGE ; typedef struct _XTCB_INIT_MESSAGE_REPLY { ULONG Version ; ULONG Length ; UCHAR ReplySeed[ XTCB_SEED_LENGTH ]; UCHAR HMAC[ XTCB_HMAC_LENGTH ]; } XTCB_INIT_MESSAGE_REPLY, * PXTCB_INIT_MESSAGE_REPLY ; typedef struct _XTCB_MESSAGE_SIGNATURE { ULONG Version ; UCHAR HMAC[ XTCB_HMAC_LENGTH ]; ULONG SequenceNumber ; } XTCB_MESSAGE_SIGNATURE, * PXTCB_MESSAGE_SIGNATURE ; typedef struct _XTCB_PAC { ULONG Tag ; ULONG Length ; ULONG UserOffset ; ULONG GroupCount ; ULONG GroupOffset ; ULONG UserLength ; ULONG GroupLength ; ULONG RestrictionCount ; ULONG RestrictionOffset ; ULONG RestrictionLength ; ULONG NameOffset; ULONG NameLength; ULONG DomainOffset; ULONG DomainLength; ULONG CredentialOffset ; ULONG CredentialLength ; UCHAR UniqueTag[ XTCB_SEED_LENGTH ]; } XTCB_PAC, * PXTCB_PAC ; #define XTCB_PAC_TAG 'BCTX' #endif // __PROTOCOL_H__