/*
  miscellaneous IDL structures
*/


[
	pointer_default(unique)
]
interface misc
{
	typedef [public,noprint,gensize,noejs] struct {
		uint32 time_low;
		uint16 time_mid;
		uint16 time_hi_and_version;
		uint8  clock_seq[2];
		uint8  node[6];
	} GUID;

	typedef [public] struct {
		GUID uuid;
		uint32 if_version;
	} ndr_syntax_id;

	typedef [public] struct {
		uint32 handle_type;
		GUID   uuid;
	} policy_handle;

	/* secure channel types */
	/* Only SEC_CHAN_WKSTA can forward requests to other domains. */

	typedef [public] enum {
		SEC_CHAN_WKSTA   = 2,
		SEC_CHAN_DOMAIN  = 4,
		SEC_CHAN_BDC     = 6
	} netr_SchannelType;

	/* SAM database types */
	typedef [public,v1_enum] enum {
		SAM_DATABASE_DOMAIN  = 0, /* Domain users and groups */
		SAM_DATABASE_BUILTIN = 1, /* BUILTIN users and groups */
		SAM_DATABASE_PRIVS   = 2 /* Privileges */
	} netr_SamDatabaseID;

	typedef [public,v1_enum] enum {
		SAMR_REJECT_OTHER      = 0,
		SAMR_REJECT_TOO_SHORT  = 1,
		SAMR_REJECT_IN_HISTORY = 2,
		SAMR_REJECT_COMPLEXITY = 5
	} samr_RejectReason;

	/* id used to identify a endpoint, possibly in a cluster */
	typedef [public] struct {
		hyper id;
		uint32 id2;
		uint32 node;
	} server_id;
}
