summaryrefslogtreecommitdiff
path: root/source4/librpc/idl
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-12-02 02:15:33 +0000
committerAndrew Tridgell <tridge@samba.org>2003-12-02 02:15:33 +0000
commit2e70035f87ebcdfbdc3cf8d05cd89d4eeeebc16c (patch)
tree219ed20ba826cc8963481d98e18759b63d294dc0 /source4/librpc/idl
parent06ae42483582ee76c3f6848697cf61cc142dd86a (diff)
downloadsamba-2e70035f87ebcdfbdc3cf8d05cd89d4eeeebc16c.tar.gz
samba-2e70035f87ebcdfbdc3cf8d05cd89d4eeeebc16c.tar.bz2
samba-2e70035f87ebcdfbdc3cf8d05cd89d4eeeebc16c.zip
another big improvement in the credentials API. I think it now
actually makes sense, and as a nice side effect it matches the debug output of the w2k3 netlogon.log (This used to be commit 3c7287c24e5970e5b7447ad042848505537c7d3b)
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/netlogon.idl285
1 files changed, 193 insertions, 92 deletions
diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl
index 6dd7ae3fe5..5d30b51157 100644
--- a/source4/librpc/idl/netlogon.idl
+++ b/source4/librpc/idl/netlogon.idl
@@ -71,8 +71,9 @@ interface netlogon
typedef [flag(NDR_PAHEX)] struct {
uint8 session_key[8];
uint32 sequence;
- netr_Credential cred1;
- netr_Credential cred2;
+ netr_Credential seed;
+ netr_Credential client;
+ netr_Credential server;
} netr_CredentialState;
typedef struct {
@@ -229,6 +230,10 @@ interface netlogon
[out] uint32 authoritative
);
+
+ /*****************/
+ /* Function 0x03 */
+
NTSTATUS netr_LogonSamLogoff(
[in] unistr *server_name,
[in] unistr *computer_name,
@@ -238,13 +243,22 @@ interface netlogon
[in] [switch_is(logon_level)] netr_LogonLevel logon
);
- WERROR netr_ServerReqChallenge(
+
+
+ /*****************/
+ /* Function 0x04 */
+
+ NTSTATUS netr_ServerReqChallenge(
[in] unistr *server_name,
[in] unistr computer_name,
[in][out] netr_Credential credentials
);
- WERROR netr_ServerAuthenticate(
+
+ /*****************/
+ /* Function 0x05 */
+
+ NTSTATUS netr_ServerAuthenticate(
[in] unistr *server_name,
[in] unistr username,
[in] uint16 secure_challenge_type,
@@ -253,6 +267,9 @@ interface netlogon
);
+ /*****************/
+ /* Function 0x06 */
+
NTSTATUS netr_ServerPasswordSet(
[in] unistr *server_name,
[in] unistr username,
@@ -264,22 +281,28 @@ interface netlogon
);
#if 0
+
+ /*****************/
+ /* Function 0x07 */
+
typedef struct {
unistr *username;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_DELETE_USER;
+
typedef struct {
bool SensitiveDataFlag;
uint32 DataLength;
[size_is(DataLength)] uint8 *SensitiveData;
} USER_PRIVATE_INFO;
+
typedef struct {
netr_String username;
netr_String FullName;
@@ -310,15 +333,16 @@ interface netlogon
USER_PRIVATE_INFO user_private_info;
uint32 SecurityInformation;
LSA_SECURITY_DESCRIPTOR sec_desc;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_USER;
+
typedef struct {
netr_String DomainName;
netr_String OEMInfo;
@@ -331,72 +355,78 @@ interface netlogon
NTTIME domain_create_time;
uint32 SecurityInformation;
LSA_SECURITY_DESCRIPTOR sec_desc;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_DOMAIN;
+
typedef struct {
netr_String groupname;
GROUP_MEMBERSHIP group_membership;
netr_String comment;
uint32 SecurityInformation;
LSA_SECURITY_DESCRIPTOR sec_desc;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_GROUP;
+
typedef struct {
netr_String OldName;
netr_String NewName;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_RENAME;
+
typedef struct {
[size_is(num_rids)] uint32 *rids;
[size_is(num_rids)] uint32 *attribs;
uint32 num_rids;
- uint32 dummy1;
- uint32 dummy2;
- uint32 dummy3;
- uint32 dummy4;
+ uint32 unknown1;
+ uint32 unknown2;
+ uint32 unknown3;
+ uint32 unknown4;
} DELTA_GROUP_MEMBER;
+
typedef struct {
netr_String alias_name;
uint32 rid;
uint32 SecurityInformation;
LSA_SECURITY_DESCRIPTOR sec_desc;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_ALIAS;
+
typedef struct {
SID_ARRAY sids;
- uint32 dummy1;
- uint32 dummy2;
- uint32 dummy3;
- uint32 dummy4;
+ uint32 unknown1;
+ uint32 unknown2;
+ uint32 unknown3;
+ uint32 unknown4;
} DELTA_ALIAS_MEMBER;
+
typedef struct {
uint32 pagedpoollimit;
uint32 nonpagedpoollimit;
@@ -405,6 +435,7 @@ interface netlogon
uint32 pagefilelimit;
NTTIME timelimit;
} QUOTA_LIMITS;
+
typedef struct {
uint32 maxlogsize;
NTTIME auditretentionperiod;
@@ -418,30 +449,32 @@ interface netlogon
NTTIME db_create_time;
uint32 SecurityInformation;
LSA_SECURITY_DESCRIPTOR sec_desc;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_POLICY;
+
typedef struct {
netr_String DomainName;
uint32 num_controllers;
[size_is(num_controllers)] netr_String *controller_names;
uint32 SecurityInformation;
LSA_SECURITY_DESCRIPTOR sec_desc;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_TRUSTED_DOMAINS;
+
typedef struct {
uint32 privilegeentries;
uint32 provolegecontrol;
@@ -450,20 +483,22 @@ interface netlogon
QUOTALIMITS quotalimits;
uint32 SecurityInformation;
LSA_SECURITY_DESCRIPTOR sec_desc;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_ACCOUNTS;
+
typedef struct {
uint32 len;
uint32 maxlen;
[size_is(maxlen)][length_is(len)] uint8 *cipher_data;
} CIPHER_VALUE;
+
typedef struct {
CIPHER_VALUE current_cipher;
NTTIME current_cipher_set_time;
@@ -471,15 +506,16 @@ interface netlogon
NTTIME old_cipher_set_time;
uint32 SecurityInformation;
LSA_SECURITY_DESCRIPTOR sec_desc;
- netr_String dummy1;
- netr_String dummy2;
- netr_String dummy3;
- netr_String dummy4;
- uint32 dummy5;
- uint32 dummy6;
- uint32 dummy7;
- uint32 dummy8;
+ netr_String unknown1;
+ netr_String unknown2;
+ netr_String unknown3;
+ netr_String unknown4;
+ uint32 unknown5;
+ uint32 unknown6;
+ uint32 unknown7;
+ uint32 unknown8;
} DELTA_SECRET;
+
typedef struct {
uint32 low_value;
uint32 high_value;
@@ -527,15 +563,19 @@ interface netlogon
[case(20)] uint32 rid;
[case(21)] uint32 rid;
} DELTA_ID_UNION;
+
typedef struct {
uint16 delta_type;
DELTA_ID_UNION delta_id_union;
DELTA_UNION delta_union;
} DELTA_ENUM;
+
typedef struct {
uint32 num_deltas;
[size_is(num_deltas)] DELTA_ENUM *delta_enum;
} DELTA_ENUM_ARRAY;
+
+
WERROR netr_DatabaseDeltas(
[in][string][ref] wchar_t *logonserver, # REF!!!
[in][string][ref] wchar_t *computername,
@@ -546,6 +586,11 @@ interface netlogon
[in] uint32 preferredmaximumlength,
[out] DELTA_ENUM_ARRAY *delta_enum_array
);
+
+
+ /*****************/
+ /* Function 0x08 */
+
WERROR netr_DatabaseSync(
[in][string][ref] wchar_t *logonserver, # REF!!!
[in][string][ref] wchar_t *computername,
@@ -556,11 +601,17 @@ interface netlogon
[in] uint32 preferredmaximumlength,
[out] DELTA_ENUM_ARRAY *delta_enum_array
);
+
+
+ /*****************/
+ /* Function 0x09 */
+
typedef struct {
uint8 computer_name[16];
uint32 timecreated;
uint32 serial_number;
} UAS_INFO_0;
+
WERROR netr_AccountDeltas(
[in][string] wchar_t *logonserver,
[in][string][ref] wchar_t *computername,
@@ -574,6 +625,11 @@ interface netlogon
[in][long] level,
[in][long] buffersize,
);
+
+
+ /*****************/
+ /* Function 0x0A */
+
WERROR netr_AccountSync(
[in][string] wchar_t *logonserver,
[in][string][ref] wchar_t *computername,
@@ -588,21 +644,29 @@ interface netlogon
[in][long] buffersize,
[in][out][ref] UAS_INFO_0 recordid,
);
+
+
+ /*****************/
+ /* Function 0x0B */
+
WERROR netr_GetDcName(
[in] unistr logon_server,
[in] unistr *domainname,
[out]unistr *dcname,
};
+
typedef struct {
uint32 flags;
uint32 pdc_connection_status;
} NETLOGON_INFO_1;
+
typedef struct {
uint32 flags;
uint32 pdc_connection_status;
unistrtrusted_dc_name;
uint32 tc_connection_status;
} NETLOGON_INFO_2;
+
typedef struct {
uint32 flags;
uint32 logon_attempts;
@@ -612,28 +676,45 @@ interface netlogon
uint32 reserved;
uint32 reserved;
} NETLOGON_INFO_3;
+
typedef [switch_type(long)] union {
[case(1)] NETLOGON_INFO_1 *i1;
[case(2)] NETLOGON_INFO_2 *i2;
[case(3)] NETLOGON_INFO_3 *i3;
} CONTROL_QUERY_INFORMATION;
+
+
+ /*****************/
+ /* Function 0x0C */
+
WERROR netr_LogonControl(
[in][string] wchar_t *logonserver,
[in] uint32 function_code,
[in] uint32 level,
[out][ref] CONTROL_QUERY_INFORMATION
);
+
+
+ /*****************/
+ /* Function 0x0D */
+
WERROR netr_GetAnyDCName(
[in] unistr *logon_server,
[in] unistr *domainname,
[out]unistr *dcname,
};
+
typedef [switch_type(long)] union {
[case(5)] unistr *unknown;
[case(6)] unistr *unknown;
[case(0xfffe)] uint32 unknown;
[case(7)] unistry*unknown;
} CONTROL_DATA_INFORMATION;
+
+
+ /*****************/
+ /* Function 0x0E */
+
WERROR netr_LogonControl2(
[in][string] wchar_t *logonserver,
[in] uint32 function_code,
@@ -641,6 +722,11 @@ interface netlogon
[in][ref] CONTROL_DATA_INFORMATION *data,
[out][ref] CONTROL_QUERY_INFORMATION *query
);
+
+
+ /*****************/
+ /* Function 0x0F */
+
WERROR netr_ServerAuthenticate2(
[in][string] wchar_t *logonserver,
[in] unistr username,
@@ -650,6 +736,11 @@ interface netlogon
[out][ref] CREDENTIAL *server_chal,
[in][out][ref] uint32 *negotiate_flags,
);
+
+
+ /*****************/
+ /* Function 0x10 */
+
WERROR netr_DatabaseSync2(
[in][string][ref] wchar_t *logonserver, # REF!!!
[in][string][ref] wchar_t *computername,
@@ -661,6 +752,11 @@ interface netlogon
[in] uint32 preferredmaximumlength,
[out] DELTA_ENUM_ARRAY *delta_enum_array
);
+
+
+ /*****************/
+ /* Function 0x11 */
+
WERROR netr_DatabaseRedo(
[in][string][ref] wchar_t *logonserver, # REF!!!
[in][string][ref] wchar_t *computername,
@@ -670,6 +766,11 @@ interface netlogon
[in] uint32 change_log_entry_size,
[out] DELTA_ENUM_ARRAY *delta_enum_array
);
+
+
+ /*****************/
+ /* Function 0x12 */
+
WERROR netr_LogonControl2Ex(
[in][string] wchar_t *logonserver,
[in] uint32 function_code,