1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

added 9 more info levels to lsa_QueryInfoPolicy

(This used to be commit b2ced24fc0)
This commit is contained in:
Andrew Tridgell 2003-11-11 07:57:08 +00:00
parent 5475c9f978
commit 8830a20bce
7 changed files with 487 additions and 27 deletions

View File

@ -23,7 +23,7 @@ typedef SMB_BIG_UINT large_t;
/* Globally Unique ID */
#define GUID_SIZE 16
typedef struct guid_info
typedef struct GUID
{
uint8 info[GUID_SIZE];
} GUID;
@ -35,6 +35,14 @@ typedef struct nttime_info
uint32 high;
} NTTIME;
/* 8 byte aligned 'hyper' type from MS IDL */
typedef struct
{
uint32 low;
uint32 high;
} HYPER_T;
/* this structure is just a wrapper for a string, the only reason we
bother with this is that it allows us to check the length provided

View File

@ -120,12 +120,65 @@
typedef struct {
lsa_Name name;
dom_sid2 *sid;
} lsa_PrimaryDomainInfo;
} lsa_DomainInfo;
typedef struct {
lsa_Name name;
} lsa_PDAccountInfo;
typedef struct {
uint16 role;
} lsa_ServerRole;
typedef struct {
lsa_Name source;
lsa_Name account;
} lsa_ReplicaSourceInfo;
typedef struct {
uint32 paged_pool;
uint32 non_paged_pool;
uint32 min_wss;
uint32 max_wss;
uint32 pagefile;
HYPER_T unknown;
} lsa_DefaultQuotaInfo;
typedef struct {
HYPER_T modified_id;
NTTIME db_create_time;
} lsa_ModificationInfo;
typedef struct {
uint32 shutdown_on_full;
} lsa_AuditFullSetInfo;
typedef struct {
uint32 shutdown_on_full;
uint32 log_is_full;
} lsa_AuditFullQueryInfo;
typedef struct {
lsa_Name name;
lsa_Name dns_domain;
lsa_Name dns_forest;
GUID domain_guid;
dom_sid2 *sid;
} lsa_DnsDomainInfo;
typedef union {
case(1) lsa_AuditLogInfo audit_log;
case(2) lsa_AuditEventsInfo audit_events;
case(3) lsa_PrimaryDomainInfo domain;
case(1) lsa_AuditLogInfo audit_log;
case(2) lsa_AuditEventsInfo audit_events;
case(3) lsa_DomainInfo domain;
case(4) lsa_PDAccountInfo pd;
case(5) lsa_DomainInfo account_domain;
case(6) lsa_ServerRole role;
case(7) lsa_ReplicaSourceInfo replica;
case(8) lsa_DefaultQuotaInfo quota;
case(9) lsa_ModificationInfo db;
case(10) lsa_AuditFullSetInfo auditfullset;
case(11) lsa_AuditFullQueryInfo auditfullquery;
case(12) lsa_DnsDomainInfo dns;
} lsa_PolicyInformation;
NTSTATUS lsa_QueryInfoPolicy (

View File

@ -75,7 +75,6 @@ struct ndr_print {
#define NDR_PRINT_UNION_DEBUG(type, level, p) ndr_print_union_debug((ndr_print_union_fn_t)ndr_print_ ##type, #p, level, p)
/*
flags passed to control parse flow
*/

View File

