summaryrefslogtreecommitdiff
path: root/librpc/idl
diff options
context:
space:
mode:
Diffstat (limited to 'librpc/idl')
-rw-r--r--librpc/idl/drsuapi.idl42
-rw-r--r--librpc/idl/lsa.idl10
-rw-r--r--librpc/idl/misc.idl26
-rw-r--r--librpc/idl/nbt.idl5
-rw-r--r--librpc/idl/netlogon.idl18
-rw-r--r--librpc/idl/ntsvcs.idl2
-rw-r--r--librpc/idl/samr.idl30
-rw-r--r--librpc/idl/security.idl15
-rw-r--r--librpc/idl/winreg.idl17
9 files changed, 121 insertions, 44 deletions
diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl
index 9d2d153418..f53db00f5b 100644
--- a/librpc/idl/drsuapi.idl
+++ b/librpc/idl/drsuapi.idl
@@ -15,6 +15,40 @@ interface drsuapi
{
typedef bitmap samr_GroupAttrs samr_GroupAttrs;
+ /* see MS-DRSR section 5.37 */
+ typedef [public,bitmap32bit] bitmap {
+ DRSUAPI_DRS_ASYNC_OP = 0x00000001,
+ DRSUAPI_DRS_GETCHG_CHECK = 0x00000002,
+ DRSUAPI_DRS_ADD_REF = 0x00000004,
+ DRSUAPI_DRS_SYNC_ALL = 0x00000008,
+ DRSUAPI_DRS_DEL_REF = 0x00000008,
+ DRSUAPI_DRS_WRIT_REP = 0x00000010,
+ DRSUAPI_DRS_INIT_SYNC = 0x00000020,
+ DRSUAPI_DRS_PER_SYNC = 0x00000040,
+ DRSUAPI_DRS_MAIL_REP = 0x00000080,
+ DRSUAPI_DRS_ASYNC_REP = 0x00000100,
+ DRSUAPI_DRS_IGNORE_ERROR = 0x00000100,
+ DRSUAPI_DRS_TWOWAY_SYNC = 0x00000200,
+ DRSUAPI_DRS_CRITICAL_ONLY = 0x00000400,
+ DRSUAPI_DRS_GET_ANC = 0x00000800,
+ DRSUAPI_DRS_GET_NC_SIZE = 0x00001000,
+ DRSUAPI_DRS_LOCAL_ONLY = 0x00001000,
+ DRSUAPI_DRS_SYNC_BYNAME = 0x00004000,
+ DRSUAPI_DRS_REF_OK = 0x00004000,
+ DRSUAPI_DRS_FULL_SYNC_NOW = 0x00008000,
+ DRSUAPI_DRS_NO_SOURCE = 0x00008000,
+ DRSUAPI_DRS_FULL_SYNC_PACKET = 0x00020000,
+ DRSUAPI_DRS_REF_GCSPN = 0x00100000,
+ DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING = 0x00800000,
+ DRSUAPI_DRS_SYNC_FORCED = 0x02000000,
+ DRSUAPI_DRS_DISABLE_AUTO_SYNC = 0x04000000,
+ DRSUAPI_DRS_DISABLE_PERIODIC_SYNC = 0x08000000,
+ DRSUAPI_DRS_USE_COMPRESSION = 0x10000000,
+ DRSUAPI_DRS_NEVER_NOTIFY = 0x20000000,
+ DRSUAPI_DRS_SYNC_PAS = 0x40000000,
+ DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP = 0x80000000
+ } drsuapi_DrsOptions;
+
/*****************/
/* Function 0x00 */
typedef [bitmap32bit] bitmap {
@@ -219,6 +253,8 @@ interface drsuapi
/* the _WRITEABLE flag indicates a replication with all attributes
*
* --metze
+ *
+ * See drsuapi_DrsOptions for the WSPP bit names
*/
DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE = 0x00000010,
DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP = 0x00000020,
@@ -378,9 +414,9 @@ interface drsuapi
*
* 2.5.5.17 => dom_sid
*/
- typedef [nopush,nopull] struct {
- [range(0,10000),value(ndr_size_drsuapi_DsReplicaOID_oid(oid, 0))] uint32 __ndr_size;
- [size_is(__ndr_size),charset(DOS)] uint8 *oid; /* it's encoded with asn1_write_OID_String() */
+ typedef [noprint] struct {
+ [range(0,10000)] uint32 length;
+ [size_is(length)] uint8 *binary_oid; /* partial-binary-OID encoded with asn1_write_partial_OID_String() */
} drsuapi_DsReplicaOID;
typedef struct {
diff --git a/librpc/idl/lsa.idl b/librpc/idl/lsa.idl
index 253b6d780c..58e0ea9e26 100644
--- a/librpc/idl/lsa.idl
+++ b/librpc/idl/lsa.idl
@@ -113,14 +113,14 @@ import "misc.idl", "security.idl";
/******************/
/* Function: 0x06 */
typedef struct {
- uint32 len; /* ignored */
+ uint3264 len; /* ignored */
uint16 impersonation_level;
uint8 context_mode;
uint8 effective_only;
} lsa_QosInfo;
typedef struct {
- uint32 len; /* ignored */
+ uint3264 len; /* ignored */
uint8 *root_dir;
[string,charset(UTF16)] uint16 *object_name;
uint32 attributes;
@@ -628,8 +628,8 @@ import "misc.idl", "security.idl";
);
typedef [flag(NDR_PAHEX)] struct {
- uint32 length;
- uint32 size;
+ uint3264 length;
+ uint3264 size;
[size_is(size),length_is(length)] uint8 *data;
} lsa_DATA_BUF;
@@ -1220,7 +1220,7 @@ import "misc.idl", "security.idl";
/* Function 0x49 */
typedef struct {
- [range(0,131072)] uint32 length;
+ [range(0,131072)] uint3264 length;
[size_is(length)] uint8 *data;
} lsa_ForestTrustBinaryData;
diff --git a/librpc/idl/misc.idl b/librpc/idl/misc.idl
index 5bc3c9f976..5a2bf75a74 100644
--- a/librpc/idl/misc.idl
+++ b/librpc/idl/misc.idl
@@ -1,3 +1,5 @@
+#include "idl_types.h"
+
/*
miscellaneous IDL structures
*/
@@ -43,4 +45,28 @@ interface misc
uint32 unknown1;
uint32 unknown2; /* 0x00000001 */
} KRB5_EDATA_NTSTATUS;
+
+ typedef [public,v1_enum] enum {
+ REG_NONE = 0,
+ REG_SZ = 1,
+ REG_EXPAND_SZ = 2,
+ REG_BINARY = 3,
+ REG_DWORD = 4,
+ REG_DWORD_BIG_ENDIAN = 5,
+ REG_LINK = 6,
+ REG_MULTI_SZ = 7,
+ REG_RESOURCE_LIST = 8,
+ REG_FULL_RESOURCE_DESCRIPTOR = 9,
+ REG_RESOURCE_REQUIREMENTS_LIST = 10,
+ REG_QWORD = 11
+ } winreg_Type;
+
+ typedef [nodiscriminant,public] union {
+ [case(REG_NONE)];
+ [case(REG_SZ)] nstring string;
+ [case(REG_BINARY),flag(NDR_REMAINING)] DATA_BLOB binary;
+ [case(REG_DWORD)] uint32 value;
+ [case(REG_MULTI_SZ)] nstring_array string_array;
+ [default,flag(NDR_REMAINING)] DATA_BLOB data;
+ } winreg_Data;
}
diff --git a/librpc/idl/nbt.idl b/librpc/idl/nbt.idl
index fc82b1c897..a51132c4d4 100644
--- a/librpc/idl/nbt.idl
+++ b/librpc/idl/nbt.idl
@@ -357,7 +357,10 @@ interface nbt
NBT_SERVER_NDNC = 0x00000400,
NBT_SERVER_SELECT_SECRET_DOMAIN_6 = 0x00000800,
NBT_SERVER_FULL_SECRET_DOMAIN_6 = 0x00001000,
- NBT_SERVER_DNS_FOREST = 0x01000000
+ NBT_SERVER_ADS_WEB_SERVICE = 0x00002000,
+ NBT_SERVER_HAS_DNS_NAME = 0x20000000,
+ NBT_SERVER_IS_DEFAULT_NC = 0x40000000,
+ NBT_SERVER_FOREST_ROOT = 0x80000000
} nbt_server_type;
typedef [bitmap32bit,public] bitmap {
diff --git a/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl
index ef2c8a4721..82a60c7c3e 100644
--- a/librpc/idl/netlogon.idl
+++ b/librpc/idl/netlogon.idl
@@ -1142,9 +1142,9 @@ interface netlogon
DS_SERVER_NDNC = NBT_SERVER_NDNC,
DS_SERVER_SELECT_SECRET_DOMAIN_6 = NBT_SERVER_SELECT_SECRET_DOMAIN_6,
DS_SERVER_FULL_SECRET_DOMAIN_6 = NBT_SERVER_FULL_SECRET_DOMAIN_6,
- DS_DNS_CONTROLLER = 0x20000000,
- DS_DNS_DOMAIN = 0x40000000,
- DS_DNS_FOREST = 0x80000000
+ DS_DNS_CONTROLLER = NBT_SERVER_HAS_DNS_NAME,
+ DS_DNS_DOMAIN = NBT_SERVER_IS_DEFAULT_NC,
+ DS_DNS_FOREST_ROOT = NBT_SERVER_FOREST_ROOT
} netr_DsR_DcFlags;
typedef [public] struct {
@@ -1412,6 +1412,18 @@ interface netlogon
/*****************/
/* Function 0x1e */
+
+ /* [MS-NRPC] 2.2.1.3.8 NL_PASSWORD_VERSION */
+
+ /* someone's birthday ? */
+ const int NETLOGON_PASSWORD_VERSION_NUMBER_PRESENT = 0x02231968;
+
+ typedef struct {
+ uint32 ReservedField;
+ uint32 PasswordVersionNumber;
+ uint32 PasswordVersionPresent;
+ } NL_PASSWORD_VERSION;
+
typedef [flag(NDR_PAHEX)] struct {
uint8 data[512];
uint32 length;
diff --git a/librpc/idl/ntsvcs.idl b/librpc/idl/ntsvcs.idl
index b1a3b78c34..91a85b96b9 100644
--- a/librpc/idl/ntsvcs.idl
+++ b/librpc/idl/ntsvcs.idl
@@ -2,7 +2,7 @@
plug and play services
*/
-import "winreg.idl";
+import "misc.idl";
[
uuid("8d9f4e40-a03d-11ce-8f69-08003e30051b"),
diff --git a/librpc/idl/samr.idl b/librpc/idl/samr.idl
index 8a5692fe17..da7b1aa82e 100644
--- a/librpc/idl/samr.idl
+++ b/librpc/idl/samr.idl
@@ -24,15 +24,6 @@ import "misc.idl", "lsa.idl", "security.idl";
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;
-
-
-
/* account control (acct_flags) bits */
typedef [public,bitmap32bit] bitmap {
ACB_DISABLED = 0x00000001, /* 1 = User account disabled */
@@ -1447,13 +1438,22 @@ import "misc.idl", "lsa.idl", "security.idl";
/************************/
/* Function 0x3f */
- typedef enum samr_RejectReason samr_RejectReason;
+ typedef [public,v1_enum] enum {
+ SAM_PWD_CHANGE_NO_ERROR = 0,
+ SAM_PWD_CHANGE_PASSWORD_TOO_SHORT = 1,
+ SAM_PWD_CHANGE_PWD_IN_HISTORY = 2,
+ SAM_PWD_CHANGE_USERNAME_IN_PASSWORD = 3,
+ SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD = 4,
+ SAM_PWD_CHANGE_NOT_COMPLEX = 5,
+ SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT = 6,
+ SAM_PWD_CHANGE_FAILED_BY_FILTER = 7,
+ SAM_PWD_CHANGE_PASSWORD_TOO_LONG = 8
+ } samPwdChangeReason;
typedef struct {
- samr_RejectReason reason;
- uint32 unknown1;
- uint32 unknown2;
- } samr_ChangeReject;
+ samPwdChangeReason extendedFailureReason;
+ [string,charset(UTF16)] uint16 *filterModuleName;
+ } userPwdChangeFailureInformation;
NTSTATUS samr_ChangePasswordUser3(
[in,unique] lsa_String *server,
@@ -1465,7 +1465,7 @@ import "misc.idl", "lsa.idl", "security.idl";
[in,unique] samr_Password *lm_verifier,
[in,unique] samr_CryptPassword *password3,
[out,ref] samr_DomInfo1 **dominfo,
- [out,ref] samr_ChangeReject **reject
+ [out,ref] userPwdChangeFailureInformation **reject
);
/************************/
diff --git a/librpc/idl/security.idl b/librpc/idl/security.idl
index 96d24b6685..c24dc64bd7 100644
--- a/librpc/idl/security.idl
+++ b/librpc/idl/security.idl
@@ -144,6 +144,21 @@ interface security
const int SEC_RIGHTS_DIR_EXECUTE = SEC_RIGHTS_FILE_EXECUTE;
const int SEC_RIGHTS_DIR_ALL = SEC_RIGHTS_FILE_ALL;
+ /* rights granted by some specific privileges */
+ const int SEC_RIGHTS_PRIV_BACKUP = SEC_STD_READ_CONTROL |
+ SEC_FLAG_SYSTEM_SECURITY |
+ SEC_GENERIC_READ;
+ const int SEC_RIGHTS_DIR_PRIV_BACKUP = SEC_RIGHTS_PRIV_BACKUP
+ | SEC_DIR_TRAVERSE;
+
+ const int SEC_RIGHTS_PRIV_RESTORE = SEC_STD_WRITE_DAC |
+ SEC_STD_WRITE_OWNER |
+ SEC_FLAG_SYSTEM_SECURITY |
+ SEC_STD_DELETE;
+ const int SEC_RIGHTS_DIR_PRIV_RESTORE = SEC_RIGHTS_PRIV_RESTORE |
+ SEC_DIR_ADD_FILE |
+ SEC_DIR_ADD_SUBDIR;
+
/* combinations of standard masks. */
const int STANDARD_RIGHTS_ALL_ACCESS = SEC_STD_ALL; /* 0x001f0000 */
const int STANDARD_RIGHTS_MODIFY_ACCESS = SEC_STD_READ_CONTROL; /* 0x00020000 */
diff --git a/librpc/idl/winreg.idl b/librpc/idl/winreg.idl
index 18b5edcb5d..f1f4dfb719 100644
--- a/librpc/idl/winreg.idl
+++ b/librpc/idl/winreg.idl
@@ -2,7 +2,7 @@
winreg interface definition
*/
-import "lsa.idl", "security.idl";
+import "lsa.idl", "security.idl", "misc.idl";
[
uuid("338cd001-2244-31f1-aaaa-900038001003"),
@@ -45,21 +45,6 @@ import "lsa.idl", "security.idl";
REG_KEY_WRITE |
KEY_CREATE_LINK);
- typedef [public,v1_enum] enum {
- REG_NONE = 0,
- REG_SZ = 1,
- REG_EXPAND_SZ = 2,
- REG_BINARY = 3,
- REG_DWORD = 4,
- REG_DWORD_BIG_ENDIAN = 5,
- REG_LINK = 6,
- REG_MULTI_SZ = 7,
- REG_RESOURCE_LIST = 8,
- REG_FULL_RESOURCE_DESCRIPTOR = 9,
- REG_RESOURCE_REQUIREMENTS_LIST = 10,
- REG_QWORD = 11
- } winreg_Type;
-
typedef [public] struct {
[value(strlen_m_term(name)*2)] uint16 name_len;
[value(strlen_m_term(name)*2)] uint16 name_size;