enum GPO_LINK_TYPE {
GP_LINK_UNKOWN = 0,
GP_LINK_MACHINE = 1,
GP_LINK_SITE = 2,
GP_LINK_DOMAIN = 3,
GP_LINK_OU = 4
};
#define GPO_FLAG_DISABLE 0x00000001
#define GPO_FLAG_FORCE 0x00000002
#define GPO_LIST_FLAG_MACHINE 0x00000001
#define GPO_LIST_FLAG_SITEONLY 0x00000002
#define GPO_VERSION_USER(x) (x >> 16)
#define GPO_VERSION_MACHINE(x) (x & 0xffff)
struct GROUP_POLICY_OBJECT {
uint32 options;
uint32 version;
const char *ds_path;
const char *file_sys_path;
const char *display_name;
const char *name;
const char *link;
uint32 link_type;
const char *user_extensions;
const char *machine_extensions;
struct GROUP_POLICY_OBJECT *next, *prev;
};
#define GPO_LINK_OPT_NONE 0x00000000
#define GPO_LINK_OPT_DISABLED 0x00000001
#define GPO_LINK_OPT_ENFORCED 0x00000002
enum GPO_INHERIT {
GPOPTIONS_INHERIT = 0,
GPOPTIONS_BLOCK_INHERITANCE = 1
};
#define GPFLAGS_ALL_ENABLED 0x00000000
#define GPFLAGS_USER_SETTINGS_DISABLED 0x00000001
#define GPFLAGS_MACHINE_SETTINGS_DISABLED 0x00000002
#define GPFLAGS_ALL_DISABLED (GPFLAGS_USER_SETTINGS_DISABLED | \
GPFLAGS_MACHINE_SETTINGS_DISABLED)
struct GP_LINK {
const char *gp_link;
uint32 gp_opts;
uint32 num_links;
char **link_names;
uint32 *link_opts;
};
struct GP_EXT {
const char *gp_extension;
uint32 num_exts;
char **extensions;
char **extensions_guid;
char **snapins;
char **snapins_guid;
};
#define GPO_CACHE_DIR "gpo_cache"
#define GPT_INI "GPT.INI"