include/rpc_lsa.h

説明を見る。
00001 /* 
00002    Unix SMB/CIFS implementation.
00003    SMB parameters and setup
00004    Copyright (C) Andrew Tridgell               1992-1997
00005    Copyright (C) Luke Kenneth Casson Leighton  1996-1997
00006    Copyright (C) Paul Ashton                   1997
00007    Copyright (C) Gerald (Jerry) Carter         2005
00008    
00009    This program is free software; you can redistribute it and/or modify
00010    it under the terms of the GNU General Public License as published by
00011    the Free Software Foundation; either version 2 of the License, or
00012    (at your option) any later version.
00013    
00014    This program is distributed in the hope that it will be useful,
00015    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017    GNU General Public License for more details.
00018    
00019    You should have received a copy of the GNU General Public License
00020    along with this program; if not, write to the Free Software
00021    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00022 */
00023 
00024 #ifndef _RPC_LSA_H /* _RPC_LSA_H */
00025 #define _RPC_LSA_H 
00026 
00027 /* Opcodes available on PIPE_LSARPC */
00028 
00029 #define LSA_CLOSE              0x00
00030 #define LSA_DELETE             0x01
00031 #define LSA_ENUM_PRIVS         0x02
00032 #define LSA_QUERYSECOBJ        0x03
00033 #define LSA_SETSECOBJ          0x04
00034 #define LSA_CHANGEPASSWORD     0x05
00035 #define LSA_OPENPOLICY         0x06
00036 #define LSA_QUERYINFOPOLICY    0x07
00037 #define LSA_SETINFOPOLICY      0x08
00038 #define LSA_CLEARAUDITLOG      0x09
00039 #define LSA_CREATEACCOUNT      0x0a
00040 #define LSA_ENUM_ACCOUNTS      0x0b
00041 #define LSA_CREATETRUSTDOM     0x0c     /* TODO: implement this one  -- jerry */
00042 #define LSA_ENUMTRUSTDOM       0x0d
00043 #define LSA_LOOKUPNAMES        0x0e
00044 #define LSA_LOOKUPSIDS         0x0f
00045 #define LSA_CREATESECRET       0x10     /* TODO: implement this one  -- jerry */
00046 #define LSA_OPENACCOUNT        0x11
00047 #define LSA_ENUMPRIVSACCOUNT   0x12
00048 #define LSA_ADDPRIVS           0x13
00049 #define LSA_REMOVEPRIVS        0x14
00050 #define LSA_GETQUOTAS          0x15
00051 #define LSA_SETQUOTAS          0x16
00052 #define LSA_GETSYSTEMACCOUNT   0x17
00053 #define LSA_SETSYSTEMACCOUNT   0x18
00054 #define LSA_OPENTRUSTDOM       0x19
00055 #define LSA_QUERYTRUSTDOMINFO  0x1a
00056 #define LSA_SETINFOTRUSTDOM    0x1b
00057 #define LSA_OPENSECRET         0x1c     /* TODO: implement this one  -- jerry */
00058 #define LSA_SETSECRET          0x1d     /* TODO: implement this one  -- jerry */
00059 #define LSA_QUERYSECRET        0x1e
00060 #define LSA_LOOKUPPRIVVALUE    0x1f
00061 #define LSA_LOOKUPPRIVNAME     0x20
00062 #define LSA_PRIV_GET_DISPNAME  0x21
00063 #define LSA_DELETEOBJECT       0x22     /* TODO: implement this one  -- jerry */
00064 #define LSA_ENUMACCTWITHRIGHT  0x23     /* TODO: implement this one  -- jerry */
00065 #define LSA_ENUMACCTRIGHTS     0x24
00066 #define LSA_ADDACCTRIGHTS      0x25
00067 #define LSA_REMOVEACCTRIGHTS   0x26
00068 #define LSA_QUERYTRUSTDOMINFOBYSID  0x27
00069 #define LSA_SETTRUSTDOMINFO    0x28
00070 #define LSA_DELETETRUSTDOM     0x29
00071 #define LSA_STOREPRIVDATA      0x2a
00072 #define LSA_RETRPRIVDATA       0x2b
00073 #define LSA_OPENPOLICY2        0x2c
00074 #define LSA_UNK_GET_CONNUSER   0x2d /* LsaGetConnectedCredentials ? */
00075 #define LSA_QUERYINFO2         0x2e
00076 #define LSA_QUERYTRUSTDOMINFOBYNAME 0x30
00077 #define LSA_QUERYDOMINFOPOL    0x35
00078 #define LSA_OPENTRUSTDOMBYNAME 0x37
00079 
00080 #define LSA_LOOKUPSIDS2        0x39
00081 #define LSA_LOOKUPNAMES2       0x3a
00082 #define LSA_LOOKUPNAMES3       0x44
00083 #define LSA_LOOKUPSIDS3        0x4c
00084 #define LSA_LOOKUPNAMES4       0x4d
00085 
00086 /* XXXX these are here to get a compile! */
00087 #define LSA_LOOKUPRIDS      0xFD
00088 
00089 #define LSA_AUDIT_NUM_CATEGORIES_NT4    7
00090 #define LSA_AUDIT_NUM_CATEGORIES_WIN2K  9
00091 
00092 #define LSA_AUDIT_NUM_CATEGORIES LSA_AUDIT_NUM_CATEGORIES_NT4
00093 
00094 #define LSA_AUDIT_POLICY_NONE           0x00
00095 #define LSA_AUDIT_POLICY_SUCCESS        0x01
00096 #define LSA_AUDIT_POLICY_FAILURE        0x02
00097 #define LSA_AUDIT_POLICY_ALL            (LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE)
00098 #define LSA_AUDIT_POLICY_CLEAR          0x04
00099 
00100 enum lsa_audit_categories {
00101         LSA_AUDIT_CATEGORY_SYSTEM = 0,
00102         LSA_AUDIT_CATEGORY_LOGON = 1,
00103         LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS,
00104         LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS,
00105         LSA_AUDIT_CATEGORY_PROCCESS_TRACKING,
00106         LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES,
00107         LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT,
00108         LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS,    /* only in win2k/2k3 */
00109         LSA_AUDIT_CATEGORY_ACCOUNT_LOGON                /* only in win2k/2k3 */
00110 };
00111 
00112 /* level 1 is auditing settings */
00113 typedef struct dom_query_1
00114 {
00115         uint32 percent_full;
00116         uint32 log_size;
00117         NTTIME retention_time;
00118         uint8 shutdown_in_progress;
00119         NTTIME time_to_shutdown;
00120         uint32 next_audit_record;
00121         uint32 unknown;
00122 } DOM_QUERY_1;
00123 
00124 
00125 /* level 2 is auditing settings */
00126 typedef struct dom_query_2
00127 {
00128         uint32 auditing_enabled;
00129         uint32 count1; /* usualy 7, at least on nt4sp4 */
00130         uint32 count2; /* the same */
00131         uint32 ptr;
00132         uint32 *auditsettings;
00133 } DOM_QUERY_2;
00134 
00135 /* DOM_QUERY - info class 3 and 5 LSA Query response */
00136 typedef struct dom_query_info_3
00137 {
00138         uint16 uni_dom_max_len; /* domain name string length * 2 */
00139         uint16 uni_dom_str_len; /* domain name string length * 2 */
00140         uint32 buffer_dom_name; /* undocumented domain name string buffer pointer */
00141         uint32 buffer_dom_sid; /* undocumented domain SID string buffer pointer */
00142         UNISTR2 uni_domain_name; /* domain name (unicode string) */
00143         DOM_SID2 dom_sid; /* domain SID */
00144 
00145 } DOM_QUERY_3;
00146 
00147 /* level 5 is same as level 3. */
00148 typedef DOM_QUERY_3 DOM_QUERY_5;
00149 
00150 /* level 6 is server role information */
00151 typedef struct dom_query_6
00152 {
00153         uint16 server_role; /* 2=backup, 3=primary */
00154 } DOM_QUERY_6;
00155 
00156 /* level 10 is audit full set info */
00157 typedef struct dom_query_10
00158 {
00159         uint8 shutdown_on_full;
00160 } DOM_QUERY_10;
00161 
00162 /* level 11 is audit full query info */
00163 typedef struct dom_query_11
00164 {
00165         uint16 unknown;
00166         uint8 shutdown_on_full;
00167         uint8 log_is_full;
00168 } DOM_QUERY_11;
00169 
00170 /* level 12 is DNS domain info */
00171 typedef struct lsa_dns_dom_info
00172 {
00173         UNIHDR  hdr_nb_dom_name; /* netbios domain name */
00174         UNIHDR  hdr_dns_dom_name;
00175         UNIHDR  hdr_forest_name;
00176 
00177         struct GUID dom_guid; /* domain GUID */
00178 
00179         UNISTR2 uni_nb_dom_name;
00180         UNISTR2 uni_dns_dom_name;
00181         UNISTR2 uni_forest_name;
00182 
00183         uint32 ptr_dom_sid;
00184         DOM_SID2   dom_sid; /* domain SID */
00185 } DOM_QUERY_12;
00186 
00187 typedef struct seq_qos_info
00188 {
00189         uint32 len; /* 12 */
00190         uint16 sec_imp_level; /* 0x02 - impersonation level */
00191         uint8  sec_ctxt_mode; /* 0x01 - context tracking mode */
00192         uint8  effective_only; /* 0x00 - effective only */
00193 
00194 } LSA_SEC_QOS;
00195 
00196 typedef struct obj_attr_info
00197 {
00198         uint32 len;          /* 0x18 - length (in bytes) inc. the length field. */
00199         uint32 ptr_root_dir; /* 0 - root directory (pointer) */
00200         uint32 ptr_obj_name; /* 0 - object name (pointer) */
00201         uint32 attributes;   /* 0 - attributes (undocumented) */
00202         uint32 ptr_sec_desc; /* 0 - security descriptior (pointer) */
00203         uint32 ptr_sec_qos;  /* security quality of service */
00204         LSA_SEC_QOS *sec_qos;
00205 
00206 } LSA_OBJ_ATTR;
00207 
00208 /* LSA_Q_OPEN_POL - LSA Query Open Policy */
00209 typedef struct lsa_q_open_pol_info
00210 {
00211         uint32 ptr;         /* undocumented buffer pointer */
00212         uint16 system_name; /* 0x5c - system name */
00213         LSA_OBJ_ATTR attr ; /* object attributes */
00214 
00215         uint32 des_access; /* desired access attributes */
00216 
00217 } LSA_Q_OPEN_POL;
00218 
00219 /* LSA_R_OPEN_POL - response to LSA Open Policy */
00220 typedef struct lsa_r_open_pol_info
00221 {
00222         POLICY_HND pol; /* policy handle */
00223         NTSTATUS status; /* return code */
00224 
00225 } LSA_R_OPEN_POL;
00226 
00227 /* LSA_Q_OPEN_POL2 - LSA Query Open Policy */
00228 typedef struct lsa_q_open_pol2_info
00229 {
00230         uint32       ptr;             /* undocumented buffer pointer */
00231         UNISTR2      uni_server_name; /* server name, starting with two '\'s */
00232         LSA_OBJ_ATTR attr           ; /* object attributes */
00233 
00234         uint32 des_access; /* desired access attributes */
00235 
00236 } LSA_Q_OPEN_POL2;
00237 
00238 /* LSA_R_OPEN_POL2 - response to LSA Open Policy */
00239 typedef struct lsa_r_open_pol2_info
00240 {
00241         POLICY_HND pol; /* policy handle */
00242         NTSTATUS status; /* return code */
00243 
00244 } LSA_R_OPEN_POL2;
00245 
00246 
00247 #define POLICY_VIEW_LOCAL_INFORMATION    0x00000001
00248 #define POLICY_VIEW_AUDIT_INFORMATION    0x00000002
00249 #define POLICY_GET_PRIVATE_INFORMATION   0x00000004
00250 #define POLICY_TRUST_ADMIN               0x00000008
00251 #define POLICY_CREATE_ACCOUNT            0x00000010
00252 #define POLICY_CREATE_SECRET             0x00000020
00253 #define POLICY_CREATE_PRIVILEGE          0x00000040
00254 #define POLICY_SET_DEFAULT_QUOTA_LIMITS  0x00000080
00255 #define POLICY_SET_AUDIT_REQUIREMENTS    0x00000100
00256 #define POLICY_AUDIT_LOG_ADMIN           0x00000200
00257 #define POLICY_SERVER_ADMIN              0x00000400
00258 #define POLICY_LOOKUP_NAMES              0x00000800
00259 
00260 #define POLICY_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED_ACCESS  |\
00261                             POLICY_VIEW_LOCAL_INFORMATION    |\
00262                             POLICY_VIEW_AUDIT_INFORMATION    |\
00263                             POLICY_GET_PRIVATE_INFORMATION   |\
00264                             POLICY_TRUST_ADMIN               |\
00265                             POLICY_CREATE_ACCOUNT            |\
00266                             POLICY_CREATE_SECRET             |\
00267                             POLICY_CREATE_PRIVILEGE          |\
00268                             POLICY_SET_DEFAULT_QUOTA_LIMITS  |\
00269                             POLICY_SET_AUDIT_REQUIREMENTS    |\
00270                             POLICY_AUDIT_LOG_ADMIN           |\
00271                             POLICY_SERVER_ADMIN              |\
00272                             POLICY_LOOKUP_NAMES )
00273 
00274 
00275 #define POLICY_READ       ( STANDARD_RIGHTS_READ_ACCESS      |\
00276                             POLICY_VIEW_AUDIT_INFORMATION    |\
00277                             POLICY_GET_PRIVATE_INFORMATION)
00278 
00279 #define POLICY_WRITE      ( STD_RIGHT_READ_CONTROL_ACCESS     |\
00280                             POLICY_TRUST_ADMIN               |\
00281                             POLICY_CREATE_ACCOUNT            |\
00282                             POLICY_CREATE_SECRET             |\
00283                             POLICY_CREATE_PRIVILEGE          |\
00284                             POLICY_SET_DEFAULT_QUOTA_LIMITS  |\
00285                             POLICY_SET_AUDIT_REQUIREMENTS    |\
00286                             POLICY_AUDIT_LOG_ADMIN           |\
00287                             POLICY_SERVER_ADMIN)
00288 
00289 #define POLICY_EXECUTE    ( STANDARD_RIGHTS_EXECUTE_ACCESS   |\
00290                             POLICY_VIEW_LOCAL_INFORMATION    |\
00291                             POLICY_LOOKUP_NAMES )
00292 
00293 /* LSA_Q_QUERY_SEC_OBJ - LSA query security */
00294 typedef struct lsa_query_sec_obj_info
00295 {
00296         POLICY_HND pol; /* policy handle */
00297         uint32 sec_info;
00298 
00299 } LSA_Q_QUERY_SEC_OBJ;
00300 
00301 /* LSA_R_QUERY_SEC_OBJ - probably an open */
00302 typedef struct r_lsa_query_sec_obj_info
00303 {
00304         uint32 ptr;
00305         SEC_DESC_BUF *buf;
00306 
00307         NTSTATUS status;         /* return status */
00308 
00309 } LSA_R_QUERY_SEC_OBJ;
00310 
00311 /* LSA_Q_QUERY_INFO - LSA query info policy */
00312 typedef struct lsa_query_info
00313 {
00314         POLICY_HND pol; /* policy handle */
00315         uint16 info_class; /* info class */
00316 
00317 } LSA_Q_QUERY_INFO;
00318 
00319 /* LSA_INFO_CTR */
00320 typedef struct lsa_info_ctr
00321 {
00322         uint16 info_class;
00323         union {
00324                 DOM_QUERY_1 id1;
00325                 DOM_QUERY_2 id2;
00326                 DOM_QUERY_3 id3;
00327                 DOM_QUERY_5 id5;
00328                 DOM_QUERY_6 id6;
00329                 DOM_QUERY_10 id10;
00330                 DOM_QUERY_11 id11;
00331                 DOM_QUERY_12 id12;
00332         } info;
00333 
00334 } LSA_INFO_CTR;
00335 
00336 typedef LSA_INFO_CTR LSA_INFO_CTR2;
00337 
00338 /* LSA_Q_SET_INFO - LSA set info policy */
00339 typedef struct lsa_set_info
00340 {
00341         POLICY_HND pol; /* policy handle */
00342         uint16 info_class; /* info class */
00343         LSA_INFO_CTR ctr;
00344 
00345 } LSA_Q_SET_INFO;
00346 
00347 /* LSA_R_SET_INFO - response to LSA set info policy */
00348 typedef struct lsa_r_set_info
00349 {
00350         NTSTATUS status; /* return code */
00351 
00352 } LSA_R_SET_INFO;
00353 
00354 /* LSA_R_QUERY_INFO - response to LSA query info policy */
00355 typedef struct lsa_r_query_info
00356 {
00357         uint32 dom_ptr; /* undocumented buffer pointer */
00358         LSA_INFO_CTR ctr; 
00359         NTSTATUS status; /* return code */
00360 
00361 } LSA_R_QUERY_INFO;
00362 
00363 typedef LSA_Q_QUERY_INFO LSA_Q_QUERY_INFO2;
00364 typedef LSA_R_QUERY_INFO LSA_R_QUERY_INFO2;
00365 
00366 /*******************************************************/
00367 
00368 typedef struct {
00369         POLICY_HND pol; 
00370         uint32 enum_context; 
00371         uint32 preferred_len;   /* preferred maximum length */
00372 } LSA_Q_ENUM_TRUST_DOM;
00373 
00374 typedef struct {
00375         UNISTR4 name;
00376         DOM_SID2 *sid;
00377 } DOMAIN_INFO;
00378 
00379 typedef struct {
00380         uint32 count;
00381         DOMAIN_INFO *domains;
00382 } DOMAIN_LIST;
00383 
00384 typedef struct {
00385         uint32 enum_context;
00386         uint32 count;
00387         DOMAIN_LIST *domlist;
00388         NTSTATUS status; 
00389 } LSA_R_ENUM_TRUST_DOM;
00390 
00391 /*******************************************************/
00392 
00393 /* LSA_Q_CLOSE */
00394 typedef struct lsa_q_close_info
00395 {
00396         POLICY_HND pol; /* policy handle */
00397 
00398 } LSA_Q_CLOSE;
00399 
00400 /* LSA_R_CLOSE */
00401 typedef struct lsa_r_close_info
00402 {
00403         POLICY_HND pol; /* policy handle.  should be all zeros. */
00404 
00405         NTSTATUS status; /* return code */
00406 
00407 } LSA_R_CLOSE;
00408 
00409 
00410 #define MAX_REF_DOMAINS 32
00411 
00412 /* DOM_TRUST_HDR */
00413 typedef struct dom_trust_hdr
00414 {
00415         UNIHDR hdr_dom_name; /* referenced domain unicode string headers */
00416         uint32 ptr_dom_sid;
00417 
00418 } DOM_TRUST_HDR;
00419         
00420 /* DOM_TRUST_INFO */
00421 typedef struct dom_trust_info
00422 {
00423         UNISTR2  uni_dom_name; /* domain name unicode string */
00424         DOM_SID2 ref_dom     ; /* referenced domain SID */
00425 
00426 } DOM_TRUST_INFO;
00427         
00428 /* DOM_R_REF */
00429 typedef struct dom_ref_info
00430 {
00431         uint32 num_ref_doms_1; /* num referenced domains */
00432         uint32 ptr_ref_dom; /* pointer to referenced domains */
00433         uint32 max_entries; /* 32 - max number of entries */
00434         uint32 num_ref_doms_2; /* num referenced domains */
00435 
00436         DOM_TRUST_HDR  hdr_ref_dom[MAX_REF_DOMAINS]; /* referenced domains */
00437         DOM_TRUST_INFO ref_dom    [MAX_REF_DOMAINS]; /* referenced domains */
00438 
00439 } DOM_R_REF;
00440 
00441 /* the domain_idx points to a SID associated with the name */
00442 
00443 /* LSA_TRANS_NAME - translated name */
00444 typedef struct lsa_trans_name_info
00445 {
00446         uint16 sid_name_use; /* value is 5 for a well-known group; 2 for a domain group; 1 for a user... */
00447         UNIHDR hdr_name; 
00448         uint32 domain_idx; /* index into DOM_R_REF array of SIDs */
00449 
00450 } LSA_TRANS_NAME;
00451 
00452 /* LSA_TRANS_NAME2 - translated name */
00453 typedef struct lsa_trans_name_info2
00454 {
00455         uint16 sid_name_use; /* value is 5 for a well-known group; 2 for a domain group; 1 for a user... */
00456         UNIHDR hdr_name; 
00457         uint32 domain_idx; /* index into DOM_R_REF array of SIDs */
00458         uint32 unknown;
00459 
00460 } LSA_TRANS_NAME2;
00461 
00462 /* This number is based on Win2k and later maximum response allowed */
00463 #define MAX_LOOKUP_SIDS 20480   /* 0x5000 */
00464 
00465 /* LSA_TRANS_NAME_ENUM - LSA Translated Name Enumeration container */
00466 typedef struct lsa_trans_name_enum_info
00467 {
00468         uint32 num_entries;
00469         uint32 ptr_trans_names;
00470         uint32 num_entries2;
00471         
00472         LSA_TRANS_NAME *name; /* translated names  */
00473         UNISTR2 *uni_name;
00474 
00475 } LSA_TRANS_NAME_ENUM;
00476 
00477 /* LSA_TRANS_NAME_ENUM2 - LSA Translated Name Enumeration container 2 */
00478 typedef struct lsa_trans_name_enum_info2
00479 {
00480         uint32 num_entries;
00481         uint32 ptr_trans_names;
00482         uint32 num_entries2;
00483         
00484         LSA_TRANS_NAME2 *name; /* translated names  */
00485         UNISTR2 *uni_name;
00486 
00487 } LSA_TRANS_NAME_ENUM2;
00488 
00489 /* LSA_SID_ENUM - LSA SID enumeration container */
00490 typedef struct lsa_sid_enum_info
00491 {
00492         uint32 num_entries;
00493         uint32 ptr_sid_enum;
00494         uint32 num_entries2;
00495         
00496         uint32 *ptr_sid; /* domain SID pointers to be looked up. */
00497         DOM_SID2 *sid; /* domain SIDs to be looked up. */
00498 
00499 } LSA_SID_ENUM;
00500 
00501 /* LSA_Q_LOOKUP_SIDS - LSA Lookup SIDs */
00502 typedef struct lsa_q_lookup_sids
00503 {
00504         POLICY_HND          pol; /* policy handle */
00505         LSA_SID_ENUM        sids;
00506         LSA_TRANS_NAME_ENUM names;
00507         uint16              level;
00508         uint32              mapped_count;
00509 
00510 } LSA_Q_LOOKUP_SIDS;
00511 
00512 /* LSA_R_LOOKUP_SIDS - response to LSA Lookup SIDs */
00513 typedef struct lsa_r_lookup_sids
00514 {
00515         uint32              ptr_dom_ref;
00516         DOM_R_REF           *dom_ref; /* domain reference info */
00517 
00518         LSA_TRANS_NAME_ENUM names;
00519         uint32              mapped_count;
00520 
00521         NTSTATUS            status; /* return code */
00522 
00523 } LSA_R_LOOKUP_SIDS;
00524 
00525 /* LSA_Q_LOOKUP_SIDS2 - LSA Lookup SIDs 2*/
00526 typedef struct lsa_q_lookup_sids2
00527 {
00528         POLICY_HND          pol; /* policy handle */
00529         LSA_SID_ENUM        sids;
00530         LSA_TRANS_NAME_ENUM2 names;
00531         uint16              level;
00532         uint32              mapped_count;
00533         uint32              unknown1;
00534         uint32              unknown2;
00535 
00536 } LSA_Q_LOOKUP_SIDS2;
00537 
00538 /* LSA_R_LOOKUP_SIDS2 - response to LSA Lookup SIDs 2*/
00539 typedef struct lsa_r_lookup_sids2
00540 {
00541         uint32              ptr_dom_ref;
00542         DOM_R_REF           *dom_ref; /* domain reference info */
00543 
00544         LSA_TRANS_NAME_ENUM2 names;
00545         uint32              mapped_count;
00546 
00547         NTSTATUS            status; /* return code */
00548 
00549 } LSA_R_LOOKUP_SIDS2;
00550 
00551 /* LSA_Q_LOOKUP_SIDS3 - LSA Lookup SIDs 3 */
00552 typedef struct lsa_q_lookup_sids3
00553 {
00554         LSA_SID_ENUM        sids;
00555         LSA_TRANS_NAME_ENUM2 names;
00556         uint16              level;
00557         uint32              mapped_count;
00558         uint32              unknown1;
00559         uint32              unknown2;
00560 
00561 } LSA_Q_LOOKUP_SIDS3;
00562 
00563 /* LSA_R_LOOKUP_SIDS3 - response to LSA Lookup SIDs 3 */
00564 typedef struct lsa_r_lookup_sids3
00565 {
00566         uint32              ptr_dom_ref;
00567         DOM_R_REF           *dom_ref; /* domain reference info */
00568 
00569         LSA_TRANS_NAME_ENUM2 names;
00570         uint32              mapped_count;
00571 
00572         NTSTATUS            status; /* return code */
00573 
00574 } LSA_R_LOOKUP_SIDS3;
00575 
00576 /* LSA_Q_LOOKUP_NAMES - LSA Lookup NAMEs */
00577 typedef struct lsa_q_lookup_names
00578 {
00579         POLICY_HND pol; /* policy handle */
00580         uint32 num_entries;
00581         uint32 num_entries2;
00582         UNIHDR  *hdr_name; /* name buffer pointers */
00583         UNISTR2 *uni_name; /* names to be looked up */
00584 
00585         uint32 num_trans_entries;
00586         uint32 ptr_trans_sids; /* undocumented domain SID buffer pointer */
00587         uint16 lookup_level;
00588         uint32 mapped_count;
00589 
00590 } LSA_Q_LOOKUP_NAMES;
00591 
00592 /* LSA_R_LOOKUP_NAMES - response to LSA Lookup NAMEs by name */
00593 typedef struct lsa_r_lookup_names
00594 {
00595         uint32 ptr_dom_ref;
00596         DOM_R_REF *dom_ref; /* domain reference info */
00597 
00598         uint32 num_entries;
00599         uint32 ptr_entries;
00600         uint32 num_entries2;
00601         DOM_RID *dom_rid; /* domain RIDs being looked up */
00602 
00603         uint32 mapped_count;
00604 
00605         NTSTATUS status; /* return code */
00606 } LSA_R_LOOKUP_NAMES;
00607 
00608 /* LSA_Q_LOOKUP_NAMES2 - LSA Lookup NAMEs 2*/
00609 typedef struct lsa_q_lookup_names2
00610 {
00611         POLICY_HND pol; /* policy handle */
00612         uint32 num_entries;
00613         uint32 num_entries2;
00614         UNIHDR  *hdr_name; /* name buffer pointers */
00615         UNISTR2 *uni_name; /* names to be looked up */
00616 
00617         uint32 num_trans_entries;
00618         uint32 ptr_trans_sids; /* undocumented domain SID buffer pointer */
00619         uint16 lookup_level;
00620         uint32 mapped_count;
00621         uint32 unknown1;
00622         uint32 unknown2;
00623 
00624 } LSA_Q_LOOKUP_NAMES2;
00625 
00626 /* LSA_R_LOOKUP_NAMES2 - response to LSA Lookup NAMEs by name 2 */
00627 typedef struct lsa_r_lookup_names2
00628 {
00629         uint32 ptr_dom_ref;
00630         DOM_R_REF *dom_ref; /* domain reference info */
00631 
00632         uint32 num_entries;
00633         uint32 ptr_entries;
00634         uint32 num_entries2;
00635         DOM_RID2 *dom_rid; /* domain RIDs being looked up */
00636 
00637         uint32 mapped_count;
00638 
00639         NTSTATUS status; /* return code */
00640 } LSA_R_LOOKUP_NAMES2;
00641 
00642 /* LSA_Q_LOOKUP_NAMES3 - LSA Lookup NAMEs 3 */
00643 typedef struct lsa_q_lookup_names3
00644 {
00645         POLICY_HND pol; /* policy handle */
00646         uint32 num_entries;
00647         uint32 num_entries2;
00648         UNIHDR  *hdr_name; /* name buffer pointers */
00649         UNISTR2 *uni_name; /* names to be looked up */
00650 
00651         uint32 num_trans_entries;
00652         uint32 ptr_trans_sids; /* undocumented domain SID buffer pointer */
00653         uint16 lookup_level;
00654         uint32 mapped_count;
00655         uint32 unknown1;
00656         uint32 unknown2;
00657 
00658 } LSA_Q_LOOKUP_NAMES3;
00659 
00660 /* Sid type used in lookupnames3 and lookupnames4. */
00661 typedef struct lsa_translatedsid3 {
00662         uint8 sid_type;
00663         DOM_SID2 *sid2;
00664         uint32 sid_idx;
00665         uint32 unknown;
00666 } LSA_TRANSLATED_SID3;
00667 
00668 /* LSA_R_LOOKUP_NAMES3 - response to LSA Lookup NAMEs by name 3 */
00669 typedef struct lsa_r_lookup_names3
00670 {
00671         uint32 ptr_dom_ref;
00672         DOM_R_REF *dom_ref; /* domain reference info */
00673 
00674         uint32 num_entries;
00675         uint32 ptr_entries;
00676         uint32 num_entries2;
00677         LSA_TRANSLATED_SID3 *trans_sids;
00678 
00679         uint32 mapped_count;
00680 
00681         NTSTATUS status; /* return code */
00682 } LSA_R_LOOKUP_NAMES3;
00683 
00684 /* LSA_Q_LOOKUP_NAMES4 - LSA Lookup NAMEs 4 */
00685 typedef struct lsa_q_lookup_names4
00686 {
00687         uint32 num_entries;
00688         uint32 num_entries2;
00689         UNIHDR  *hdr_name; /* name buffer pointers */
00690         UNISTR2 *uni_name; /* names to be looked up */
00691 
00692         uint32 num_trans_entries;
00693         uint32 ptr_trans_sids; /* undocumented domain SID buffer pointer */
00694         uint16 lookup_level;
00695         uint32 mapped_count;
00696         uint32 unknown1;
00697         uint32 unknown2;
00698 
00699 } LSA_Q_LOOKUP_NAMES4;
00700 
00701 /* LSA_R_LOOKUP_NAMES3 - response to LSA Lookup NAMEs by name 4 */
00702 typedef struct lsa_r_lookup_names4
00703 {
00704         uint32 ptr_dom_ref;
00705         DOM_R_REF *dom_ref; /* domain reference info */
00706 
00707         uint32 num_entries;
00708         uint32 ptr_entries;
00709         uint32 num_entries2;
00710         LSA_TRANSLATED_SID3 *trans_sids;
00711 
00712         uint32 mapped_count;
00713 
00714         NTSTATUS status; /* return code */
00715 } LSA_R_LOOKUP_NAMES4;
00716 
00717 typedef struct lsa_enum_priv_entry
00718 {
00719         UNIHDR hdr_name;
00720         uint32 luid_low;
00721         uint32 luid_high;
00722         UNISTR2 name;
00723         
00724 } LSA_PRIV_ENTRY;
00725 
00726 /* LSA_Q_ENUM_PRIVS - LSA enum privileges */
00727 typedef struct lsa_q_enum_privs
00728 {
00729         POLICY_HND pol; /* policy handle */
00730         uint32 enum_context;
00731         uint32 pref_max_length;
00732 } LSA_Q_ENUM_PRIVS;
00733 
00734 typedef struct lsa_r_enum_privs
00735 {
00736         uint32 enum_context;
00737         uint32 count;
00738         uint32 ptr;
00739         uint32 count1;
00740 
00741         LSA_PRIV_ENTRY *privs;
00742 
00743         NTSTATUS status;
00744 } LSA_R_ENUM_PRIVS;
00745 
00746 /* LSA_Q_ENUM_ACCT_RIGHTS - LSA enum account rights */
00747 typedef struct
00748 {
00749         POLICY_HND pol; /* policy handle */
00750         DOM_SID2 sid;
00751 } LSA_Q_ENUM_ACCT_RIGHTS;
00752 
00753 /* LSA_R_ENUM_ACCT_RIGHTS - LSA enum account rights */
00754 typedef struct
00755 {
00756         uint32 count;
00757         UNISTR4_ARRAY *rights;
00758         NTSTATUS status;
00759 } LSA_R_ENUM_ACCT_RIGHTS;
00760 
00761 
00762 /* LSA_Q_ADD_ACCT_RIGHTS - LSA add account rights */
00763 typedef struct
00764 {
00765         POLICY_HND pol; /* policy handle */
00766         DOM_SID2 sid;
00767         uint32 count;
00768         UNISTR4_ARRAY *rights;
00769 } LSA_Q_ADD_ACCT_RIGHTS;
00770 
00771 /* LSA_R_ADD_ACCT_RIGHTS - LSA add account rights */
00772 typedef struct
00773 {
00774         NTSTATUS status;
00775 } LSA_R_ADD_ACCT_RIGHTS;
00776 
00777 
00778 /* LSA_Q_REMOVE_ACCT_RIGHTS - LSA remove account rights */
00779 typedef struct
00780 {
00781         POLICY_HND pol; /* policy handle */
00782         DOM_SID2 sid;
00783         uint32 removeall;
00784         uint32 count;
00785         UNISTR4_ARRAY *rights;
00786 } LSA_Q_REMOVE_ACCT_RIGHTS;
00787 
00788 /* LSA_R_REMOVE_ACCT_RIGHTS - LSA remove account rights */
00789 typedef struct
00790 {
00791         NTSTATUS status;
00792 } LSA_R_REMOVE_ACCT_RIGHTS;
00793 
00794 
00795 /* LSA_Q_PRIV_GET_DISPNAME - LSA get privilege display name */
00796 typedef struct lsa_q_priv_get_dispname
00797 {
00798         POLICY_HND pol; /* policy handle */
00799         UNIHDR hdr_name;
00800         UNISTR2 name;
00801         uint16 lang_id;
00802         uint16 lang_id_sys;
00803 } LSA_Q_PRIV_GET_DISPNAME;
00804 
00805 typedef struct lsa_r_priv_get_dispname
00806 {
00807         uint32 ptr_info;
00808         UNIHDR hdr_desc;
00809         UNISTR2 desc;
00810         /* Don't align ! */
00811         uint16 lang_id;
00812         /* align */
00813         NTSTATUS status;
00814 } LSA_R_PRIV_GET_DISPNAME;
00815 
00816 /* LSA_Q_ENUM_ACCOUNTS */
00817 typedef struct lsa_q_enum_accounts
00818 {
00819         POLICY_HND pol; /* policy handle */
00820         uint32 enum_context;
00821         uint32 pref_max_length;
00822 } LSA_Q_ENUM_ACCOUNTS;
00823 
00824 /* LSA_R_ENUM_ACCOUNTS */
00825 typedef struct lsa_r_enum_accounts
00826 {
00827         uint32 enum_context;
00828         LSA_SID_ENUM sids;
00829         NTSTATUS status;
00830 } LSA_R_ENUM_ACCOUNTS;
00831 
00832 /* LSA_Q_UNK_GET_CONNUSER - gets username\domain of connected user
00833                   called when "Take Ownership" is clicked -SK */
00834 typedef struct lsa_q_unk_get_connuser
00835 {
00836   uint32 ptr_srvname;
00837   UNISTR2 uni2_srvname;
00838   uint32 unk1; /* 3 unknown uint32's are seen right after uni2_srvname */
00839   uint32 unk2; /* unk2 appears to be a ptr, unk1 = unk3 = 0 usually */
00840   uint32 unk3; 
00841 } LSA_Q_UNK_GET_CONNUSER;
00842 
00843 /* LSA_R_UNK_GET_CONNUSER */
00844 typedef struct lsa_r_unk_get_connuser
00845 {
00846   uint32 ptr_user_name;
00847   UNIHDR hdr_user_name;
00848   UNISTR2 uni2_user_name;
00849   
00850   uint32 unk1;
00851   
00852   uint32 ptr_dom_name;
00853   UNIHDR hdr_dom_name;
00854   UNISTR2 uni2_dom_name;
00855 
00856   NTSTATUS status;
00857 } LSA_R_UNK_GET_CONNUSER;
00858 
00859 
00860 typedef struct lsa_q_createaccount
00861 {
00862         POLICY_HND pol; /* policy handle */
00863         DOM_SID2 sid;
00864         uint32 access; /* access */
00865 } LSA_Q_CREATEACCOUNT;
00866 
00867 typedef struct lsa_r_createaccount
00868 {
00869         POLICY_HND pol; /* policy handle */
00870         NTSTATUS status;
00871 } LSA_R_CREATEACCOUNT;
00872 
00873 
00874 typedef struct lsa_q_openaccount
00875 {
00876         POLICY_HND pol; /* policy handle */
00877         DOM_SID2 sid;
00878         uint32 access; /* desired access */
00879 } LSA_Q_OPENACCOUNT;
00880 
00881 typedef struct lsa_r_openaccount
00882 {
00883         POLICY_HND pol; /* policy handle */
00884         NTSTATUS status;
00885 } LSA_R_OPENACCOUNT;
00886 
00887 typedef struct lsa_q_enumprivsaccount
00888 {
00889         POLICY_HND pol; /* policy handle */
00890 } LSA_Q_ENUMPRIVSACCOUNT;
00891 
00892 typedef struct lsa_r_enumprivsaccount
00893 {
00894         uint32 ptr;
00895         uint32 count;
00896         PRIVILEGE_SET set;
00897         NTSTATUS status;
00898 } LSA_R_ENUMPRIVSACCOUNT;
00899 
00900 typedef struct lsa_q_getsystemaccount
00901 {
00902         POLICY_HND pol; /* policy handle */
00903 } LSA_Q_GETSYSTEMACCOUNT;
00904 
00905 typedef struct lsa_r_getsystemaccount
00906 {
00907         uint32 access;
00908         NTSTATUS status;
00909 } LSA_R_GETSYSTEMACCOUNT;
00910 
00911 
00912 typedef struct lsa_q_setsystemaccount
00913 {
00914         POLICY_HND pol; /* policy handle */
00915         uint32 access;
00916 } LSA_Q_SETSYSTEMACCOUNT;
00917 
00918 typedef struct lsa_r_setsystemaccount
00919 {
00920         NTSTATUS status;
00921 } LSA_R_SETSYSTEMACCOUNT;
00922 
00923 typedef struct {
00924         UNIHDR hdr;
00925         UNISTR2 unistring;
00926 } LSA_STRING;
00927 
00928 typedef struct {
00929         POLICY_HND pol; /* policy handle */
00930         LSA_STRING privname;
00931 } LSA_Q_LOOKUP_PRIV_VALUE;
00932 
00933 typedef struct {
00934         LUID luid;
00935         NTSTATUS status;
00936 } LSA_R_LOOKUP_PRIV_VALUE;
00937 
00938 typedef struct lsa_q_addprivs
00939 {
00940         POLICY_HND pol; /* policy handle */
00941         uint32 count;
00942         PRIVILEGE_SET set;
00943 } LSA_Q_ADDPRIVS;
00944 
00945 typedef struct lsa_r_addprivs
00946 {
00947         NTSTATUS status;
00948 } LSA_R_ADDPRIVS;
00949 
00950 
00951 typedef struct lsa_q_removeprivs
00952 {
00953         POLICY_HND pol; /* policy handle */
00954         uint32 allrights;
00955         uint32 ptr;
00956         uint32 count;
00957         PRIVILEGE_SET set;
00958 } LSA_Q_REMOVEPRIVS;
00959 
00960 typedef struct lsa_r_removeprivs
00961 {
00962         NTSTATUS status;
00963 } LSA_R_REMOVEPRIVS;
00964 
00965 /*******************************************************/
00966 #if 0 /* jerry, I think this not correct - gd */
00967 typedef struct {
00968         POLICY_HND      handle;
00969         uint32          count;  /* ??? this is what ethereal calls it */
00970         DOM_SID         sid;
00971 } LSA_Q_OPEN_TRUSTED_DOMAIN;
00972 #endif
00973 
00974 /* LSA_Q_OPEN_TRUSTED_DOMAIN - LSA Query Open Trusted Domain */
00975 typedef struct lsa_q_open_trusted_domain
00976 {
00977         POLICY_HND      pol;    /* policy handle */
00978         DOM_SID2        sid;    /* domain sid */
00979         uint32  access_mask;    /* access mask */
00980         
00981 } LSA_Q_OPEN_TRUSTED_DOMAIN;
00982 
00983 /* LSA_R_OPEN_TRUSTED_DOMAIN - response to LSA Query Open Trusted Domain */
00984 typedef struct {
00985         POLICY_HND      handle; /* trustdom policy handle */
00986         NTSTATUS        status; /* return code */
00987 } LSA_R_OPEN_TRUSTED_DOMAIN;
00988 
00989 
00990 /*******************************************************/
00991 
00992 /* LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME - LSA Query Open Trusted Domain by Name*/
00993 typedef struct lsa_q_open_trusted_domain_by_name
00994 {
00995         POLICY_HND      pol;    /* policy handle */
00996         LSA_STRING      name;   /* domain name */
00997         uint32  access_mask;    /* access mask */
00998         
00999 } LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME;
01000 
01001 /* LSA_R_OPEN_TRUSTED_DOMAIN_BY_NAME - response to LSA Query Open Trusted Domain by Name */
01002 typedef struct {
01003         POLICY_HND      handle; /* trustdom policy handle */
01004         NTSTATUS        status; /* return code */
01005 } LSA_R_OPEN_TRUSTED_DOMAIN_BY_NAME;
01006 
01007 
01008 /*******************************************************/
01009 
01010 
01011 typedef struct {
01012         POLICY_HND      handle; 
01013         UNISTR4         secretname;
01014         uint32          access;
01015 } LSA_Q_OPEN_SECRET;
01016 
01017 typedef struct {
01018         POLICY_HND      handle;
01019         NTSTATUS        status;
01020 } LSA_R_OPEN_SECRET;
01021 
01022 
01023 /*******************************************************/
01024 
01025 typedef struct {
01026         POLICY_HND      handle;
01027 } LSA_Q_DELETE_OBJECT;
01028 
01029 typedef struct {
01030         NTSTATUS        status;
01031 } LSA_R_DELETE_OBJECT;
01032 
01033 
01034 /*******************************************************/
01035 
01036 typedef struct {
01037         POLICY_HND      handle;
01038         UNISTR4         secretname;
01039         uint32          access;
01040 } LSA_Q_CREATE_SECRET;
01041 
01042 typedef struct {
01043         POLICY_HND      handle;
01044         NTSTATUS        status;
01045 } LSA_R_CREATE_SECRET;
01046 
01047 
01048 /*******************************************************/
01049 
01050 typedef struct {
01051         POLICY_HND      handle; 
01052         UNISTR4         secretname;
01053         uint32          access;
01054 } LSA_Q_CREATE_TRUSTED_DOMAIN;
01055 
01056 typedef struct {
01057         POLICY_HND      handle;
01058         NTSTATUS        status;
01059 } LSA_R_CREATE_TRUSTED_DOMAIN;
01060 
01061 
01062 /*******************************************************/
01063 
01064 typedef struct {
01065         uint32  size;   /* size is written on the wire twice so I 
01066                            can only assume that one is supposed to 
01067                            be a max length and one is a size */
01068         UNISTR2 *data;  /* not really a UNICODE string but the parsing 
01069                            is the same */
01070 } LSA_DATA_BLOB;
01071 
01072 typedef struct {
01073         POLICY_HND      handle; 
01074         LSA_DATA_BLOB   *old_value;
01075         LSA_DATA_BLOB   *new_value;
01076 } LSA_Q_SET_SECRET;
01077 
01078 typedef struct {
01079         NTSTATUS        status;
01080 } LSA_R_SET_SECRET;
01081 
01082 /* LSA_Q_QUERY_TRUSTED_DOMAIN_INFO - LSA query trusted domain info */
01083 typedef struct lsa_query_trusted_domain_info
01084 {
01085         POLICY_HND      pol;            /* policy handle */
01086         uint16          info_class;     /* info class */
01087 
01088 } LSA_Q_QUERY_TRUSTED_DOMAIN_INFO;
01089 
01090 /* LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID - LSA query trusted domain info */
01091 typedef struct lsa_query_trusted_domain_info_by_sid
01092 {
01093         POLICY_HND      pol;            /* policy handle */
01094         DOM_SID2        dom_sid;        /* domain sid */
01095         uint16          info_class;     /* info class */
01096         
01097 } LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID;
01098 
01099 /* LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME - LSA query trusted domain info */
01100 typedef struct lsa_query_trusted_domain_info_by_name
01101 {
01102         POLICY_HND      pol;            /* policy handle */
01103         LSA_STRING      domain_name;    /* domain name */
01104         uint16          info_class;     /* info class */
01105         
01106 } LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME;
01107 
01108 typedef struct trusted_domain_info_name {
01109         LSA_STRING      netbios_name; 
01110 } TRUSTED_DOMAIN_INFO_NAME;
01111 
01112 typedef struct trusted_domain_info_posix_offset {
01113         uint32          posix_offset;
01114 } TRUSTED_DOMAIN_INFO_POSIX_OFFSET;
01115 
01116 typedef struct lsa_data_buf {
01117         uint32 size;
01118         uint32 offset;
01119         uint32 length;
01120         uint8 *data;
01121 } LSA_DATA_BUF;
01122 
01123 typedef struct lsa_data_buf_hdr {
01124         uint32 length;
01125         uint32 size;
01126         uint32 data_ptr;
01127 } LSA_DATA_BUF_HDR;
01128 
01129 
01130 typedef struct lsa_data_buf2 {
01131         uint32 size;
01132         uint8 *data;
01133 } LSA_DATA_BUF2;
01134 
01135 typedef struct trusted_domain_info_password {
01136         uint32 ptr_password;
01137         uint32 ptr_old_password;
01138         LSA_DATA_BUF_HDR password_hdr;
01139         LSA_DATA_BUF_HDR old_password_hdr;
01140         LSA_DATA_BUF password;
01141         LSA_DATA_BUF old_password;
01142 } TRUSTED_DOMAIN_INFO_PASSWORD;
01143 
01144 typedef struct trusted_domain_info_basic {
01145         LSA_STRING      netbios_name;
01146         DOM_SID2        sid;
01147 } TRUSTED_DOMAIN_INFO_BASIC;
01148 
01149 typedef struct trusted_domain_info_ex {
01150         LSA_STRING      domain_name;
01151         LSA_STRING      netbios_name;
01152         DOM_SID2        sid;
01153         uint32          trust_direction;
01154         uint32          trust_type;
01155         uint32          trust_attributes;
01156 } TRUSTED_DOMAIN_INFO_EX;
01157 
01158 typedef struct trust_domain_info_buffer {
01159         NTTIME          last_update_time;
01160         uint32          secret_type;
01161         LSA_DATA_BUF2   data;
01162 } LSA_TRUSTED_DOMAIN_INFO_BUFFER;
01163 
01164 typedef struct trusted_domain_info_auth_info {
01165         uint32 incoming_count;
01166         LSA_TRUSTED_DOMAIN_INFO_BUFFER incoming_current_auth_info;
01167         LSA_TRUSTED_DOMAIN_INFO_BUFFER incoming_previous_auth_info;
01168         uint32 outgoing_count;
01169         LSA_TRUSTED_DOMAIN_INFO_BUFFER outgoing_current_auth_info;
01170         LSA_TRUSTED_DOMAIN_INFO_BUFFER outgoing_previous_auth_info;
01171 } TRUSTED_DOMAIN_INFO_AUTH_INFO;
01172 
01173 typedef struct trusted_domain_info_full_info {
01174         TRUSTED_DOMAIN_INFO_EX          info_ex;
01175         TRUSTED_DOMAIN_INFO_POSIX_OFFSET posix_offset;
01176         TRUSTED_DOMAIN_INFO_AUTH_INFO   auth_info;
01177 } TRUSTED_DOMAIN_INFO_FULL_INFO;
01178 
01179 typedef struct trusted_domain_info_11 {
01180         TRUSTED_DOMAIN_INFO_EX          info_ex;
01181         LSA_DATA_BUF2                   data1;
01182 } TRUSTED_DOMAIN_INFO_11;
01183 
01184 typedef struct trusted_domain_info_all {
01185         TRUSTED_DOMAIN_INFO_EX          info_ex;
01186         LSA_DATA_BUF2                   data1;
01187         TRUSTED_DOMAIN_INFO_POSIX_OFFSET posix_offset;
01188         TRUSTED_DOMAIN_INFO_AUTH_INFO   auth_info;
01189 } TRUSTED_DOMAIN_INFO_ALL;
01190 
01191 /* LSA_TRUSTED_DOMAIN_INFO */
01192 typedef union lsa_trusted_domain_info
01193 {
01194         uint16                                  info_class;
01195         TRUSTED_DOMAIN_INFO_NAME                name;
01196         /* deprecated - gd
01197         TRUSTED_DOMAIN_INFO_CONTROLLERS_INFO    controllers; */
01198         TRUSTED_DOMAIN_INFO_POSIX_OFFSET        posix_offset;
01199         TRUSTED_DOMAIN_INFO_PASSWORD            password;
01200         TRUSTED_DOMAIN_INFO_BASIC               basic;
01201         TRUSTED_DOMAIN_INFO_EX                  info_ex;
01202         TRUSTED_DOMAIN_INFO_AUTH_INFO           auth_info;
01203         TRUSTED_DOMAIN_INFO_FULL_INFO           full_info;
01204         TRUSTED_DOMAIN_INFO_11                  info11;
01205         TRUSTED_DOMAIN_INFO_ALL                 info_all;
01206 
01207 } LSA_TRUSTED_DOMAIN_INFO;
01208 
01209 /* LSA_R_QUERY_TRUSTED_DOMAIN_INFO - LSA query trusted domain info */
01210 typedef struct r_lsa_query_trusted_domain_info
01211 {
01212         LSA_TRUSTED_DOMAIN_INFO *info;
01213         NTSTATUS status;
01214 } LSA_R_QUERY_TRUSTED_DOMAIN_INFO;
01215 
01216 typedef struct dom_info_kerberos {
01217         uint32 enforce_restrictions;
01218         NTTIME service_tkt_lifetime;
01219         NTTIME user_tkt_lifetime;
01220         NTTIME user_tkt_renewaltime;
01221         NTTIME clock_skew;
01222         NTTIME unknown6;
01223 } LSA_DOM_INFO_POLICY_KERBEROS;
01224 
01225 typedef struct dom_info_efs {
01226         uint32 blob_len;
01227         UNISTR2 efs_blob;
01228 } LSA_DOM_INFO_POLICY_EFS;
01229 
01230 typedef struct lsa_dom_info_union {
01231         uint16 info_class;
01232         LSA_DOM_INFO_POLICY_EFS efs_policy;
01233         LSA_DOM_INFO_POLICY_KERBEROS krb_policy;
01234 } LSA_DOM_INFO_UNION;
01235 
01236 /* LSA_Q_QUERY_DOM_INFO_POLICY - LSA query info */
01237 typedef struct lsa_q_query_dom_info_policy
01238 {
01239         POLICY_HND pol;    /* policy handle */
01240         uint16 info_class; /* info class */
01241 } LSA_Q_QUERY_DOM_INFO_POLICY;
01242 
01243 typedef struct lsa_r_query_dom_info_policy
01244 {
01245         LSA_DOM_INFO_UNION *info;
01246         NTSTATUS status;
01247 } LSA_R_QUERY_DOM_INFO_POLICY;
01248 
01249 
01250 #endif /* _RPC_LSA_H */

Sambaに対してSat Aug 29 21:22:55 2009に生成されました。  doxygen 1.4.7