@ -80,6 +80,24 @@ NTSTATUS ndr_pull_uint32(struct ndr_pull *ndr, uint32 *v)
return NT_STATUS_OK;
}
/*
parse a HYPER_T
*/
NTSTATUS ndr_pull_HYPER_T(struct ndr_pull *ndr, HYPER_T *v)
{
NDR_PULL_ALIGN(ndr, 8);
NDR_PULL_NEED_BYTES(ndr, 8);
if (ndr->flags & LIBNDR_FLAG_BIGENDIAN) {
v->low = RIVAL(ndr->data, ndr->offset);
v->high = RIVAL(ndr->data, ndr->offset+4);
} else {
v->low = IVAL(ndr->data, ndr->offset);
v->high = IVAL(ndr->data, ndr->offset+4);
}
ndr->offset += 8;
return NT_STATUS_OK;
}
/*
pull a NTSTATUS
*/
@ -152,14 +170,11 @@ NTSTATUS ndr_pull_array_uint32(struct ndr_pull *ndr, uint32 *data, uint32 n)
/*
parse a GUID
*/
NTSTATUS ndr_pull_guid(struct ndr_pull *ndr, GUID *guid)
NTSTATUS ndr_pull_GUID(struct ndr_pull *ndr, int ndr_flags, GUID *guid)
{
int i;
NDR_PULL_NEED_BYTES(ndr, GUID_SIZE);
for (i=0;i<GUID_SIZE;i++) {
guid->info[i] = CVAL(ndr->data, ndr->offset + i);
if (ndr_flags & NDR_SCALARS) {
return ndr_pull_bytes(ndr, guid->info, GUID_SIZE);
}
ndr->offset += i;
return NT_STATUS_OK;
}
@ -206,6 +221,19 @@ NTSTATUS ndr_push_uint32(struct ndr_push *ndr, uint32 v)
return NT_STATUS_OK;
}
/*
push a HYPER_T
*/
NTSTATUS ndr_push_HYPER_T(struct ndr_push *ndr, HYPER_T v)
{
NDR_PUSH_ALIGN(ndr, 8);
NDR_PUSH_NEED_BYTES(ndr, 8);
SIVAL(ndr->data, ndr->offset, v.low);
SIVAL(ndr->data, ndr->offset+4, v.high);
ndr->offset += 8;
return NT_STATUS_OK;
}
NTSTATUS ndr_push_align(struct ndr_push *ndr, size_t size)
{
NDR_PUSH_ALIGN(ndr, size);
@ -385,7 +413,7 @@ NTSTATUS ndr_push_offset_ptr(struct ndr_push *ndr,
/*
push a GUID
*/
NTSTATUS ndr_push_guid(struct ndr_push *ndr, GUID *guid)
NTSTATUS ndr_push_GUID(struct ndr_push *ndr, GUID *guid)
{
return ndr_push_bytes(ndr, guid->info, GUID_SIZE);
}
@ -431,6 +459,11 @@ void ndr_print_uint32(struct ndr_print *ndr, const char *name, uint32 v)
ndr->print(ndr, "%-25s: 0x%08x (%u)", name, v, v);
}
void ndr_print_HYPER_T(struct ndr_print *ndr, const char *name, HYPER_T v)
{
ndr->print(ndr, "%-25s: 0x%08x%08x", name, v.high, v.low);
}
void ndr_print_ptr(struct ndr_print *ndr, const char *name, const void *p)
{
if (p) {
@ -482,3 +515,13 @@ void ndr_print_array_uint32(struct ndr_print *ndr, const char *name,
}
ndr->depth--;
}
void ndr_print_GUID(struct ndr_print *ndr, const char *name, struct GUID *guid)
{
ndr->print(ndr, "%-25s: %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
name,
IVAL(guid->info, 0), SVAL(guid->info, 4), SVAL(guid->info, 6),
guid->info[8], guid->info[9],
guid->info[10], guid->info[11], guid->info[12], guid->info[13],
guid->info[14], guid->info[15]);
}

View File

@ -412,7 +412,7 @@ void ndr_print_lsa_AuditEventsInfo(struct ndr_print *ndr, const char *name, stru
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_PrimaryDomainInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_PrimaryDomainInfo *r)
static NTSTATUS ndr_pull_lsa_DomainInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_DomainInfo *r)
{
uint32 _ptr_sid;
NDR_CHECK(ndr_pull_align(ndr, 4));
@ -434,9 +434,9 @@ done:
return NT_STATUS_OK;
}
void ndr_print_lsa_PrimaryDomainInfo(struct ndr_print *ndr, const char *name, struct lsa_PrimaryDomainInfo *r)
void ndr_print_lsa_DomainInfo(struct ndr_print *ndr, const char *name, struct lsa_DomainInfo *r)
{
ndr_print_struct(ndr, name, "lsa_PrimaryDomainInfo");
ndr_print_struct(ndr, name, "lsa_DomainInfo");
ndr->depth++;
ndr_print_lsa_Name(ndr, "name", &r->name);
ndr_print_ptr(ndr, "sid", r->sid);
@ -448,6 +448,203 @@ void ndr_print_lsa_PrimaryDomainInfo(struct ndr_print *ndr, const char *name, st
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_PDAccountInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_PDAccountInfo *r)
{
NDR_CHECK(ndr_pull_align(ndr, 4));
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_lsa_Name(ndr, NDR_SCALARS, &r->name));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
NDR_CHECK(ndr_pull_lsa_Name(ndr, ndr_flags, &r->name));
done:
return NT_STATUS_OK;
}
void ndr_print_lsa_PDAccountInfo(struct ndr_print *ndr, const char *name, struct lsa_PDAccountInfo *r)
{
ndr_print_struct(ndr, name, "lsa_PDAccountInfo");
ndr->depth++;
ndr_print_lsa_Name(ndr, "name", &r->name);
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_ServerRole(struct ndr_pull *ndr, int ndr_flags, struct lsa_ServerRole *r)
{
NDR_CHECK(ndr_pull_align(ndr, 4));
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_uint16(ndr, &r->role));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
done:
return NT_STATUS_OK;
}
void ndr_print_lsa_ServerRole(struct ndr_print *ndr, const char *name, struct lsa_ServerRole *r)
{
ndr_print_struct(ndr, name, "lsa_ServerRole");
ndr->depth++;
ndr_print_uint16(ndr, "role", r->role);
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_ReplicaSourceInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_ReplicaSourceInfo *r)
{
NDR_CHECK(ndr_pull_align(ndr, 4));
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_lsa_Name(ndr, NDR_SCALARS, &r->source));
NDR_CHECK(ndr_pull_lsa_Name(ndr, NDR_SCALARS, &r->account));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
NDR_CHECK(ndr_pull_lsa_Name(ndr, ndr_flags, &r->source));
NDR_CHECK(ndr_pull_lsa_Name(ndr, ndr_flags, &r->account));
done:
return NT_STATUS_OK;
}
void ndr_print_lsa_ReplicaSourceInfo(struct ndr_print *ndr, const char *name, struct lsa_ReplicaSourceInfo *r)
{
ndr_print_struct(ndr, name, "lsa_ReplicaSourceInfo");
ndr->depth++;
ndr_print_lsa_Name(ndr, "source", &r->source);
ndr_print_lsa_Name(ndr, "account", &r->account);
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_DefaultQuotaInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_DefaultQuotaInfo *r)
{
NDR_CHECK(ndr_pull_align(ndr, 8));
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_uint32(ndr, &r->paged_pool));
NDR_CHECK(ndr_pull_uint32(ndr, &r->non_paged_pool));
NDR_CHECK(ndr_pull_uint32(ndr, &r->min_wss));
NDR_CHECK(ndr_pull_uint32(ndr, &r->max_wss));
NDR_CHECK(ndr_pull_uint32(ndr, &r->pagefile));
NDR_CHECK(ndr_pull_HYPER_T(ndr, &r->unknown));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
done:
return NT_STATUS_OK;
}
void ndr_print_lsa_DefaultQuotaInfo(struct ndr_print *ndr, const char *name, struct lsa_DefaultQuotaInfo *r)
{
ndr_print_struct(ndr, name, "lsa_DefaultQuotaInfo");
ndr->depth++;
ndr_print_uint32(ndr, "paged_pool", r->paged_pool);
ndr_print_uint32(ndr, "non_paged_pool", r->non_paged_pool);
ndr_print_uint32(ndr, "min_wss", r->min_wss);
ndr_print_uint32(ndr, "max_wss", r->max_wss);
ndr_print_uint32(ndr, "pagefile", r->pagefile);
ndr_print_HYPER_T(ndr, "unknown", r->unknown);
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_ModificationInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_ModificationInfo *r)
{
NDR_CHECK(ndr_pull_align(ndr, 8));
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_HYPER_T(ndr, &r->modified_id));
NDR_CHECK(ndr_pull_NTTIME(ndr, &r->db_create_time));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
done:
return NT_STATUS_OK;
}
void ndr_print_lsa_ModificationInfo(struct ndr_print *ndr, const char *name, struct lsa_ModificationInfo *r)
{
ndr_print_struct(ndr, name, "lsa_ModificationInfo");
ndr->depth++;
ndr_print_HYPER_T(ndr, "modified_id", r->modified_id);
ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_AuditFullSetInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_AuditFullSetInfo *r)
{
NDR_CHECK(ndr_pull_align(ndr, 4));
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_uint32(ndr, &r->shutdown_on_full));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
done:
return NT_STATUS_OK;
}
void ndr_print_lsa_AuditFullSetInfo(struct ndr_print *ndr, const char *name, struct lsa_AuditFullSetInfo *r)
{
ndr_print_struct(ndr, name, "lsa_AuditFullSetInfo");
ndr->depth++;
ndr_print_uint32(ndr, "shutdown_on_full", r->shutdown_on_full);
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_AuditFullQueryInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_AuditFullQueryInfo *r)
{
NDR_CHECK(ndr_pull_align(ndr, 4));
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_uint32(ndr, &r->shutdown_on_full));
NDR_CHECK(ndr_pull_uint32(ndr, &r->log_is_full));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
done:
return NT_STATUS_OK;
}
void ndr_print_lsa_AuditFullQueryInfo(struct ndr_print *ndr, const char *name, struct lsa_AuditFullQueryInfo *r)
{
ndr_print_struct(ndr, name, "lsa_AuditFullQueryInfo");
ndr->depth++;
ndr_print_uint32(ndr, "shutdown_on_full", r->shutdown_on_full);
ndr_print_uint32(ndr, "log_is_full", r->log_is_full);
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_DnsDomainInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_DnsDomainInfo *r)
{
uint32 _ptr_sid;
NDR_CHECK(ndr_pull_align(ndr, 4));
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_lsa_Name(ndr, NDR_SCALARS, &r->name));
NDR_CHECK(ndr_pull_lsa_Name(ndr, NDR_SCALARS, &r->dns_domain));
NDR_CHECK(ndr_pull_lsa_Name(ndr, NDR_SCALARS, &r->dns_forest));
NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_sid));
if (_ptr_sid) {
NDR_ALLOC(ndr, r->sid);
} else {
r->sid = NULL;
}
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
NDR_CHECK(ndr_pull_lsa_Name(ndr, ndr_flags, &r->name));
NDR_CHECK(ndr_pull_lsa_Name(ndr, ndr_flags, &r->dns_domain));
NDR_CHECK(ndr_pull_lsa_Name(ndr, ndr_flags, &r->dns_forest));
NDR_CHECK(ndr_pull_GUID(ndr, ndr_flags, &r->domain_guid));
if (r->sid) {
NDR_CHECK(ndr_pull_dom_sid2(ndr, r->sid));
}
done:
return NT_STATUS_OK;
}
void ndr_print_lsa_DnsDomainInfo(struct ndr_print *ndr, const char *name, struct lsa_DnsDomainInfo *r)
{
ndr_print_struct(ndr, name, "lsa_DnsDomainInfo");
ndr->depth++;
ndr_print_lsa_Name(ndr, "name", &r->name);
ndr_print_lsa_Name(ndr, "dns_domain", &r->dns_domain);
ndr_print_lsa_Name(ndr, "dns_forest", &r->dns_forest);
ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
ndr_print_ptr(ndr, "sid", r->sid);
ndr->depth++;
if (r->sid) {
ndr_print_dom_sid2(ndr, "sid", r->sid);
}
ndr->depth--;
ndr->depth--;
}
static NTSTATUS ndr_pull_lsa_PolicyInformation(struct ndr_pull *ndr, int ndr_flags, uint16 *level, union lsa_PolicyInformation *r)
{
NDR_CHECK(ndr_pull_uint16(ndr, level));
@ -462,7 +659,43 @@ static NTSTATUS ndr_pull_lsa_PolicyInformation(struct ndr_pull *ndr, int ndr_fla
break;
case 3:
NDR_CHECK(ndr_pull_lsa_PrimaryDomainInfo(ndr, NDR_SCALARS, &r->domain));
NDR_CHECK(ndr_pull_lsa_DomainInfo(ndr, NDR_SCALARS, &r->domain));
break;
case 4:
NDR_CHECK(ndr_pull_lsa_PDAccountInfo(ndr, NDR_SCALARS, &r->pd));
break;
case 5:
NDR_CHECK(ndr_pull_lsa_DomainInfo(ndr, NDR_SCALARS, &r->account_domain));
break;
case 6:
NDR_CHECK(ndr_pull_lsa_ServerRole(ndr, NDR_SCALARS, &r->role));
break;
case 7:
NDR_CHECK(ndr_pull_lsa_ReplicaSourceInfo(ndr, NDR_SCALARS, &r->replica));
break;
case 8:
NDR_CHECK(ndr_pull_lsa_DefaultQuotaInfo(ndr, NDR_SCALARS, &r->quota));
break;
case 9:
NDR_CHECK(ndr_pull_lsa_ModificationInfo(ndr, NDR_SCALARS, &r->db));
break;
case 10:
NDR_CHECK(ndr_pull_lsa_AuditFullSetInfo(ndr, NDR_SCALARS, &r->auditfullset));
break;
case 11:
NDR_CHECK(ndr_pull_lsa_AuditFullQueryInfo(ndr, NDR_SCALARS, &r->auditfullquery));
break;
case 12:
NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_SCALARS, &r->dns));
break;
default:
@ -480,7 +713,43 @@ buffers:
break;
case 3:
NDR_CHECK(ndr_pull_lsa_PrimaryDomainInfo(ndr, NDR_BUFFERS, &r->domain));
NDR_CHECK(ndr_pull_lsa_DomainInfo(ndr, NDR_BUFFERS, &r->domain));
break;
case 4:
NDR_CHECK(ndr_pull_lsa_PDAccountInfo(ndr, NDR_BUFFERS, &r->pd));
break;
case 5:
NDR_CHECK(ndr_pull_lsa_DomainInfo(ndr, NDR_BUFFERS, &r->account_domain));
break;
case 6:
NDR_CHECK(ndr_pull_lsa_ServerRole(ndr, NDR_BUFFERS, &r->role));
break;
case 7:
NDR_CHECK(ndr_pull_lsa_ReplicaSourceInfo(ndr, NDR_BUFFERS, &r->replica));
break;
case 8:
NDR_CHECK(ndr_pull_lsa_DefaultQuotaInfo(ndr, NDR_BUFFERS, &r->quota));
break;
case 9:
NDR_CHECK(ndr_pull_lsa_ModificationInfo(ndr, NDR_BUFFERS, &r->db));
break;
case 10:
NDR_CHECK(ndr_pull_lsa_AuditFullSetInfo(ndr, NDR_BUFFERS, &r->auditfullset));
break;
case 11:
NDR_CHECK(ndr_pull_lsa_AuditFullQueryInfo(ndr, NDR_BUFFERS, &r->auditfullquery));
break;
case 12:
NDR_CHECK(ndr_pull_lsa_DnsDomainInfo(ndr, NDR_BUFFERS, &r->dns));
break;
default:
@ -503,7 +772,43 @@ void ndr_print_lsa_PolicyInformation(struct ndr_print *ndr, const char *name, ui
break;
case 3:
ndr_print_lsa_PrimaryDomainInfo(ndr, "domain", &r->domain);
ndr_print_lsa_DomainInfo(ndr, "domain", &r->domain);
break;
case 4:
ndr_print_lsa_PDAccountInfo(ndr, "pd", &r->pd);
break;
case 5:
ndr_print_lsa_DomainInfo(ndr, "account_domain", &r->account_domain);
break;
case 6:
ndr_print_lsa_ServerRole(ndr, "role", &r->role);
break;
case 7:
ndr_print_lsa_ReplicaSourceInfo(ndr, "replica", &r->replica);
break;
case 8:
ndr_print_lsa_DefaultQuotaInfo(ndr, "quota", &r->quota);
break;
case 9:
ndr_print_lsa_ModificationInfo(ndr, "db", &r->db);
break;
case 10:
ndr_print_lsa_AuditFullSetInfo(ndr, "auditfullset", &r->auditfullset);
break;
case 11:
ndr_print_lsa_AuditFullQueryInfo(ndr, "auditfullquery", &r->auditfullquery);
break;
case 12:
ndr_print_lsa_DnsDomainInfo(ndr, "dns", &r->dns);
break;
default:

View File

@ -133,15 +133,68 @@ struct lsa_AuditEventsInfo {
struct lsa_AuditSettings *settings;
};
struct lsa_PrimaryDomainInfo {
struct lsa_DomainInfo {
struct lsa_Name name;
struct dom_sid2 *sid;
};
struct lsa_PDAccountInfo {
struct lsa_Name name;
};
struct lsa_ServerRole {
uint16 role;
};
struct lsa_ReplicaSourceInfo {
struct lsa_Name source;
struct lsa_Name account;
};
struct lsa_DefaultQuotaInfo {
uint32 paged_pool;
uint32 non_paged_pool;
uint32 min_wss;
uint32 max_wss;
uint32 pagefile;
HYPER_T unknown;
};
struct lsa_ModificationInfo {
HYPER_T modified_id;
NTTIME db_create_time;
};
struct lsa_AuditFullSetInfo {
uint32 shutdown_on_full;
};
struct lsa_AuditFullQueryInfo {
uint32 shutdown_on_full;
uint32 log_is_full;
};
struct lsa_DnsDomainInfo {
struct lsa_Name name;
struct lsa_Name dns_domain;
struct lsa_Name dns_forest;
struct GUID domain_guid;
struct dom_sid2 *sid;
};
union lsa_PolicyInformation {
/* [case(1)] */ struct lsa_AuditLogInfo audit_log;
/* [case(2)] */ struct lsa_AuditEventsInfo audit_events;
/* [case(3)] */ struct lsa_PrimaryDomainInfo domain;
/* [case(3)] */ struct lsa_DomainInfo domain;
/* [case(4)] */ struct lsa_PDAccountInfo pd;
/* [case(5)] */ struct lsa_DomainInfo account_domain;
/* [case(6)] */ struct lsa_ServerRole role;
/* [case(7)] */ struct lsa_ReplicaSourceInfo replica;
/* [case(8)] */ struct lsa_DefaultQuotaInfo quota;
/* [case(9)] */ struct lsa_ModificationInfo db;
/* [case(10)] */ struct lsa_AuditFullSetInfo auditfullset;
/* [case(11)] */ struct lsa_AuditFullQueryInfo auditfullquery;
/* [case(12)] */ struct lsa_DnsDomainInfo dns;
};
struct lsa_QueryInfoPolicy {

View File

@ -45,10 +45,10 @@ NTSTATUS ndr_pull_security_ace(struct ndr_pull *ndr, struct security_ace *ace)
NDR_ALLOC(ndr, ace->obj);
NDR_CHECK(ndr_pull_uint32(ndr, &ace->obj->flags));
if (ace->obj->flags & SEC_ACE_OBJECT_PRESENT) {
NDR_CHECK(ndr_pull_guid(ndr, &ace->obj->object_guid));
NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &ace->obj->object_guid));
}
if (ace->obj->flags & SEC_ACE_OBJECT_INHERITED_PRESENT) {
NDR_CHECK(ndr_pull_guid(ndr, &ace->obj->inherit_guid));
NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &ace->obj->inherit_guid));
}
}
@ -203,10 +203,10 @@ NTSTATUS ndr_push_security_ace(struct ndr_push *ndr, struct security_ace *ace)
if (sec_ace_object(ace->type)) {
NDR_CHECK(ndr_push_uint32(ndr, ace->obj->flags));
if (ace->obj->flags & SEC_ACE_OBJECT_PRESENT) {
NDR_CHECK(ndr_push_guid(ndr, &ace->obj->object_guid));
NDR_CHECK(ndr_push_GUID(ndr, &ace->obj->object_guid));
}
if (ace->obj->flags & SEC_ACE_OBJECT_INHERITED_PRESENT) {
NDR_CHECK(ndr_push_guid(ndr, &ace->obj->inherit_guid));
NDR_CHECK(ndr_push_GUID(ndr, &ace->obj->inherit_guid));
}
}
@ -361,9 +361,8 @@ void ndr_print_security_descriptor(struct ndr_print *ndr,
const char *name,
struct security_descriptor *sd)
{
ndr->print(ndr->depth, "%-25s: ndr_print_security_descriptor not implemented",
ndr->print(ndr, "%-25s: ndr_print_security_descriptor not implemented",
name);
}