summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs-xml/manpages-3/cifs.upcall.8.xml2
-rw-r--r--docs-xml/manpages-3/eventlogadm.8.xml2
-rw-r--r--docs-xml/manpages-3/findsmb.1.xml2
-rw-r--r--docs-xml/manpages-3/idmap_ad.8.xml2
-rw-r--r--docs-xml/manpages-3/idmap_adex.8.xml2
-rw-r--r--docs-xml/manpages-3/idmap_hash.8.xml2
-rw-r--r--docs-xml/manpages-3/idmap_ldap.8.xml2
-rw-r--r--docs-xml/manpages-3/idmap_nss.8.xml2
-rw-r--r--docs-xml/manpages-3/idmap_rid.8.xml2
-rw-r--r--docs-xml/manpages-3/idmap_tdb.8.xml2
-rw-r--r--docs-xml/manpages-3/idmap_tdb2.8.xml2
-rw-r--r--docs-xml/manpages-3/ldb.3.xml2
-rw-r--r--docs-xml/manpages-3/ldbadd.1.xml2
-rw-r--r--docs-xml/manpages-3/ldbdel.1.xml2
-rw-r--r--docs-xml/manpages-3/ldbedit.1.xml2
-rw-r--r--docs-xml/manpages-3/ldbmodify.1.xml2
-rw-r--r--docs-xml/manpages-3/ldbsearch.1.xml2
-rw-r--r--docs-xml/manpages-3/libsmbclient.7.xml2
-rw-r--r--docs-xml/manpages-3/lmhosts.5.xml2
-rw-r--r--docs-xml/manpages-3/log2pcap.1.xml2
-rw-r--r--docs-xml/manpages-3/mount.cifs.8.xml2
-rw-r--r--docs-xml/manpages-3/net.8.xml2
-rw-r--r--docs-xml/manpages-3/nmbd.8.xml2
-rw-r--r--docs-xml/manpages-3/nmblookup.1.xml2
-rw-r--r--docs-xml/manpages-3/ntlm_auth.1.xml2
-rw-r--r--docs-xml/manpages-3/pam_winbind.7.xml2
-rw-r--r--docs-xml/manpages-3/pdbedit.8.xml2
-rw-r--r--docs-xml/manpages-3/profiles.1.xml2
-rw-r--r--docs-xml/manpages-3/rpcclient.1.xml2
-rw-r--r--docs-xml/manpages-3/samba.7.xml2
-rw-r--r--docs-xml/manpages-3/sharesec.1.xml2
-rw-r--r--docs-xml/manpages-3/smb.conf.5.xml2
-rw-r--r--docs-xml/manpages-3/smbcacls.1.xml2
-rw-r--r--docs-xml/manpages-3/smbclient.1.xml2
-rw-r--r--docs-xml/manpages-3/smbcontrol.1.xml4
-rw-r--r--docs-xml/manpages-3/smbcquotas.1.xml2
-rw-r--r--docs-xml/manpages-3/smbd.8.xml2
-rw-r--r--docs-xml/manpages-3/smbget.1.xml2
-rw-r--r--docs-xml/manpages-3/smbgetrc.5.xml2
-rw-r--r--docs-xml/manpages-3/smbpasswd.5.xml2
-rw-r--r--docs-xml/manpages-3/smbpasswd.8.xml2
-rw-r--r--docs-xml/manpages-3/smbspool.8.xml2
-rw-r--r--docs-xml/manpages-3/smbstatus.1.xml2
-rw-r--r--docs-xml/manpages-3/smbtar.1.xml2
-rw-r--r--docs-xml/manpages-3/smbtree.1.xml2
-rw-r--r--docs-xml/manpages-3/swat.8.xml2
-rw-r--r--docs-xml/manpages-3/tdbbackup.8.xml2
-rw-r--r--docs-xml/manpages-3/tdbdump.8.xml2
-rw-r--r--docs-xml/manpages-3/tdbtool.8.xml2
-rw-r--r--docs-xml/manpages-3/testparm.1.xml2
-rw-r--r--docs-xml/manpages-3/umount.cifs.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_acl_tdb.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_acl_xattr.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_audit.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_cacheprime.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_cap.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_catia.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_commit.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_default_quota.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_dirsort.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_extd_audit.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_fake_perms.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_fileid.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_full_audit.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_gpfs.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_netatalk.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_notify_fam.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_prealloc.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_preopen.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_readahead.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_readonly.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_recycle.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_shadow_copy.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_shadow_copy2.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_streams_depot.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_streams_xattr.8.xml2
-rw-r--r--docs-xml/manpages-3/vfs_xattr_tdb.8.xml2
-rw-r--r--docs-xml/manpages-3/vfstest.1.xml2
-rw-r--r--docs-xml/manpages-3/wbinfo.1.xml2
-rw-r--r--docs-xml/manpages-3/winbind_krb5_locator.7.xml2
-rw-r--r--docs-xml/manpages-3/winbindd.8.xml2
-rw-r--r--examples/smb.conf.default2
-rw-r--r--lib/async_req/async_req.c297
-rw-r--r--lib/async_req/async_req.h158
-rw-r--r--lib/async_req/async_req_ntstatus.c70
-rw-r--r--lib/async_req/async_req_ntstatus.h35
-rw-r--r--lib/async_req/async_sock.c53
-rw-r--r--lib/async_req/async_sock.h3
-rw-r--r--lib/async_req/config.mk2
-rw-r--r--lib/popt/popt.h2
-rw-r--r--lib/tsocket/config.mk2
-rw-r--r--lib/tsocket/tsocket.c409
-rw-r--r--lib/tsocket/tsocket.h88
-rw-r--r--lib/tsocket/tsocket_bsd.c937
-rw-r--r--lib/tsocket/tsocket_internal.h49
-rw-r--r--lib/tsocket/tsocket_recvfrom.c164
-rw-r--r--lib/tsocket/tsocket_sendto.c271
-rw-r--r--lib/util/smb_threads.c105
-rw-r--r--lib/util/smb_threads.h120
-rw-r--r--lib/util/smb_threads_internal.h52
-rw-r--r--lib/util/util.h38
-rw-r--r--lib/util/util_strlist.c141
-rw-r--r--libcli/cldap/cldap.c83
-rw-r--r--libcli/util/doserr.c3
-rw-r--r--libcli/util/ntstatus.h4
-rw-r--r--libcli/util/werror.h4
-rw-r--r--librpc/gen_ndr/cli_svcctl.c152
-rw-r--r--librpc/gen_ndr/cli_svcctl.h76
-rw-r--r--librpc/gen_ndr/ndr_ntsvcs.c43
-rw-r--r--librpc/gen_ndr/ndr_ntsvcs.h1
-rw-r--r--librpc/gen_ndr/ndr_svcctl.c565
-rw-r--r--librpc/gen_ndr/ntsvcs.h13
-rw-r--r--librpc/gen_ndr/srv_svcctl.c144
-rw-r--r--librpc/gen_ndr/svcctl.h78
-rw-r--r--librpc/idl/ntsvcs.idl19
-rw-r--r--librpc/idl/svcctl.idl89
-rw-r--r--nsswitch/pam_winbind.c5
-rw-r--r--packaging/RHEL/samba.spec.tmpl2
-rw-r--r--selftest/target/Samba3.pm1
-rw-r--r--source3/Makefile.in7
-rw-r--r--source3/include/ads_protos.h2
-rw-r--r--source3/include/async_smb.h146
-rw-r--r--source3/include/client.h30
-rw-r--r--source3/include/includes.h8
-rw-r--r--source3/include/proto.h222
-rw-r--r--source3/include/smbldap.h3
-rw-r--r--source3/lib/eventlog/eventlog.c (renamed from source3/rpc_server/srv_eventlog_lib.c)74
-rw-r--r--source3/lib/ms_fnmatch.c14
-rw-r--r--source3/lib/smbconf/smbconf_reg.c2
-rw-r--r--source3/lib/smbldap.c46
-rw-r--r--source3/lib/util_sock.c91
-rw-r--r--source3/lib/util_unistr.c199
-rw-r--r--source3/libads/authdata.c2
-rw-r--r--source3/libads/kerberos.c8
-rw-r--r--source3/libads/kerberos_keytab.c27
-rw-r--r--source3/libads/kerberos_verify.c6
-rw-r--r--source3/libads/ldap.c69
-rw-r--r--source3/libgpo/gpo_ldap.c8
-rw-r--r--source3/libnet/libnet_join.c4
-rw-r--r--source3/libnet/libnet_keytab.c32
-rw-r--r--source3/libsmb/async_smb.c1388
-rw-r--r--source3/libsmb/cliconnect.c339
-rw-r--r--source3/libsmb/clientgen.c157
-rw-r--r--source3/libsmb/clifile.c342
-rw-r--r--source3/libsmb/clikrb5.c23
-rw-r--r--source3/libsmb/clioplock.c123
-rw-r--r--source3/libsmb/clireadwrite.c611
-rw-r--r--source3/libsmb/clitrans.c668
-rw-r--r--source3/locking/brlock.c4
-rw-r--r--source3/modules/vfs_gpfs.c32
-rw-r--r--source3/modules/vfs_gpfs.h2
-rw-r--r--source3/modules/vfs_onefs.c12
-rw-r--r--source3/param/loadparm.c4
-rw-r--r--source3/passdb/pdb_ldap.c43
-rw-r--r--source3/passdb/pdb_nds.c4
-rw-r--r--source3/printing/nt_printing.c48
-rw-r--r--source3/rpc_client/cli_pipe.c18
-rw-r--r--source3/rpc_client/rpc_transport_np.c119
-rw-r--r--source3/rpc_client/rpc_transport_smbd.c237
-rw-r--r--source3/rpc_parse/parse_prs.c38
-rw-r--r--source3/rpc_server/srv_lsa_nt.c8
-rw-r--r--source3/rpc_server/srv_ntsvcs_nt.c41
-rw-r--r--source3/rpc_server/srv_samr_nt.c86
-rw-r--r--source3/rpc_server/srv_spoolss_nt.c245
-rw-r--r--source3/rpc_server/srv_svcctl_nt.c43
-rw-r--r--source3/rpc_server/srv_util.c88
-rw-r--r--source3/rpcclient/cmd_ntsvcs.c12
-rwxr-xr-xsource3/script/tests/selftest.sh3
-rwxr-xr-xsource3/script/tests/test_posix_s3.sh1
-rw-r--r--source3/smbd/ipc.c4
-rw-r--r--source3/smbd/oplock.c131
-rw-r--r--source3/smbd/oplock_onefs.c79
-rw-r--r--source3/smbd/sesssetup.c8
-rw-r--r--source3/torture/t_push_ucs2.c8
-rw-r--r--source3/torture/torture.c101
-rw-r--r--source3/utils/net_ads.c16
-rw-r--r--source3/utils/net_ads_gpo.c6
-rw-r--r--source3/utils/net_eventlog.c54
-rw-r--r--source3/utils/net_rpc_service.c204
-rw-r--r--source3/utils/ntlm_auth.c6
-rw-r--r--source3/utils/pdbedit.c7
-rw-r--r--source3/winbindd/idmap_adex/gc_util.c8
-rw-r--r--source3/winbindd/idmap_adex/likewise_cell.c4
-rw-r--r--source3/winbindd/idmap_adex/provider_unified.c6
-rw-r--r--source3/winbindd/winbindd_ads.c4
-rw-r--r--source4/dsdb/config.mk4
-rw-r--r--source4/dsdb/samdb/ldb_modules/schema_fsmo.c91
-rwxr-xr-xsource4/dsdb/samdb/ldb_modules/tests/possibleinferiors.py4
-rw-r--r--source4/dsdb/schema/schema.h21
-rw-r--r--source4/dsdb/schema/schema_convert_to_ol.c (renamed from source4/utils/ad2oLschema.c)458
-rw-r--r--source4/dsdb/schema/schema_inferiors.c190
-rw-r--r--source4/dsdb/schema/schema_init.c167
-rw-r--r--source4/dsdb/schema/schema_query.c145
-rw-r--r--source4/dsdb/schema/schema_set.c227
-rw-r--r--source4/dsdb/schema/schema_syntax.c13
-rw-r--r--source4/lib/ldb-samba/ldif_handlers.c14
-rw-r--r--source4/lib/ldb/common/attrib_handlers.c53
-rw-r--r--source4/lib/ldb/common/ldb_attributes.c37
-rw-r--r--source4/lib/ldb/configure.ac2
-rw-r--r--source4/lib/ldb/include/ldb.h9
-rw-r--r--source4/lib/ldb/include/ldb_handlers.h29
-rw-r--r--source4/lib/ldb/include/ldb_module.h7
-rw-r--r--source4/lib/ldb/include/ldb_private.h3
-rw-r--r--source4/lib/ldb/ldb_tdb/ldb_cache.c7
-rw-r--r--source4/libcli/util/nterr.c2
-rw-r--r--source4/libnet/libnet_vampire.c2
-rw-r--r--source4/min_versions.m42
-rw-r--r--source4/scripting/python/pyglue.c31
-rw-r--r--source4/scripting/python/samba/__init__.py6
-rw-r--r--source4/scripting/python/samba/ms_schema.py275
-rw-r--r--source4/scripting/python/samba/provision.py95
-rw-r--r--source4/scripting/python/samba/samdb.py5
-rw-r--r--source4/scripting/python/samba/tests/__init__.py17
-rwxr-xr-xsource4/selftest/tests.sh1
-rw-r--r--source4/setup/ad-schema/MS-AD_Schema_2K8_Attributes.txt (renamed from source4/setup/ad-schema/MS-AD_Schema_Attributes_v20080618.txt)7545
-rw-r--r--source4/setup/ad-schema/MS-AD_Schema_2K8_Classes.txt (renamed from source4/setup/ad-schema/MS-AD_Schema_Classes_v20080618.txt)3131
-rw-r--r--source4/setup/ad-schema/licence.txt49
-rw-r--r--source4/setup/schema.ldif10390
-rw-r--r--source4/setup/schema_samba4.ldif14
-rw-r--r--source4/torture/ldap/schema.c2
-rw-r--r--source4/torture/libnet/libnet_BecomeDC.c2
-rw-r--r--source4/torture/raw/lock.c4
-rw-r--r--source4/torture/raw/lockbench.c20
-rw-r--r--source4/torture/rpc/eventlog.c5
-rw-r--r--source4/torture/rpc/ntsvcs.c56
-rw-r--r--source4/torture/rpc/spoolss_win.c18
-rw-r--r--source4/torture/rpc/svcctl.c242
-rw-r--r--source4/torture/smb2/lock.c10
-rw-r--r--source4/utils/config.mk13
230 files changed, 12903 insertions, 21346 deletions
diff --git a/docs-xml/manpages-3/cifs.upcall.8.xml b/docs-xml/manpages-3/cifs.upcall.8.xml
index 5faf0f7102..6e22bff9c2 100644
--- a/docs-xml/manpages-3/cifs.upcall.8.xml
+++ b/docs-xml/manpages-3/cifs.upcall.8.xml
@@ -8,7 +8,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
<refnamediv>
diff --git a/docs-xml/manpages-3/eventlogadm.8.xml b/docs-xml/manpages-3/eventlogadm.8.xml
index fa514de026..ce8ab23a5b 100644
--- a/docs-xml/manpages-3/eventlogadm.8.xml
+++ b/docs-xml/manpages-3/eventlogadm.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/findsmb.1.xml b/docs-xml/manpages-3/findsmb.1.xml
index 482450891d..1d1889bc4b 100644
--- a/docs-xml/manpages-3/findsmb.1.xml
+++ b/docs-xml/manpages-3/findsmb.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/idmap_ad.8.xml b/docs-xml/manpages-3/idmap_ad.8.xml
index 9437d34000..01e059ada8 100644
--- a/docs-xml/manpages-3/idmap_ad.8.xml
+++ b/docs-xml/manpages-3/idmap_ad.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/idmap_adex.8.xml b/docs-xml/manpages-3/idmap_adex.8.xml
index 9eb2ff7d46..a9cac8e834 100644
--- a/docs-xml/manpages-3/idmap_adex.8.xml
+++ b/docs-xml/manpages-3/idmap_adex.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/idmap_hash.8.xml b/docs-xml/manpages-3/idmap_hash.8.xml
index dfaece24d6..2c886f33c9 100644
--- a/docs-xml/manpages-3/idmap_hash.8.xml
+++ b/docs-xml/manpages-3/idmap_hash.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/idmap_ldap.8.xml b/docs-xml/manpages-3/idmap_ldap.8.xml
index 0c8fa3c3eb..550b37c156 100644
--- a/docs-xml/manpages-3/idmap_ldap.8.xml
+++ b/docs-xml/manpages-3/idmap_ldap.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/idmap_nss.8.xml b/docs-xml/manpages-3/idmap_nss.8.xml
index 7d3503bcd1..3c04f51690 100644
--- a/docs-xml/manpages-3/idmap_nss.8.xml
+++ b/docs-xml/manpages-3/idmap_nss.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/idmap_rid.8.xml b/docs-xml/manpages-3/idmap_rid.8.xml
index 146c4b92de..5449797441 100644
--- a/docs-xml/manpages-3/idmap_rid.8.xml
+++ b/docs-xml/manpages-3/idmap_rid.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/idmap_tdb.8.xml b/docs-xml/manpages-3/idmap_tdb.8.xml
index 2b4c050966..7b1c3f81a6 100644
--- a/docs-xml/manpages-3/idmap_tdb.8.xml
+++ b/docs-xml/manpages-3/idmap_tdb.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/idmap_tdb2.8.xml b/docs-xml/manpages-3/idmap_tdb2.8.xml
index 4f19ba103a..b4490a4dee 100644
--- a/docs-xml/manpages-3/idmap_tdb2.8.xml
+++ b/docs-xml/manpages-3/idmap_tdb2.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.3</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/ldb.3.xml b/docs-xml/manpages-3/ldb.3.xml
index a19422a438..b355fb1675 100644
--- a/docs-xml/manpages-3/ldb.3.xml
+++ b/docs-xml/manpages-3/ldb.3.xml
@@ -7,7 +7,7 @@
<manvolnum>3</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">C Library Functions</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
<refnamediv>
diff --git a/docs-xml/manpages-3/ldbadd.1.xml b/docs-xml/manpages-3/ldbadd.1.xml
index fb57be29c6..811873e050 100644
--- a/docs-xml/manpages-3/ldbadd.1.xml
+++ b/docs-xml/manpages-3/ldbadd.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/ldbdel.1.xml b/docs-xml/manpages-3/ldbdel.1.xml
index 158c5f1a76..6773d53757 100644
--- a/docs-xml/manpages-3/ldbdel.1.xml
+++ b/docs-xml/manpages-3/ldbdel.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/ldbedit.1.xml b/docs-xml/manpages-3/ldbedit.1.xml
index 2d11ca94f7..59957482ce 100644
--- a/docs-xml/manpages-3/ldbedit.1.xml
+++ b/docs-xml/manpages-3/ldbedit.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/ldbmodify.1.xml b/docs-xml/manpages-3/ldbmodify.1.xml
index a46ae5047b..1950a68a73 100644
--- a/docs-xml/manpages-3/ldbmodify.1.xml
+++ b/docs-xml/manpages-3/ldbmodify.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/ldbsearch.1.xml b/docs-xml/manpages-3/ldbsearch.1.xml
index 398860bca0..ac8acb0b00 100644
--- a/docs-xml/manpages-3/ldbsearch.1.xml
+++ b/docs-xml/manpages-3/ldbsearch.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/libsmbclient.7.xml b/docs-xml/manpages-3/libsmbclient.7.xml
index 9257e1c7ba..43418e207b 100644
--- a/docs-xml/manpages-3/libsmbclient.7.xml
+++ b/docs-xml/manpages-3/libsmbclient.7.xml
@@ -7,7 +7,7 @@
<manvolnum>7</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">7</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/lmhosts.5.xml b/docs-xml/manpages-3/lmhosts.5.xml
index fca0616d64..2d26cb49a9 100644
--- a/docs-xml/manpages-3/lmhosts.5.xml
+++ b/docs-xml/manpages-3/lmhosts.5.xml
@@ -7,7 +7,7 @@
<manvolnum>5</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">File Formats and Conventions</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/log2pcap.1.xml b/docs-xml/manpages-3/log2pcap.1.xml
index d6debe7b96..0a54944499 100644
--- a/docs-xml/manpages-3/log2pcap.1.xml
+++ b/docs-xml/manpages-3/log2pcap.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/mount.cifs.8.xml b/docs-xml/manpages-3/mount.cifs.8.xml
index ca8ae5f4bf..d0affead3e 100644
--- a/docs-xml/manpages-3/mount.cifs.8.xml
+++ b/docs-xml/manpages-3/mount.cifs.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/net.8.xml b/docs-xml/manpages-3/net.8.xml
index 75f85e1c55..77d7bfbb11 100644
--- a/docs-xml/manpages-3/net.8.xml
+++ b/docs-xml/manpages-3/net.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/nmbd.8.xml b/docs-xml/manpages-3/nmbd.8.xml
index 19e6f4fb8f..157c897664 100644
--- a/docs-xml/manpages-3/nmbd.8.xml
+++ b/docs-xml/manpages-3/nmbd.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/nmblookup.1.xml b/docs-xml/manpages-3/nmblookup.1.xml
index 85640da033..38aa210e5e 100644
--- a/docs-xml/manpages-3/nmblookup.1.xml
+++ b/docs-xml/manpages-3/nmblookup.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/ntlm_auth.1.xml b/docs-xml/manpages-3/ntlm_auth.1.xml
index 50085d410d..608331a8f3 100644
--- a/docs-xml/manpages-3/ntlm_auth.1.xml
+++ b/docs-xml/manpages-3/ntlm_auth.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/pam_winbind.7.xml b/docs-xml/manpages-3/pam_winbind.7.xml
index 7f233c1386..80f7dc8273 100644
--- a/docs-xml/manpages-3/pam_winbind.7.xml
+++ b/docs-xml/manpages-3/pam_winbind.7.xml
@@ -7,7 +7,7 @@
<manvolnum>7</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">7</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/pdbedit.8.xml b/docs-xml/manpages-3/pdbedit.8.xml
index 41dc9b0078..fdfce7a86e 100644
--- a/docs-xml/manpages-3/pdbedit.8.xml
+++ b/docs-xml/manpages-3/pdbedit.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/profiles.1.xml b/docs-xml/manpages-3/profiles.1.xml
index 0d3224d6e1..77d5ac6617 100644
--- a/docs-xml/manpages-3/profiles.1.xml
+++ b/docs-xml/manpages-3/profiles.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/rpcclient.1.xml b/docs-xml/manpages-3/rpcclient.1.xml
index 2c2e42a2a7..79bb9289e5 100644
--- a/docs-xml/manpages-3/rpcclient.1.xml
+++ b/docs-xml/manpages-3/rpcclient.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/samba.7.xml b/docs-xml/manpages-3/samba.7.xml
index a83c7a066f..f2deae5305 100644
--- a/docs-xml/manpages-3/samba.7.xml
+++ b/docs-xml/manpages-3/samba.7.xml
@@ -7,7 +7,7 @@
<manvolnum>7</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">Miscellanea</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/sharesec.1.xml b/docs-xml/manpages-3/sharesec.1.xml
index d8ac510b69..50d9da2853 100644
--- a/docs-xml/manpages-3/sharesec.1.xml
+++ b/docs-xml/manpages-3/sharesec.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.3</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smb.conf.5.xml b/docs-xml/manpages-3/smb.conf.5.xml
index bb157e54d6..48d7b574f8 100644
--- a/docs-xml/manpages-3/smb.conf.5.xml
+++ b/docs-xml/manpages-3/smb.conf.5.xml
@@ -6,7 +6,7 @@
<manvolnum>5</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">File Formats and Conventions</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbcacls.1.xml b/docs-xml/manpages-3/smbcacls.1.xml
index d00bc9043c..b7d0a54b3d 100644
--- a/docs-xml/manpages-3/smbcacls.1.xml
+++ b/docs-xml/manpages-3/smbcacls.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbclient.1.xml b/docs-xml/manpages-3/smbclient.1.xml
index 188ff11bb0..7785d2c093 100644
--- a/docs-xml/manpages-3/smbclient.1.xml
+++ b/docs-xml/manpages-3/smbclient.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbcontrol.1.xml b/docs-xml/manpages-3/smbcontrol.1.xml
index f8c31bb1b9..bb0aa305d2 100644
--- a/docs-xml/manpages-3/smbcontrol.1.xml
+++ b/docs-xml/manpages-3/smbcontrol.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
@@ -66,7 +66,7 @@
<para>The <parameter>all</parameter> destination causes the
message to "broadcast" to all running daemons including nmbd and
winbind. This is a change for Samba 3.3, prior to this the
- paramter smbd used to do this.</para>
+ parameter smbd used to do this.</para>
<para>The <parameter>smbd</parameter> destination causes the
message to be sent to the smbd daemon specified in the
diff --git a/docs-xml/manpages-3/smbcquotas.1.xml b/docs-xml/manpages-3/smbcquotas.1.xml
index 76ac980333..3bdd238523 100644
--- a/docs-xml/manpages-3/smbcquotas.1.xml
+++ b/docs-xml/manpages-3/smbcquotas.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbd.8.xml b/docs-xml/manpages-3/smbd.8.xml
index d27eb3a2e8..1062f28f1b 100644
--- a/docs-xml/manpages-3/smbd.8.xml
+++ b/docs-xml/manpages-3/smbd.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbget.1.xml b/docs-xml/manpages-3/smbget.1.xml
index bcbad602da..d38935904c 100644
--- a/docs-xml/manpages-3/smbget.1.xml
+++ b/docs-xml/manpages-3/smbget.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbgetrc.5.xml b/docs-xml/manpages-3/smbgetrc.5.xml
index f7d17d4535..b036c9380c 100644
--- a/docs-xml/manpages-3/smbgetrc.5.xml
+++ b/docs-xml/manpages-3/smbgetrc.5.xml
@@ -7,7 +7,7 @@
<manvolnum>5</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">File Formats and Conventions</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbpasswd.5.xml b/docs-xml/manpages-3/smbpasswd.5.xml
index 4734ebb2c9..3840349e6c 100644
--- a/docs-xml/manpages-3/smbpasswd.5.xml
+++ b/docs-xml/manpages-3/smbpasswd.5.xml
@@ -7,7 +7,7 @@
<manvolnum>5</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">File Formats and Conventions</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbpasswd.8.xml b/docs-xml/manpages-3/smbpasswd.8.xml
index 40acb58ac8..3239eb371f 100644
--- a/docs-xml/manpages-3/smbpasswd.8.xml
+++ b/docs-xml/manpages-3/smbpasswd.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbspool.8.xml b/docs-xml/manpages-3/smbspool.8.xml
index c15423816e..c8f55f1618 100644
--- a/docs-xml/manpages-3/smbspool.8.xml
+++ b/docs-xml/manpages-3/smbspool.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbstatus.1.xml b/docs-xml/manpages-3/smbstatus.1.xml
index 493ec8d917..ed7792c4b2 100644
--- a/docs-xml/manpages-3/smbstatus.1.xml
+++ b/docs-xml/manpages-3/smbstatus.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbtar.1.xml b/docs-xml/manpages-3/smbtar.1.xml
index d3037f3b12..16cec8de88 100644
--- a/docs-xml/manpages-3/smbtar.1.xml
+++ b/docs-xml/manpages-3/smbtar.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/smbtree.1.xml b/docs-xml/manpages-3/smbtree.1.xml
index 7e6dc545bf..b94a700f78 100644
--- a/docs-xml/manpages-3/smbtree.1.xml
+++ b/docs-xml/manpages-3/smbtree.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/swat.8.xml b/docs-xml/manpages-3/swat.8.xml
index f4251a1393..aab5226dca 100644
--- a/docs-xml/manpages-3/swat.8.xml
+++ b/docs-xml/manpages-3/swat.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/tdbbackup.8.xml b/docs-xml/manpages-3/tdbbackup.8.xml
index bf756868bd..c3a6e2b051 100644
--- a/docs-xml/manpages-3/tdbbackup.8.xml
+++ b/docs-xml/manpages-3/tdbbackup.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/tdbdump.8.xml b/docs-xml/manpages-3/tdbdump.8.xml
index 8b8e4501d0..5c0028db42 100644
--- a/docs-xml/manpages-3/tdbdump.8.xml
+++ b/docs-xml/manpages-3/tdbdump.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/tdbtool.8.xml b/docs-xml/manpages-3/tdbtool.8.xml
index c75059b957..a755653106 100644
--- a/docs-xml/manpages-3/tdbtool.8.xml
+++ b/docs-xml/manpages-3/tdbtool.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/testparm.1.xml b/docs-xml/manpages-3/testparm.1.xml
index 87a427ff05..4e4eb2b303 100644
--- a/docs-xml/manpages-3/testparm.1.xml
+++ b/docs-xml/manpages-3/testparm.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/umount.cifs.8.xml b/docs-xml/manpages-3/umount.cifs.8.xml
index 38ce24228d..d845d385e3 100644
--- a/docs-xml/manpages-3/umount.cifs.8.xml
+++ b/docs-xml/manpages-3/umount.cifs.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_acl_tdb.8.xml b/docs-xml/manpages-3/vfs_acl_tdb.8.xml
index 086b86f03e..027ac86d2f 100644
--- a/docs-xml/manpages-3/vfs_acl_tdb.8.xml
+++ b/docs-xml/manpages-3/vfs_acl_tdb.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.3</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_acl_xattr.8.xml b/docs-xml/manpages-3/vfs_acl_xattr.8.xml
index 7387824f79..b22a6213b8 100644
--- a/docs-xml/manpages-3/vfs_acl_xattr.8.xml
+++ b/docs-xml/manpages-3/vfs_acl_xattr.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.3</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_audit.8.xml b/docs-xml/manpages-3/vfs_audit.8.xml
index ce2c3e4bd0..8d6df0344e 100644
--- a/docs-xml/manpages-3/vfs_audit.8.xml
+++ b/docs-xml/manpages-3/vfs_audit.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_cacheprime.8.xml b/docs-xml/manpages-3/vfs_cacheprime.8.xml
index 0249ac27b8..25680ba4da 100644
--- a/docs-xml/manpages-3/vfs_cacheprime.8.xml
+++ b/docs-xml/manpages-3/vfs_cacheprime.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_cap.8.xml b/docs-xml/manpages-3/vfs_cap.8.xml
index 93dab4a196..9460c235ac 100644
--- a/docs-xml/manpages-3/vfs_cap.8.xml
+++ b/docs-xml/manpages-3/vfs_cap.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_catia.8.xml b/docs-xml/manpages-3/vfs_catia.8.xml
index 736aee00a8..1f49e2fded 100644
--- a/docs-xml/manpages-3/vfs_catia.8.xml
+++ b/docs-xml/manpages-3/vfs_catia.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_commit.8.xml b/docs-xml/manpages-3/vfs_commit.8.xml
index ab2d234baa..0982ee4350 100644
--- a/docs-xml/manpages-3/vfs_commit.8.xml
+++ b/docs-xml/manpages-3/vfs_commit.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_default_quota.8.xml b/docs-xml/manpages-3/vfs_default_quota.8.xml
index 28d2413a7d..3cd404029e 100644
--- a/docs-xml/manpages-3/vfs_default_quota.8.xml
+++ b/docs-xml/manpages-3/vfs_default_quota.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_dirsort.8.xml b/docs-xml/manpages-3/vfs_dirsort.8.xml
index cec5f270c8..08fa181fde 100644
--- a/docs-xml/manpages-3/vfs_dirsort.8.xml
+++ b/docs-xml/manpages-3/vfs_dirsort.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.3</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_extd_audit.8.xml b/docs-xml/manpages-3/vfs_extd_audit.8.xml
index 0e12bd1b1d..76be470aa8 100644
--- a/docs-xml/manpages-3/vfs_extd_audit.8.xml
+++ b/docs-xml/manpages-3/vfs_extd_audit.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_fake_perms.8.xml b/docs-xml/manpages-3/vfs_fake_perms.8.xml
index 87279bee2a..282b11b183 100644
--- a/docs-xml/manpages-3/vfs_fake_perms.8.xml
+++ b/docs-xml/manpages-3/vfs_fake_perms.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_fileid.8.xml b/docs-xml/manpages-3/vfs_fileid.8.xml
index 202d693a94..5bebe4e047 100644
--- a/docs-xml/manpages-3/vfs_fileid.8.xml
+++ b/docs-xml/manpages-3/vfs_fileid.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_full_audit.8.xml b/docs-xml/manpages-3/vfs_full_audit.8.xml
index eec3f3127c..a85a001b77 100644
--- a/docs-xml/manpages-3/vfs_full_audit.8.xml
+++ b/docs-xml/manpages-3/vfs_full_audit.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_gpfs.8.xml b/docs-xml/manpages-3/vfs_gpfs.8.xml
index f926ecacf9..e0dbe7f79a 100644
--- a/docs-xml/manpages-3/vfs_gpfs.8.xml
+++ b/docs-xml/manpages-3/vfs_gpfs.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_netatalk.8.xml b/docs-xml/manpages-3/vfs_netatalk.8.xml
index e4f6772a7b..f6ce80b4a5 100644
--- a/docs-xml/manpages-3/vfs_netatalk.8.xml
+++ b/docs-xml/manpages-3/vfs_netatalk.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_notify_fam.8.xml b/docs-xml/manpages-3/vfs_notify_fam.8.xml
index 10605753c8..b599321d15 100644
--- a/docs-xml/manpages-3/vfs_notify_fam.8.xml
+++ b/docs-xml/manpages-3/vfs_notify_fam.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_prealloc.8.xml b/docs-xml/manpages-3/vfs_prealloc.8.xml
index 36cc2894f3..469e65ed40 100644
--- a/docs-xml/manpages-3/vfs_prealloc.8.xml
+++ b/docs-xml/manpages-3/vfs_prealloc.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_preopen.8.xml b/docs-xml/manpages-3/vfs_preopen.8.xml
index a84d4720bb..36ec885c62 100644
--- a/docs-xml/manpages-3/vfs_preopen.8.xml
+++ b/docs-xml/manpages-3/vfs_preopen.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.3</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
<refnamediv>
diff --git a/docs-xml/manpages-3/vfs_readahead.8.xml b/docs-xml/manpages-3/vfs_readahead.8.xml
index 0f4bd6aa50..47331ecc9e 100644
--- a/docs-xml/manpages-3/vfs_readahead.8.xml
+++ b/docs-xml/manpages-3/vfs_readahead.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_readonly.8.xml b/docs-xml/manpages-3/vfs_readonly.8.xml
index 1d3d979cb0..d6f57216da 100644
--- a/docs-xml/manpages-3/vfs_readonly.8.xml
+++ b/docs-xml/manpages-3/vfs_readonly.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_recycle.8.xml b/docs-xml/manpages-3/vfs_recycle.8.xml
index d7890e7678..1717d544cf 100644
--- a/docs-xml/manpages-3/vfs_recycle.8.xml
+++ b/docs-xml/manpages-3/vfs_recycle.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_shadow_copy.8.xml b/docs-xml/manpages-3/vfs_shadow_copy.8.xml
index 49f79542d3..c57790ff00 100644
--- a/docs-xml/manpages-3/vfs_shadow_copy.8.xml
+++ b/docs-xml/manpages-3/vfs_shadow_copy.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_shadow_copy2.8.xml b/docs-xml/manpages-3/vfs_shadow_copy2.8.xml
index 364dd59144..4823a41952 100644
--- a/docs-xml/manpages-3/vfs_shadow_copy2.8.xml
+++ b/docs-xml/manpages-3/vfs_shadow_copy2.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml b/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml
index 3a16b61210..76d32029a3 100644
--- a/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml
+++ b/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.3</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_streams_depot.8.xml b/docs-xml/manpages-3/vfs_streams_depot.8.xml
index 3a11319d4a..cdd6c89ac8 100644
--- a/docs-xml/manpages-3/vfs_streams_depot.8.xml
+++ b/docs-xml/manpages-3/vfs_streams_depot.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_streams_xattr.8.xml b/docs-xml/manpages-3/vfs_streams_xattr.8.xml
index 50649af605..f863e226b9 100644
--- a/docs-xml/manpages-3/vfs_streams_xattr.8.xml
+++ b/docs-xml/manpages-3/vfs_streams_xattr.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfs_xattr_tdb.8.xml b/docs-xml/manpages-3/vfs_xattr_tdb.8.xml
index 4f3b70223f..915b29c728 100644
--- a/docs-xml/manpages-3/vfs_xattr_tdb.8.xml
+++ b/docs-xml/manpages-3/vfs_xattr_tdb.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/vfstest.1.xml b/docs-xml/manpages-3/vfstest.1.xml
index debe65244e..766fa194bd 100644
--- a/docs-xml/manpages-3/vfstest.1.xml
+++ b/docs-xml/manpages-3/vfstest.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/wbinfo.1.xml b/docs-xml/manpages-3/wbinfo.1.xml
index abb1c7f53f..d31a4f82a7 100644
--- a/docs-xml/manpages-3/wbinfo.1.xml
+++ b/docs-xml/manpages-3/wbinfo.1.xml
@@ -7,7 +7,7 @@
<manvolnum>1</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">User Commands</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/winbind_krb5_locator.7.xml b/docs-xml/manpages-3/winbind_krb5_locator.7.xml
index b828116a53..835ad90715 100644
--- a/docs-xml/manpages-3/winbind_krb5_locator.7.xml
+++ b/docs-xml/manpages-3/winbind_krb5_locator.7.xml
@@ -7,7 +7,7 @@
<manvolnum>7</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">7</refmiscinfo>
- <refmiscinfo class="version">3.3</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/docs-xml/manpages-3/winbindd.8.xml b/docs-xml/manpages-3/winbindd.8.xml
index 7721bd480e..f773e4ec7a 100644
--- a/docs-xml/manpages-3/winbindd.8.xml
+++ b/docs-xml/manpages-3/winbindd.8.xml
@@ -7,7 +7,7 @@
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">System Administration tools</refmiscinfo>
- <refmiscinfo class="version">3.2</refmiscinfo>
+ <refmiscinfo class="version">3.5</refmiscinfo>
</refmeta>
diff --git a/examples/smb.conf.default b/examples/smb.conf.default
index 971ca19c83..b4e3d63e03 100644
--- a/examples/smb.conf.default
+++ b/examples/smb.conf.default
@@ -204,7 +204,7 @@
; comment = Public Stuff
; path = /home/samba
; public = yes
-; writable = yes
+; writable = no
; printable = no
; write list = @staff
diff --git a/lib/async_req/async_req.c b/lib/async_req/async_req.c
deleted file mode 100644
index 4dfe809738..0000000000
--- a/lib/async_req/async_req.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- Infrastructure for async requests
- Copyright (C) Volker Lendecke 2008
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "lib/tevent/tevent.h"
-#include "lib/talloc/talloc.h"
-#include "lib/util/dlinklist.h"
-#include "lib/async_req/async_req.h"
-
-#ifndef TALLOC_FREE
-#define TALLOC_FREE(ctx) do { talloc_free(ctx); ctx=NULL; } while(0)
-#endif
-
-/**
- * @brief Print an async_req structure
- * @param[in] mem_ctx The memory context for the result
- * @param[in] req The request to be printed
- * @retval Text representation of req
- *
- * This is a default print function for async requests. Implementations should
- * override this with more specific information.
- *
- * This function should not be used by async API users, this is non-static
- * only to allow implementations to easily provide default information in
- * their specific functions.
- */
-
-char *async_req_print(TALLOC_CTX *mem_ctx, struct async_req *req)
-{
- return talloc_asprintf(mem_ctx, "async_req: state=%d, error=%d, "
- "priv=%s", req->state, (int)req->error,
- talloc_get_name(req->private_data));
-}
-
-/**
- * @brief Create an async request
- * @param[in] mem_ctx The memory context for the result
- * @param[in] ev The event context this async request will be driven by
- * @retval A new async request
- *
- * The new async request will be initialized in state ASYNC_REQ_IN_PROGRESS
- */
-
-struct async_req *async_req_new(TALLOC_CTX *mem_ctx)
-{
- struct async_req *result;
-
- result = talloc_zero(mem_ctx, struct async_req);
- if (result == NULL) {
- return NULL;
- }
- result->state = ASYNC_REQ_IN_PROGRESS;
- result->print = async_req_print;
- return result;
-}
-
-static void async_req_finish(struct async_req *req, enum async_req_state state)
-{
- req->state = state;
- if (req->async.fn != NULL) {
- req->async.fn(req);
- }
-}
-
-/**
- * @brief An async request has successfully finished
- * @param[in] req The finished request
- *
- * async_req_done is to be used by implementors of async requests. When a
- * request is successfully finished, this function calls the user's completion
- * function.
- */
-
-void async_req_done(struct async_req *req)
-{
- async_req_finish(req, ASYNC_REQ_DONE);
-}
-
-/**
- * @brief An async request has seen an error
- * @param[in] req The request with an error
- * @param[in] error The error code
- *
- * async_req_done is to be used by implementors of async requests. When a
- * request can not successfully completed, the implementation should call this
- * function with the appropriate status code.
- */
-
-void async_req_error(struct async_req *req, uint64_t error)
-{
- req->error = error;
- async_req_finish(req, ASYNC_REQ_USER_ERROR);
-}
-
-/**
- * @brief Timed event callback
- * @param[in] ev Event context
- * @param[in] te The timed event
- * @param[in] now zero time
- * @param[in] priv The async request to be finished
- */
-
-static void async_trigger(struct tevent_context *ev, struct tevent_timer *te,
- struct timeval now, void *priv)
-{
- struct async_req *req = talloc_get_type_abort(priv, struct async_req);
-
- TALLOC_FREE(te);
- if (req->error == 0) {
- async_req_done(req);
- }
- else {
- async_req_error(req, req->error);
- }
-}
-
-/**
- * @brief Helper function for nomem check
- * @param[in] p The pointer to be checked
- * @param[in] req The request being processed
- *
- * Convenience helper to easily check alloc failure within a callback
- * implementing the next step of an async request.
- *
- * Call pattern would be
- * \code
- * p = talloc(mem_ctx, bla);
- * if (async_req_ntnomem(p, req)) {
- * return;
- * }
- * \endcode
- */
-
-bool async_req_nomem(const void *p, struct async_req *req)
-{
- if (p != NULL) {
- return false;
- }
- async_req_finish(req, ASYNC_REQ_NO_MEMORY);
- return true;
-}
-
-/**
- * @brief Finish a request before it started processing
- * @param[in] req The finished request
- * @param[in] status The success code
- *
- * An implementation of an async request might find that it can either finish
- * the request without waiting for an external event, or it can't even start
- * the engine. To present the illusion of a callback to the user of the API,
- * the implementation can call this helper function which triggers an
- * immediate timed event. This way the caller can use the same calling
- * conventions, independent of whether the request was actually deferred.
- */
-
-bool async_post_error(struct async_req *req, struct tevent_context *ev,
- uint64_t error)
-{
- req->error = error;
-
- if (tevent_add_timer(ev, req, tevent_timeval_zero(),
- async_trigger, req) == NULL) {
- return false;
- }
- return true;
-}
-
-bool async_req_is_error(struct async_req *req, enum async_req_state *state,
- uint64_t *error)
-{
- if (req->state == ASYNC_REQ_DONE) {
- return false;
- }
- if (req->state == ASYNC_REQ_USER_ERROR) {
- *error = req->error;
- }
- *state = req->state;
- return true;
-}
-
-struct async_queue_entry {
- struct async_queue_entry *prev, *next;
- struct async_req_queue *queue;
- struct async_req *req;
- void (*trigger)(struct async_req *req);
-};
-
-struct async_req_queue {
- struct async_queue_entry *queue;
-};
-
-struct async_req_queue *async_req_queue_init(TALLOC_CTX *mem_ctx)
-{
- return talloc_zero(mem_ctx, struct async_req_queue);
-}
-
-static int async_queue_entry_destructor(struct async_queue_entry *e)
-{
- struct async_req_queue *queue = e->queue;
-
- DLIST_REMOVE(queue->queue, e);
-
- if (queue->queue != NULL) {
- queue->queue->trigger(queue->queue->req);
- }
-
- return 0;
-}
-
-static void async_req_immediate_trigger(struct tevent_context *ev,
- struct tevent_timer *te,
- struct timeval now,
- void *priv)
-{
- struct async_queue_entry *e = talloc_get_type_abort(
- priv, struct async_queue_entry);
-
- TALLOC_FREE(te);
- e->trigger(e->req);
-}
-
-bool async_req_enqueue(struct async_req_queue *queue, struct tevent_context *ev,
- struct async_req *req,
- void (*trigger)(struct async_req *req))
-{
- struct async_queue_entry *e;
- bool busy;
-
- busy = (queue->queue != NULL);
-
- e = talloc(req, struct async_queue_entry);
- if (e == NULL) {
- return false;
- }
-
- e->req = req;
- e->trigger = trigger;
- e->queue = queue;
-
- DLIST_ADD_END(queue->queue, e, struct async_queue_entry *);
- talloc_set_destructor(e, async_queue_entry_destructor);
-
- if (!busy) {
- struct tevent_timer *te;
-
- te = tevent_add_timer(ev, e, tevent_timeval_zero(),
- async_req_immediate_trigger,
- e);
- if (te == NULL) {
- TALLOC_FREE(e);
- return false;
- }
- }
-
- return true;
-}
-
-bool _async_req_setup(TALLOC_CTX *mem_ctx, struct async_req **preq,
- void *pstate, size_t state_size, const char *typename)
-{
- struct async_req *req;
- void **ppstate = (void **)pstate;
- void *state;
-
- req = async_req_new(mem_ctx);
- if (req == NULL) {
- return false;
- }
- state = talloc_size(req, state_size);
- if (state == NULL) {
- TALLOC_FREE(req);
- return false;
- }
- talloc_set_name_const(state, typename);
- req->private_data = state;
-
- *preq = req;
- *ppstate = state;
-
- return true;
-}
diff --git a/lib/async_req/async_req.h b/lib/async_req/async_req.h
deleted file mode 100644
index fdec1b708e..0000000000
--- a/lib/async_req/async_req.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- Infrastructure for async requests
- Copyright (C) Volker Lendecke 2008
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef __ASYNC_REQ_H__
-#define __ASYNC_REQ_H__
-
-#include "lib/talloc/talloc.h"
-
-/**
- * An async request moves between the following 4 states:
- */
-
-enum async_req_state {
- /**
- * we are creating the request
- */
- ASYNC_REQ_INIT,
- /**
- * we are waiting the request to complete
- */
- ASYNC_REQ_IN_PROGRESS,
- /**
- * the request is finished
- */
- ASYNC_REQ_DONE,
- /**
- * A user error has occured
- */
- ASYNC_REQ_USER_ERROR,
- /**
- * Request timed out
- */
- ASYNC_REQ_TIMED_OUT,
- /**
- * No memory in between
- */
- ASYNC_REQ_NO_MEMORY
-};
-
-/**
- * @brief An async request
- *
- * This represents an async request being processed by callbacks via an event
- * context. A user can issue for example a write request to a socket, giving
- * an implementation function the fd, the buffer and the number of bytes to
- * transfer. The function issuing the request will immediately return without
- * blocking most likely without having sent anything. The API user then fills
- * in req->async.fn and req->async.priv, functions that are called when the
- * request is finished.
- *
- * It is up to the user of the async request to talloc_free it after it has
- * finished. This can happen while the completion function is called.
- */
-
-struct async_req {
- /**
- * @brief The external state - will be queried by the caller
- *
- * While the async request is being processed, state will remain in
- * ASYNC_REQ_IN_PROGRESS. A request is finished if
- * req->state>=ASYNC_REQ_DONE.
- */
- enum async_req_state state;
-
- /**
- * @brief Private pointer for the actual implementation
- *
- * The implementation doing the work for the async request needs a
- * current state like for example a fd event. The user of an async
- * request should not touch this.
- */
- void *private_data;
-
- /**
- * @brief Print yourself, for debugging purposes
- *
- * Async requests are opaque data structures. The implementation of an
- * async request can define a custom function to print more debug
- * info.
- */
- char *(*print)(TALLOC_CTX *mem_ctx, struct async_req *);
-
- /**
- * @brief status code when finished
- *
- * This status can be queried in the async completion function. It
- * will be set to 0 when everything went fine.
- **/
- uint64_t error;
-
- /**
- * @brief What to do on completion
- *
- * This is used for the user of an async request, fn is called when
- * the request completes, either successfully or with an error.
- */
- struct {
- /**
- * @brief Completion function
- * Completion function, to be filled by the API user
- */
- void (*fn)(struct async_req *);
- /**
- * @brief Private data for the completion function
- */
- void *priv;
- } async;
-};
-
-struct async_req *async_req_new(TALLOC_CTX *mem_ctx);
-
-char *async_req_print(TALLOC_CTX *mem_ctx, struct async_req *req);
-
-void async_req_done(struct async_req *req);
-
-void async_req_error(struct async_req *req, uint64_t error);
-
-bool async_req_nomem(const void *p, struct async_req *req);
-
-bool async_post_error(struct async_req *req, struct tevent_context *ev,
- uint64_t error);
-
-bool async_req_is_error(struct async_req *req, enum async_req_state *state,
- uint64_t *error);
-
-struct async_req_queue;
-
-struct async_req_queue *async_req_queue_init(TALLOC_CTX *mem_ctx);
-
-bool async_req_enqueue(struct async_req_queue *queue,
- struct tevent_context *ev,
- struct async_req *req,
- void (*trigger)(struct async_req *req));
-
-bool _async_req_setup(TALLOC_CTX *mem_ctx, struct async_req **preq,
- void *pstate, size_t state_size, const char *typename);
-
-#define async_req_setup(_mem_ctx, _preq, _pstate, type) \
- _async_req_setup((_mem_ctx), (_preq), (_pstate), sizeof(type), #type)
-
-
-#endif
diff --git a/lib/async_req/async_req_ntstatus.c b/lib/async_req/async_req_ntstatus.c
deleted file mode 100644
index 65bc0f6510..0000000000
--- a/lib/async_req/async_req_ntstatus.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- NTSTATUS wrappers for async_req.h
- Copyright (C) Volker Lendecke 2008, 2009
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "lib/tevent/tevent.h"
-#include "lib/talloc/talloc.h"
-#include "lib/util/dlinklist.h"
-#include "lib/async_req/async_req_ntstatus.h"
-
-void async_req_nterror(struct async_req *req, NTSTATUS status)
-{
- async_req_error(req, NT_STATUS_V(status));
-}
-
-bool async_post_ntstatus(struct async_req *req, struct tevent_context *ev,
- NTSTATUS status)
-{
- return async_post_error(req, ev, NT_STATUS_V(status));
-}
-
-bool async_req_is_nterror(struct async_req *req, NTSTATUS *status)
-{
- enum async_req_state state;
- uint64_t error;
-
- if (!async_req_is_error(req, &state, &error)) {
- return false;
- }
- switch (state) {
- case ASYNC_REQ_USER_ERROR:
- *status = NT_STATUS(error);
- break;
- case ASYNC_REQ_TIMED_OUT:
- *status = NT_STATUS_IO_TIMEOUT;
- break;
- case ASYNC_REQ_NO_MEMORY:
- *status = NT_STATUS_NO_MEMORY;
- break;
- default:
- *status = NT_STATUS_INTERNAL_ERROR;
- break;
- }
- return true;
-}
-
-NTSTATUS async_req_simple_recv_ntstatus(struct async_req *req)
-{
- NTSTATUS status;
-
- if (async_req_is_nterror(req, &status)) {
- return status;
- }
- return NT_STATUS_OK;
-}
diff --git a/lib/async_req/async_req_ntstatus.h b/lib/async_req/async_req_ntstatus.h
deleted file mode 100644
index 7555aac603..0000000000
--- a/lib/async_req/async_req_ntstatus.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- NTSTATUS wrappers for async_req.h
- Copyright (C) Volker Lendecke 2008, 2009
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef __ASYNC_REQ_NTSTATUS_H__
-#define __ASYNC_REQ_NTSTATUS_H__
-
-#include "lib/async_req/async_req.h"
-#include "includes.h"
-
-void async_req_nterror(struct async_req *req, NTSTATUS status);
-
-bool async_post_ntstatus(struct async_req *req, struct tevent_context *ev,
- NTSTATUS status);
-
-bool async_req_is_nterror(struct async_req *req, NTSTATUS *status);
-
-NTSTATUS async_req_simple_recv_ntstatus(struct async_req *req);
-
-#endif
diff --git a/lib/async_req/async_sock.c b/lib/async_req/async_sock.c
index 77df406044..543972815d 100644
--- a/lib/async_req/async_sock.c
+++ b/lib/async_req/async_sock.c
@@ -20,7 +20,6 @@
#include "includes.h"
#include "lib/talloc/talloc.h"
#include "lib/tevent/tevent.h"
-#include "lib/async_req/async_req.h"
#include "lib/async_req/async_sock.h"
#include "lib/util/tevent_unix.h"
#include <fcntl.h>
@@ -29,55 +28,6 @@
#define TALLOC_FREE(ctx) do { talloc_free(ctx); ctx=NULL; } while(0)
#endif
-/**
- * @brief Map async_req states to unix-style errnos
- * @param[in] req The async req to get the state from
- * @param[out] err Pointer to take the unix-style errno
- *
- * @return true if the async_req is in an error state, false otherwise
- */
-
-bool async_req_is_errno(struct async_req *req, int *err)
-{
- enum async_req_state state;
- uint64_t error;
-
- if (!async_req_is_error(req, &state, &error)) {
- return false;
- }
-
- switch (state) {
- case ASYNC_REQ_USER_ERROR:
- *err = (int)error;
- break;
- case ASYNC_REQ_TIMED_OUT:
-#ifdef ETIMEDOUT
- *err = ETIMEDOUT;
-#else
- *err = EAGAIN;
-#endif
- break;
- case ASYNC_REQ_NO_MEMORY:
- *err = ENOMEM;
- break;
- default:
- *err = EIO;
- break;
- }
- return true;
-}
-
-int async_req_simple_recv_errno(struct async_req *req)
-{
- int err;
-
- if (async_req_is_errno(req, &err)) {
- return err;
- }
-
- return 0;
-}
-
struct async_send_state {
int fd;
const void *buf;
@@ -547,7 +497,8 @@ static void read_packet_handler(struct tevent_context *ev,
ssize_t nread, more;
uint8_t *tmp;
- nread = read(state->fd, state->buf+state->nread, total-state->nread);
+ nread = recv(state->fd, state->buf+state->nread, total-state->nread,
+ 0);
if (nread == -1) {
tevent_req_error(req, errno);
return;
diff --git a/lib/async_req/async_sock.h b/lib/async_req/async_sock.h
index c5d9400eb6..ec859dc0ae 100644
--- a/lib/async_req/async_sock.h
+++ b/lib/async_req/async_sock.h
@@ -22,9 +22,6 @@
#include "includes.h"
-bool async_req_is_errno(struct async_req *req, int *err);
-int async_req_simple_recv_errno(struct async_req *req);
-
struct tevent_req *async_send_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
int fd, const void *buf, size_t len,
diff --git a/lib/async_req/config.mk b/lib/async_req/config.mk
index 820f890fd0..bf0fd6a2db 100644
--- a/lib/async_req/config.mk
+++ b/lib/async_req/config.mk
@@ -1,3 +1,3 @@
[SUBSYSTEM::LIBASYNC_REQ]
-LIBASYNC_REQ_OBJ_FILES = $(addprefix ../lib/async_req/, async_req.o async_sock.o async_req_ntstatus.o)
+LIBASYNC_REQ_OBJ_FILES = $(addprefix ../lib/async_req/, async_sock.o)
diff --git a/lib/popt/popt.h b/lib/popt/popt.h
index 08701d73b5..7b94a98d03 100644
--- a/lib/popt/popt.h
+++ b/lib/popt/popt.h
@@ -83,7 +83,7 @@
#define POPT_ERROR_NOARG -10 /*!< missing argument */
#define POPT_ERROR_BADOPT -11 /*!< unknown option */
#define POPT_ERROR_OPTSTOODEEP -13 /*!< aliases nested too deeply */
-#define POPT_ERROR_BADQUOTE -15 /*!< error in paramter quoting */
+#define POPT_ERROR_BADQUOTE -15 /*!< error in parameter quoting */
#define POPT_ERROR_ERRNO -16 /*!< errno set, use strerror(errno) */
#define POPT_ERROR_BADNUMBER -17 /*!< invalid numeric value */
#define POPT_ERROR_OVERFLOW -18 /*!< number too large or too small */
diff --git a/lib/tsocket/config.mk b/lib/tsocket/config.mk
index c35f0afd6f..2e05f544c9 100644
--- a/lib/tsocket/config.mk
+++ b/lib/tsocket/config.mk
@@ -5,8 +5,6 @@ LIBTSOCKET_OBJ_FILES = $(addprefix ../lib/tsocket/, \
tsocket.o \
tsocket_helpers.o \
tsocket_bsd.o \
- tsocket_recvfrom.o \
- tsocket_sendto.o \
tsocket_connect.o \
tsocket_writev.o \
tsocket_readv.o)
diff --git a/lib/tsocket/tsocket.c b/lib/tsocket/tsocket.c
index 1a12e691a9..076c6474a0 100644
--- a/lib/tsocket/tsocket.c
+++ b/lib/tsocket/tsocket.c
@@ -118,21 +118,6 @@ int tsocket_writev(struct tsocket_context *sock,
return sock->ops->writev_data(sock, vector, count);
}
-ssize_t tsocket_recvfrom(struct tsocket_context *sock,
- uint8_t *data, size_t len,
- TALLOC_CTX *addr_ctx,
- struct tsocket_address **src_addr)
-{
- return sock->ops->recvfrom_data(sock, data, len, addr_ctx, src_addr);
-}
-
-ssize_t tsocket_sendto(struct tsocket_context *sock,
- const uint8_t *data, size_t len,
- const struct tsocket_address *dest_addr)
-{
- return sock->ops->sendto_data(sock, data, len, dest_addr);
-}
-
int tsocket_get_status(const struct tsocket_context *sock)
{
return sock->ops->get_status(sock);
@@ -229,3 +214,397 @@ int _tsocket_address_create_socket(const struct tsocket_address *addr,
return addr->ops->create_socket(addr, type, mem_ctx, sock, location);
}
+struct tdgram_context {
+ const char *location;
+ const struct tdgram_context_ops *ops;
+ void *private_data;
+};
+
+struct tdgram_context *_tdgram_context_create(TALLOC_CTX *mem_ctx,
+ const struct tdgram_context_ops *ops,
+ void *pstate,
+ size_t psize,
+ const char *type,
+ const char *location)
+{
+ struct tdgram_context *dgram;
+ void **ppstate = (void **)pstate;
+ void *state;
+
+ dgram = talloc(mem_ctx, struct tdgram_context);
+ if (dgram == NULL) {
+ return NULL;
+ }
+ dgram->location = location;
+ dgram->ops = ops;
+
+ state = talloc_size(dgram, psize);
+ if (state == NULL) {
+ talloc_free(dgram);
+ return NULL;
+ }
+ talloc_set_name_const(state, type);
+
+ dgram->private_data = state;
+
+ *ppstate = state;
+ return dgram;
+}
+
+void *_tdgram_context_data(struct tdgram_context *dgram)
+{
+ return dgram->private_data;
+}
+
+struct tdgram_recvfrom_state {
+ const struct tdgram_context_ops *ops;
+ uint8_t *buf;
+ size_t len;
+ struct tsocket_address *src;
+};
+
+static void tdgram_recvfrom_done(struct tevent_req *subreq);
+
+struct tevent_req *tdgram_recvfrom_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram)
+{
+ struct tevent_req *req;
+ struct tdgram_recvfrom_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct tdgram_recvfrom_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ state->ops = dgram->ops;
+
+ subreq = state->ops->recvfrom_send(state, ev, dgram);
+ if (tevent_req_nomem(subreq, req)) {
+ goto post;
+ }
+ tevent_req_set_callback(subreq, tdgram_recvfrom_done, req);
+
+ return req;
+
+ post:
+ tevent_req_post(req, ev);
+ return req;
+}
+
+static void tdgram_recvfrom_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(subreq,
+ struct tevent_req);
+ struct tdgram_recvfrom_state *state = tevent_req_data(req,
+ struct tdgram_recvfrom_state);
+ ssize_t ret;
+ int sys_errno;
+
+ ret = state->ops->recvfrom_recv(subreq, &sys_errno, state,
+ &state->buf, &state->src);
+ if (ret == -1) {
+ tevent_req_error(req, sys_errno);
+ return;
+ }
+
+ state->len = ret;
+
+ tevent_req_done(req);
+}
+
+ssize_t tdgram_recvfrom_recv(struct tevent_req *req,
+ int *perrno,
+ TALLOC_CTX *mem_ctx,
+ uint8_t **buf,
+ struct tsocket_address **src)
+{
+ struct tdgram_recvfrom_state *state = tevent_req_data(req,
+ struct tdgram_recvfrom_state);
+ ssize_t ret;
+
+ ret = tsocket_simple_int_recv(req, perrno);
+ if (ret == 0) {
+ *buf = talloc_move(mem_ctx, &state->buf);
+ ret = state->len;
+ if (src) {
+ *src = talloc_move(mem_ctx, &state->src);
+ }
+ }
+
+ tevent_req_received(req);
+ return ret;
+}
+
+struct tdgram_sendto_state {
+ const struct tdgram_context_ops *ops;
+ ssize_t ret;
+};
+
+static void tdgram_sendto_done(struct tevent_req *subreq);
+
+struct tevent_req *tdgram_sendto_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram,
+ const uint8_t *buf, size_t len,
+ const struct tsocket_address *dst)
+{
+ struct tevent_req *req;
+ struct tdgram_sendto_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct tdgram_sendto_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ state->ops = dgram->ops;
+ state->ret = -1;
+
+ subreq = state->ops->sendto_send(state, ev, dgram,
+ buf, len, dst);
+ if (tevent_req_nomem(subreq, req)) {
+ goto post;
+ }
+ tevent_req_set_callback(subreq, tdgram_sendto_done, req);
+
+ return req;
+
+ post:
+ tevent_req_post(req, ev);
+ return req;
+}
+
+static void tdgram_sendto_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(subreq,
+ struct tevent_req);
+ struct tdgram_sendto_state *state = tevent_req_data(req,
+ struct tdgram_sendto_state);
+ ssize_t ret;
+ int sys_errno;
+
+ ret = state->ops->sendto_recv(subreq, &sys_errno);
+ if (ret == -1) {
+ tevent_req_error(req, sys_errno);
+ return;
+ }
+
+ state->ret = ret;
+
+ tevent_req_done(req);
+}
+
+ssize_t tdgram_sendto_recv(struct tevent_req *req,
+ int *perrno)
+{
+ struct tdgram_sendto_state *state = tevent_req_data(req,
+ struct tdgram_sendto_state);
+ ssize_t ret;
+
+ ret = tsocket_simple_int_recv(req, perrno);
+ if (ret == 0) {
+ ret = state->ret;
+ }
+
+ tevent_req_received(req);
+ return ret;
+}
+
+struct tdgram_disconnect_state {
+ const struct tdgram_context_ops *ops;
+};
+
+static void tdgram_disconnect_done(struct tevent_req *subreq);
+
+struct tevent_req *tdgram_disconnect_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram)
+{
+ struct tevent_req *req;
+ struct tdgram_disconnect_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct tdgram_disconnect_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ state->ops = dgram->ops;
+
+ subreq = state->ops->disconnect_send(state, ev, dgram);
+ if (tevent_req_nomem(subreq, req)) {
+ goto post;
+ }
+ tevent_req_set_callback(subreq, tdgram_disconnect_done, req);
+
+ return req;
+
+ post:
+ tevent_req_post(req, ev);
+ return req;
+}
+
+static void tdgram_disconnect_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(subreq,
+ struct tevent_req);
+ struct tdgram_disconnect_state *state = tevent_req_data(req,
+ struct tdgram_disconnect_state);
+ int ret;
+ int sys_errno;
+
+ ret = state->ops->disconnect_recv(subreq, &sys_errno);
+ if (ret == -1) {
+ tevent_req_error(req, sys_errno);
+ return;
+ }
+
+ tevent_req_done(req);
+}
+
+int tdgram_disconnect_recv(struct tevent_req *req,
+ int *perrno)
+{
+ int ret;
+
+ ret = tsocket_simple_int_recv(req, perrno);
+
+ tevent_req_received(req);
+ return ret;
+}
+
+struct tdgram_sendto_queue_state {
+ /* this structs are owned by the caller */
+ struct {
+ struct tevent_context *ev;
+ struct tdgram_context *dgram;
+ const uint8_t *buf;
+ size_t len;
+ const struct tsocket_address *dst;
+ } caller;
+ ssize_t ret;
+};
+
+static void tdgram_sendto_queue_trigger(struct tevent_req *req,
+ void *private_data);
+static void tdgram_sendto_queue_done(struct tevent_req *subreq);
+
+/**
+ * @brief Queue a dgram blob for sending through the socket
+ * @param[in] mem_ctx The memory context for the result
+ * @param[in] ev The event context the operation should work on
+ * @param[in] dgram The tdgram_context to send the message buffer
+ * @param[in] queue The existing dgram queue
+ * @param[in] buf The message buffer
+ * @param[in] len The message length
+ * @param[in] dst The destination socket address
+ * @retval The async request handle
+ *
+ * This function queues a blob for sending to destination through an existing
+ * dgram socket. The async callback is triggered when the whole blob is
+ * delivered to the underlying system socket.
+ *
+ * The caller needs to make sure that all non-scalar input parameters hang
+ * arround for the whole lifetime of the request.
+ */
+struct tevent_req *tdgram_sendto_queue_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram,
+ struct tevent_queue *queue,
+ const uint8_t *buf,
+ size_t len,
+ struct tsocket_address *dst)
+{
+ struct tevent_req *req;
+ struct tdgram_sendto_queue_state *state;
+ bool ok;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct tdgram_sendto_queue_state);
+ if (!req) {
+ return NULL;
+ }
+
+ state->caller.ev = ev;
+ state->caller.dgram = dgram;
+ state->caller.buf = buf;
+ state->caller.len = len;
+ state->caller.dst = dst;
+ state->ret = -1;
+
+ ok = tevent_queue_add(queue,
+ ev,
+ req,
+ tdgram_sendto_queue_trigger,
+ NULL);
+ if (!ok) {
+ tevent_req_nomem(NULL, req);
+ goto post;
+ }
+
+ return req;
+
+ post:
+ tevent_req_post(req, ev);
+ return req;
+}
+
+static void tdgram_sendto_queue_trigger(struct tevent_req *req,
+ void *private_data)
+{
+ struct tdgram_sendto_queue_state *state = tevent_req_data(req,
+ struct tdgram_sendto_queue_state);
+ struct tevent_req *subreq;
+
+ subreq = tdgram_sendto_send(state,
+ state->caller.ev,
+ state->caller.dgram,
+ state->caller.buf,
+ state->caller.len,
+ state->caller.dst);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, tdgram_sendto_queue_done, req);
+}
+
+static void tdgram_sendto_queue_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(subreq,
+ struct tevent_req);
+ struct tdgram_sendto_queue_state *state = tevent_req_data(req,
+ struct tdgram_sendto_queue_state);
+ ssize_t ret;
+ int sys_errno;
+
+ ret = tdgram_sendto_recv(subreq, &sys_errno);
+ talloc_free(subreq);
+ if (ret == -1) {
+ tevent_req_error(req, sys_errno);
+ return;
+ }
+ state->ret = ret;
+
+ tevent_req_done(req);
+}
+
+ssize_t tdgram_sendto_queue_recv(struct tevent_req *req, int *perrno)
+{
+ struct tdgram_sendto_queue_state *state = tevent_req_data(req,
+ struct tdgram_sendto_queue_state);
+ ssize_t ret;
+
+ ret = tsocket_simple_int_recv(req, perrno);
+ if (ret == 0) {
+ ret = state->ret;
+ }
+
+ tevent_req_received(req);
+ return ret;
+}
+
diff --git a/lib/tsocket/tsocket.h b/lib/tsocket/tsocket.h
index 9bcfb5cb7e..8f69490012 100644
--- a/lib/tsocket/tsocket.h
+++ b/lib/tsocket/tsocket.h
@@ -29,11 +29,11 @@
struct tsocket_context;
struct tsocket_address;
+struct tdgram_context;
struct iovec;
enum tsocket_type {
TSOCKET_TYPE_STREAM = 1,
- TSOCKET_TYPE_DGRAM,
TSOCKET_TYPE_MESSAGE
};
@@ -67,14 +67,6 @@ int tsocket_readv(struct tsocket_context *sock,
int tsocket_writev(struct tsocket_context *sock,
const struct iovec *vector, size_t count);
-ssize_t tsocket_recvfrom(struct tsocket_context *sock,
- uint8_t *data, size_t len,
- TALLOC_CTX *addr_ctx,
- struct tsocket_address **src_addr);
-ssize_t tsocket_sendto(struct tsocket_context *sock,
- const uint8_t *data, size_t len,
- const struct tsocket_address *dest_addr);
-
int tsocket_get_status(const struct tsocket_context *sock);
int _tsocket_get_local_address(const struct tsocket_context *sock,
@@ -121,6 +113,32 @@ int _tsocket_address_create_socket(const struct tsocket_address *addr,
__location__)
/*
+ * tdgram_context related functions
+ */
+struct tevent_req *tdgram_recvfrom_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram);
+ssize_t tdgram_recvfrom_recv(struct tevent_req *req,
+ int *perrno,
+ TALLOC_CTX *mem_ctx,
+ uint8_t **buf,
+ struct tsocket_address **src);
+
+struct tevent_req *tdgram_sendto_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram,
+ const uint8_t *buf, size_t len,
+ const struct tsocket_address *dst);
+ssize_t tdgram_sendto_recv(struct tevent_req *req,
+ int *perrno);
+
+struct tevent_req *tdgram_disconnect_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram);
+int tdgram_disconnect_recv(struct tevent_req *req,
+ int *perrno);
+
+/*
* BSD sockets: inet, inet6 and unix
*/
@@ -160,32 +178,25 @@ int _tsocket_context_bsd_wrap_existing(TALLOC_CTX *mem_ctx,
_tsocket_context_bsd_wrap_existing(mem_ctx, fd, cod, _sock, \
__location__)
-/*
- * Async helpers
- */
+int _tdgram_inet_udp_socket(const struct tsocket_address *local,
+ const struct tsocket_address *remote,
+ TALLOC_CTX *mem_ctx,
+ struct tdgram_context **dgram,
+ const char *location);
+#define tdgram_inet_udp_socket(local, remote, mem_ctx, dgram) \
+ _tdgram_inet_udp_socket(local, remote, mem_ctx, dgram, __location__)
-struct tevent_req *tsocket_recvfrom_send(struct tsocket_context *sock,
- TALLOC_CTX *mem_ctx);
-ssize_t tsocket_recvfrom_recv(struct tevent_req *req,
- int *perrno,
+int _tdgram_unix_dgram_socket(const struct tsocket_address *local,
+ const struct tsocket_address *remote,
TALLOC_CTX *mem_ctx,
- uint8_t **buf,
- struct tsocket_address **src);
-
-struct tevent_req *tsocket_sendto_send(struct tsocket_context *sock,
- TALLOC_CTX *mem_ctx,
- const uint8_t *buf,
- size_t len,
- const struct tsocket_address *dst);
-ssize_t tsocket_sendto_recv(struct tevent_req *req, int *perrno);
+ struct tdgram_context **dgram,
+ const char *location);
+#define tdgram_unix_dgram_socket(local, remote, mem_ctx, dgram) \
+ _tdgram_unix_dgram_socket(local, remote, mem_ctx, dgram, __location__)
-struct tevent_req *tsocket_sendto_queue_send(TALLOC_CTX *mem_ctx,
- struct tsocket_context *sock,
- struct tevent_queue *queue,
- const uint8_t *buf,
- size_t len,
- struct tsocket_address *dst);
-ssize_t tsocket_sendto_queue_recv(struct tevent_req *req, int *perrno);
+/*
+ * Async helpers
+ */
struct tevent_req *tsocket_connect_send(struct tsocket_context *sock,
TALLOC_CTX *mem_ctx,
@@ -216,5 +227,18 @@ struct tevent_req *tsocket_readv_send(struct tsocket_context *sock,
void *private_data);
int tsocket_readv_recv(struct tevent_req *req, int *perrno);
+/*
+ * Queue helpers
+ */
+
+struct tevent_req *tdgram_sendto_queue_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram,
+ struct tevent_queue *queue,
+ const uint8_t *buf,
+ size_t len,
+ struct tsocket_address *dst);
+ssize_t tdgram_sendto_queue_recv(struct tevent_req *req, int *perrno);
+
#endif /* _TSOCKET_H */
diff --git a/lib/tsocket/tsocket_bsd.c b/lib/tsocket/tsocket_bsd.c
index 8254f5d9d3..87586e08e3 100644
--- a/lib/tsocket/tsocket_bsd.c
+++ b/lib/tsocket/tsocket_bsd.c
@@ -24,9 +24,168 @@
#include "replace.h"
#include "system/filesys.h"
#include "system/network.h"
+#include "system/filesys.h"
#include "tsocket.h"
#include "tsocket_internal.h"
+static int tsocket_bsd_error_from_errno(int ret,
+ int sys_errno,
+ bool *retry)
+{
+ *retry = false;
+
+ if (ret >= 0) {
+ return 0;
+ }
+
+ if (ret != -1) {
+ return EIO;
+ }
+
+ if (sys_errno == 0) {
+ return EIO;
+ }
+
+ if (sys_errno == EINTR) {
+ *retry = true;
+ return sys_errno;
+ }
+
+ if (sys_errno == EINPROGRESS) {
+ *retry = true;
+ return sys_errno;
+ }
+
+ if (sys_errno == EAGAIN) {
+ *retry = true;
+ return sys_errno;
+ }
+
+#ifdef EWOULDBLOCK
+ if (sys_errno == EWOULDBLOCK) {
+ *retry = true;
+ return sys_errno;
+ }
+#endif
+
+ return sys_errno;
+}
+
+static int tsocket_bsd_common_prepare_fd(int fd, bool high_fd)
+{
+ int i;
+ int sys_errno = 0;
+ int fds[3];
+ int num_fds = 0;
+
+ int result, flags;
+
+ if (fd == -1) {
+ return -1;
+ }
+
+ /* first make a fd >= 3 */
+ if (high_fd) {
+ while (fd < 3) {
+ fds[num_fds++] = fd;
+ fd = dup(fd);
+ if (fd == -1) {
+ sys_errno = errno;
+ break;
+ }
+ }
+ for (i=0; i<num_fds; i++) {
+ close(fds[i]);
+ }
+ if (fd == -1) {
+ errno = sys_errno;
+ return fd;
+ }
+ }
+
+ /* fd should be nonblocking. */
+
+#ifdef O_NONBLOCK
+#define FLAG_TO_SET O_NONBLOCK
+#else
+#ifdef SYSV
+#define FLAG_TO_SET O_NDELAY
+#else /* BSD */
+#define FLAG_TO_SET FNDELAY
+#endif
+#endif
+
+ if ((flags = fcntl(fd, F_GETFL)) == -1) {
+ goto fail;
+ }
+
+ flags |= FLAG_TO_SET;
+ if (fcntl(fd, F_SETFL, flags) == -1) {
+ goto fail;
+ }
+
+#undef FLAG_TO_SET
+
+ /* fd should be closed on exec() */
+#ifdef FD_CLOEXEC
+ result = flags = fcntl(fd, F_GETFD, 0);
+ if (flags >= 0) {
+ flags |= FD_CLOEXEC;
+ result = fcntl(fd, F_SETFD, flags);
+ }
+ if (result < 0) {
+ goto fail;
+ }
+#endif
+ return fd;
+
+ fail:
+ if (fd != -1) {
+ sys_errno = errno;
+ close(fd);
+ errno = sys_errno;
+ }
+ return -1;
+}
+
+static ssize_t tsocket_bsd_pending(int fd)
+{
+ int ret;
+ int value = 0;
+
+ ret = ioctl(fd, FIONREAD, &value);
+ if (ret == -1) {
+ return ret;
+ }
+
+ if (ret == 0) {
+ if (value == 0) {
+ int error=0;
+ socklen_t len = sizeof(error);
+ /*
+ * if no data is available check if the socket
+ * is in error state. For dgram sockets
+ * it's the way to return ICMP error messages
+ * of connected sockets to the caller.
+ */
+ ret = getsockopt(fd, SOL_SOCKET, SO_ERROR,
+ &error, &len);
+ if (ret == -1) {
+ return ret;
+ }
+ if (error != 0) {
+ errno = error;
+ return -1;
+ }
+ }
+ return value;
+ }
+
+ /* this should not be reached */
+ errno = EIO;
+ return -1;
+}
+
static const struct tsocket_context_ops tsocket_context_bsd_ops;
static const struct tsocket_address_ops tsocket_address_bsd_ops;
@@ -456,9 +615,6 @@ static int tsocket_address_bsd_create_socket(const struct tsocket_address *addr,
}
bsd_type = SOCK_STREAM;
break;
- case TSOCKET_TYPE_DGRAM:
- bsd_type = SOCK_DGRAM;
- break;
default:
errno = EPROTONOSUPPORT;
return -1;
@@ -785,73 +941,6 @@ static int tsocket_context_bsd_writev_data(struct tsocket_context *sock,
return ret;
}
-static ssize_t tsocket_context_bsd_recvfrom_data(struct tsocket_context *sock,
- uint8_t *data, size_t len,
- TALLOC_CTX *addr_ctx,
- struct tsocket_address **remote)
-{
- struct tsocket_context_bsd *bsds = talloc_get_type(sock->private_data,
- struct tsocket_context_bsd);
- struct tsocket_address *addr = NULL;
- struct tsocket_address_bsd *bsda;
- ssize_t ret;
- struct sockaddr *sa = NULL;
- socklen_t sa_len = 0;
-
- if (remote) {
- addr = tsocket_address_create(addr_ctx,
- &tsocket_address_bsd_ops,
- &bsda,
- struct tsocket_address_bsd,
- __location__ "recvfrom");
- if (!addr) {
- return -1;
- }
-
- ZERO_STRUCTP(bsda);
-
- sa = &bsda->u.sa;
- sa_len = sizeof(bsda->u.ss);
- }
-
- ret = recvfrom(bsds->fd, data, len, 0, sa, &sa_len);
- if (ret < 0) {
- int saved_errno = errno;
- talloc_free(addr);
- errno = saved_errno;
- return ret;
- }
-
- if (remote) {
- *remote = addr;
- }
- return ret;
-}
-
-static ssize_t tsocket_context_bsd_sendto_data(struct tsocket_context *sock,
- const uint8_t *data, size_t len,
- const struct tsocket_address *remote)
-{
- struct tsocket_context_bsd *bsds = talloc_get_type(sock->private_data,
- struct tsocket_context_bsd);
- struct sockaddr *sa = NULL;
- socklen_t sa_len = 0;
- ssize_t ret;
-
- if (remote) {
- struct tsocket_address_bsd *bsda =
- talloc_get_type(remote->private_data,
- struct tsocket_address_bsd);
-
- sa = &bsda->u.sa;
- sa_len = sizeof(bsda->u.ss);
- }
-
- ret = sendto(bsds->fd, data, len, 0, sa, sa_len);
-
- return ret;
-}
-
static int tsocket_context_bsd_get_status(const struct tsocket_context *sock)
{
struct tsocket_context_bsd *bsds = talloc_get_type(sock->private_data,
@@ -1113,8 +1202,6 @@ static const struct tsocket_context_ops tsocket_context_bsd_ops = {
.pending_data = tsocket_context_bsd_pending_data,
.readv_data = tsocket_context_bsd_readv_data,
.writev_data = tsocket_context_bsd_writev_data,
- .recvfrom_data = tsocket_context_bsd_recvfrom_data,
- .sendto_data = tsocket_context_bsd_sendto_data,
.get_status = tsocket_context_bsd_get_status,
.get_local_address = tsocket_context_bsd_get_local_address,
@@ -1125,3 +1212,709 @@ static const struct tsocket_context_ops tsocket_context_bsd_ops = {
.disconnect = tsocket_context_bsd_disconnect
};
+
+struct tdgram_bsd {
+ int fd;
+
+ void *event_ptr;
+ struct tevent_fd *fde;
+
+ void *readable_private;
+ void (*readable_handler)(void *private_data);
+ void *writeable_private;
+ void (*writeable_handler)(void *private_data);
+
+ struct tevent_req *read_req;
+ struct tevent_req *write_req;
+};
+
+static void tdgram_bsd_fde_handler(struct tevent_context *ev,
+ struct tevent_fd *fde,
+ uint16_t flags,
+ void *private_data)
+{
+ struct tdgram_bsd *bsds = talloc_get_type_abort(private_data,
+ struct tdgram_bsd);
+
+ if (flags & TEVENT_FD_WRITE) {
+ bsds->writeable_handler(bsds->writeable_private);
+ return;
+ }
+ if (flags & TEVENT_FD_READ) {
+ if (!bsds->readable_handler) {
+ TEVENT_FD_NOT_READABLE(bsds->fde);
+ return;
+ }
+ bsds->readable_handler(bsds->readable_private);
+ return;
+ }
+}
+
+static int tdgram_bsd_set_readable_handler(struct tdgram_bsd *bsds,
+ struct tevent_context *ev,
+ void (*handler)(void *private_data),
+ void *private_data)
+{
+ if (ev == NULL) {
+ if (handler) {
+ errno = EINVAL;
+ return -1;
+ }
+ if (!bsds->readable_handler) {
+ return 0;
+ }
+ bsds->readable_handler = NULL;
+ bsds->readable_private = NULL;
+
+ return 0;
+ }
+
+ /* read and write must use the same tevent_context */
+ if (bsds->event_ptr != ev) {
+ if (bsds->readable_handler || bsds->writeable_handler) {
+ errno = EINVAL;
+ return -1;
+ }
+ bsds->event_ptr = NULL;
+ TALLOC_FREE(bsds->fde);
+ }
+
+ if (bsds->fde == NULL) {
+ bsds->fde = tevent_add_fd(ev, bsds,
+ bsds->fd, TEVENT_FD_READ,
+ tdgram_bsd_fde_handler,
+ bsds);
+ if (!bsds->fde) {
+ return -1;
+ }
+
+ /* cache the event context we're running on */
+ bsds->event_ptr = ev;
+ } else if (!bsds->readable_handler) {
+ TEVENT_FD_READABLE(bsds->fde);
+ }
+
+ bsds->readable_handler = handler;
+ bsds->readable_private = private_data;
+
+ return 0;
+}
+
+static int tdgram_bsd_set_writeable_handler(struct tdgram_bsd *bsds,
+ struct tevent_context *ev,
+ void (*handler)(void *private_data),
+ void *private_data)
+{
+ if (ev == NULL) {
+ if (handler) {
+ errno = EINVAL;
+ return -1;
+ }
+ if (!bsds->writeable_handler) {
+ return 0;
+ }
+ bsds->writeable_handler = NULL;
+ bsds->writeable_private = NULL;
+ TEVENT_FD_NOT_WRITEABLE(bsds->fde);
+
+ return 0;
+ }
+
+ /* read and write must use the same tevent_context */
+ if (bsds->event_ptr != ev) {
+ if (bsds->readable_handler || bsds->writeable_handler) {
+ errno = EINVAL;
+ return -1;
+ }
+ bsds->event_ptr = NULL;
+ TALLOC_FREE(bsds->fde);
+ }
+
+ if (bsds->fde == NULL) {
+ bsds->fde = tevent_add_fd(ev, bsds,
+ bsds->fd, TEVENT_FD_WRITE,
+ tdgram_bsd_fde_handler,
+ bsds);
+ if (!bsds->fde) {
+ return -1;
+ }
+
+ /* cache the event context we're running on */
+ bsds->event_ptr = ev;
+ } else if (!bsds->writeable_handler) {
+ TEVENT_FD_WRITEABLE(bsds->fde);
+ }
+
+ bsds->writeable_handler = handler;
+ bsds->writeable_private = private_data;
+
+ return 0;
+}
+
+struct tdgram_bsd_recvfrom_state {
+ struct tdgram_context *dgram;
+
+ uint8_t *buf;
+ size_t len;
+ struct tsocket_address *src;
+};
+
+static int tdgram_bsd_recvfrom_destructor(struct tdgram_bsd_recvfrom_state *state)
+{
+ struct tdgram_bsd *bsds = tdgram_context_data(state->dgram,
+ struct tdgram_bsd);
+
+ bsds->read_req = NULL;
+ tdgram_bsd_set_readable_handler(bsds, NULL, NULL, NULL);
+
+ return 0;
+}
+
+static void tdgram_bsd_recvfrom_handler(void *private_data);
+
+static struct tevent_req *tdgram_bsd_recvfrom_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram)
+{
+ struct tevent_req *req;
+ struct tdgram_bsd_recvfrom_state *state;
+ struct tdgram_bsd *bsds = tdgram_context_data(dgram, struct tdgram_bsd);
+ int ret;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct tdgram_bsd_recvfrom_state);
+ if (!req) {
+ return NULL;
+ }
+
+ state->dgram = dgram;
+ state->buf = NULL;
+ state->len = 0;
+ state->src = NULL;
+
+ if (bsds->read_req) {
+ tevent_req_error(req, EBUSY);
+ goto post;
+ }
+ bsds->read_req = req;
+
+ talloc_set_destructor(state, tdgram_bsd_recvfrom_destructor);
+
+ if (bsds->fd == -1) {
+ tevent_req_error(req, ENOTCONN);
+ goto post;
+ }
+
+ /*
+ * this is a fast path, not waiting for the
+ * socket to become explicit readable gains
+ * about 10%-20% performance in benchmark tests.
+ */
+ tdgram_bsd_recvfrom_handler(req);
+ if (!tevent_req_is_in_progress(req)) {
+ goto post;
+ }
+
+ ret = tdgram_bsd_set_readable_handler(bsds, ev,
+ tdgram_bsd_recvfrom_handler,
+ req);
+ if (ret == -1) {
+ tevent_req_error(req, errno);
+ goto post;
+ }
+
+ return req;
+
+ post:
+ tevent_req_post(req, ev);
+ return req;
+}
+
+static void tdgram_bsd_recvfrom_handler(void *private_data)
+{
+ struct tevent_req *req = talloc_get_type_abort(private_data,
+ struct tevent_req);
+ struct tdgram_bsd_recvfrom_state *state = tevent_req_data(req,
+ struct tdgram_bsd_recvfrom_state);
+ struct tdgram_context *dgram = state->dgram;
+ struct tdgram_bsd *bsds = tdgram_context_data(dgram, struct tdgram_bsd);
+ struct tsocket_address_bsd *bsda;
+ ssize_t ret;
+ struct sockaddr *sa = NULL;
+ socklen_t sa_len = 0;
+ int err;
+ bool retry;
+
+ ret = tsocket_bsd_pending(bsds->fd);
+ if (ret == 0) {
+ /* retry later */
+ return;
+ }
+ err = tsocket_bsd_error_from_errno(ret, errno, &retry);
+ if (retry) {
+ /* retry later */
+ return;
+ }
+ if (tevent_req_error(req, err)) {
+ return;
+ }
+
+ state->buf = talloc_array(state, uint8_t, ret);
+ if (tevent_req_nomem(state->buf, req)) {
+ return;
+ }
+ state->len = ret;
+
+ state->src = tsocket_address_create(state,
+ &tsocket_address_bsd_ops,
+ &bsda,
+ struct tsocket_address_bsd,
+ __location__ "bsd_recvfrom");
+ if (tevent_req_nomem(state->src, req)) {
+ return;
+ }
+
+ ZERO_STRUCTP(bsda);
+
+ sa = &bsda->u.sa;
+ sa_len = sizeof(bsda->u.ss);
+
+ ret = recvfrom(bsds->fd, state->buf, state->len, 0, sa, &sa_len);
+ err = tsocket_error_from_errno(ret, errno, &retry);
+ if (retry) {
+ /* retry later */
+ return;
+ }
+ if (tevent_req_error(req, err)) {
+ return;
+ }
+
+ if (ret != state->len) {
+ tevent_req_error(req, EIO);
+ return;
+ }
+
+ tevent_req_done(req);
+}
+
+static ssize_t tdgram_bsd_recvfrom_recv(struct tevent_req *req,
+ int *perrno,
+ TALLOC_CTX *mem_ctx,
+ uint8_t **buf,
+ struct tsocket_address **src)
+{
+ struct tdgram_bsd_recvfrom_state *state = tevent_req_data(req,
+ struct tdgram_bsd_recvfrom_state);
+ ssize_t ret;
+
+ ret = tsocket_simple_int_recv(req, perrno);
+ if (ret == 0) {
+ *buf = talloc_move(mem_ctx, &state->buf);
+ ret = state->len;
+ if (src) {
+ *src = talloc_move(mem_ctx, &state->src);
+ }
+ }
+
+ tevent_req_received(req);
+ return ret;
+}
+
+struct tdgram_bsd_sendto_state {
+ struct tdgram_context *dgram;
+
+ const uint8_t *buf;
+ size_t len;
+ const struct tsocket_address *dst;
+
+ ssize_t ret;
+};
+
+static int tdgram_bsd_sendto_destructor(struct tdgram_bsd_sendto_state *state)
+{
+ struct tdgram_bsd *bsds = tdgram_context_data(state->dgram,
+ struct tdgram_bsd);
+
+ bsds->write_req = NULL;
+ tdgram_bsd_set_writeable_handler(bsds, NULL, NULL, NULL);
+ return 0;
+}
+
+static void tdgram_bsd_sendto_handler(void *private_data);
+
+static struct tevent_req *tdgram_bsd_sendto_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram,
+ const uint8_t *buf,
+ size_t len,
+ const struct tsocket_address *dst)
+{
+ struct tevent_req *req;
+ struct tdgram_bsd_sendto_state *state;
+ struct tdgram_bsd *bsds = tdgram_context_data(dgram, struct tdgram_bsd);
+ int ret;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct tdgram_bsd_sendto_state);
+ if (!req) {
+ return NULL;
+ }
+
+ state->dgram = dgram;
+ state->buf = buf;
+ state->len = len;
+ state->dst = dst;
+ state->ret = -1;
+
+ if (bsds->write_req) {
+ tevent_req_error(req, EBUSY);
+ goto post;
+ }
+ bsds->write_req = req;
+
+ talloc_set_destructor(state, tdgram_bsd_sendto_destructor);
+
+ if (bsds->fd == -1) {
+ tevent_req_error(req, ENOTCONN);
+ goto post;
+ }
+
+ /*
+ * this is a fast path, not waiting for the
+ * socket to become explicit writeable gains
+ * about 10%-20% performance in benchmark tests.
+ */
+ tdgram_bsd_sendto_handler(req);
+ if (!tevent_req_is_in_progress(req)) {
+ goto post;
+ }
+
+ ret = tdgram_bsd_set_writeable_handler(bsds, ev,
+ tdgram_bsd_sendto_handler,
+ req);
+ if (ret == -1) {
+ tevent_req_error(req, errno);
+ goto post;
+ }
+
+ return req;
+
+ post:
+ tevent_req_post(req, ev);
+ return req;
+}
+
+static void tdgram_bsd_sendto_handler(void *private_data)
+{
+ struct tevent_req *req = talloc_get_type_abort(private_data,
+ struct tevent_req);
+ struct tdgram_bsd_sendto_state *state = tevent_req_data(req,
+ struct tdgram_bsd_sendto_state);
+ struct tdgram_context *dgram = state->dgram;
+ struct tdgram_bsd *bsds = tdgram_context_data(dgram, struct tdgram_bsd);
+ struct sockaddr *sa = NULL;
+ socklen_t sa_len = 0;
+ ssize_t ret;
+ int err;
+ bool retry;
+
+ if (state->dst) {
+ struct tsocket_address_bsd *bsda =
+ talloc_get_type(state->dst->private_data,
+ struct tsocket_address_bsd);
+
+ sa = &bsda->u.sa;
+ sa_len = sizeof(bsda->u.ss);
+ }
+
+ ret = sendto(bsds->fd, state->buf, state->len, 0, sa, sa_len);
+ err = tsocket_error_from_errno(ret, errno, &retry);
+ if (retry) {
+ /* retry later */
+ return;
+ }
+ if (tevent_req_error(req, err)) {
+ return;
+ }
+
+ state->ret = ret;
+
+ tevent_req_done(req);
+}
+
+static ssize_t tdgram_bsd_sendto_recv(struct tevent_req *req, int *perrno)
+{
+ struct tdgram_bsd_sendto_state *state = tevent_req_data(req,
+ struct tdgram_bsd_sendto_state);
+ ssize_t ret;
+
+ ret = tsocket_simple_int_recv(req, perrno);
+ if (ret == 0) {
+ ret = state->ret;
+ }
+
+ tevent_req_received(req);
+ return ret;
+}
+
+struct tdgram_bsd_disconnect_state {
+ uint8_t __dummy;
+};
+
+static struct tevent_req *tdgram_bsd_disconnect_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram)
+{
+ struct tdgram_bsd *bsds = tdgram_context_data(dgram, struct tdgram_bsd);
+ struct tevent_req *req;
+ struct tdgram_bsd_disconnect_state *state;
+ int ret;
+ int err;
+ bool dummy;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct tdgram_bsd_disconnect_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ if (bsds->read_req || bsds->write_req) {
+ tevent_req_error(req, EBUSY);
+ goto post;
+ }
+
+ if (bsds->fd == -1) {
+ tevent_req_error(req, ENOTCONN);
+ goto post;
+ }
+
+ ret = close(bsds->fd);
+ bsds->fd = -1;
+ err = tsocket_error_from_errno(ret, errno, &dummy);
+ if (tevent_req_error(req, err)) {
+ goto post;
+ }
+
+ tevent_req_done(req);
+post:
+ tevent_req_post(req, ev);
+ return req;
+}
+
+static int tdgram_bsd_disconnect_recv(struct tevent_req *req,
+ int *perrno)
+{
+ int ret;
+
+ ret = tsocket_simple_int_recv(req, perrno);
+
+ tevent_req_received(req);
+ return ret;
+}
+
+static const struct tdgram_context_ops tdgram_bsd_ops = {
+ .name = "bsd",
+
+ .recvfrom_send = tdgram_bsd_recvfrom_send,
+ .recvfrom_recv = tdgram_bsd_recvfrom_recv,
+
+ .sendto_send = tdgram_bsd_sendto_send,
+ .sendto_recv = tdgram_bsd_sendto_recv,
+
+ .disconnect_send = tdgram_bsd_disconnect_send,
+ .disconnect_recv = tdgram_bsd_disconnect_recv,
+};
+
+static int tdgram_bsd_destructor(struct tdgram_bsd *bsds)
+{
+ TALLOC_FREE(bsds->fde);
+ if (bsds->fd != -1) {
+ close(bsds->fd);
+ bsds->fd = -1;
+ }
+ return 0;
+}
+
+static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
+ const struct tsocket_address *remote,
+ TALLOC_CTX *mem_ctx,
+ struct tdgram_context **_dgram,
+ const char *location)
+{
+ struct tsocket_address_bsd *lbsda =
+ talloc_get_type_abort(local->private_data,
+ struct tsocket_address_bsd);
+ struct tsocket_address_bsd *rbsda = NULL;
+ struct tdgram_context *dgram;
+ struct tdgram_bsd *bsds;
+ int fd;
+ int ret;
+ bool do_bind = false;
+ bool do_reuseaddr = false;
+
+ if (remote) {
+ rbsda = talloc_get_type_abort(remote->private_data,
+ struct tsocket_address_bsd);
+ }
+
+ switch (lbsda->u.sa.sa_family) {
+ case AF_UNIX:
+ if (lbsda->u.un.sun_path[0] != 0) {
+ do_reuseaddr = true;
+ do_bind = true;
+ }
+ break;
+ case AF_INET:
+ if (lbsda->u.in.sin_port != 0) {
+ do_reuseaddr = true;
+ do_bind = true;
+ }
+ if (lbsda->u.in.sin_addr.s_addr == INADDR_ANY) {
+ do_bind = true;
+ }
+ break;
+#ifdef HAVE_IPV6
+ case AF_INET6:
+ if (lbsda->u.in6.sin6_port != 0) {
+ do_reuseaddr = true;
+ do_bind = true;
+ }
+ if (memcmp(&in6addr_any,
+ &lbsda->u.in6.sin6_addr,
+ sizeof(in6addr_any)) != 0) {
+ do_bind = true;
+ }
+ break;
+#endif
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ fd = socket(lbsda->u.sa.sa_family, SOCK_DGRAM, 0);
+ if (fd < 0) {
+ return fd;
+ }
+
+ fd = tsocket_bsd_common_prepare_fd(fd, true);
+ if (fd < 0) {
+ return fd;
+ }
+
+ dgram = tdgram_context_create(mem_ctx,
+ &tdgram_bsd_ops,
+ &bsds,
+ struct tdgram_bsd,
+ location);
+ if (!dgram) {
+ int saved_errno = errno;
+ close(fd);
+ errno = saved_errno;
+ return -1;
+ }
+ ZERO_STRUCTP(bsds);
+ bsds->fd = fd;
+ talloc_set_destructor(bsds, tdgram_bsd_destructor);
+
+ if (lbsda->broadcast) {
+ int val = 1;
+
+ ret = setsockopt(fd, SOL_SOCKET, SO_BROADCAST,
+ (const void *)&val, sizeof(val));
+ if (ret == -1) {
+ int saved_errno = errno;
+ talloc_free(dgram);
+ errno = saved_errno;
+ return ret;
+ }
+ }
+
+ if (do_reuseaddr) {
+ int val = 1;
+
+ ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR,
+ (const void *)&val, sizeof(val));
+ if (ret == -1) {
+ int saved_errno = errno;
+ talloc_free(dgram);
+ errno = saved_errno;
+ return ret;
+ }
+ }
+
+ if (do_bind) {
+ ret = bind(fd, &lbsda->u.sa, sizeof(lbsda->u.ss));
+ if (ret == -1) {
+ int saved_errno = errno;
+ talloc_free(dgram);
+ errno = saved_errno;
+ return ret;
+ }
+ }
+
+ if (rbsda) {
+ ret = connect(fd, &rbsda->u.sa, sizeof(rbsda->u.ss));
+ if (ret == -1) {
+ int saved_errno = errno;
+ talloc_free(dgram);
+ errno = saved_errno;
+ return ret;
+ }
+ }
+
+ *_dgram = dgram;
+ return 0;
+}
+
+int _tdgram_inet_udp_socket(const struct tsocket_address *local,
+ const struct tsocket_address *remote,
+ TALLOC_CTX *mem_ctx,
+ struct tdgram_context **dgram,
+ const char *location)
+{
+ struct tsocket_address_bsd *lbsda =
+ talloc_get_type_abort(local->private_data,
+ struct tsocket_address_bsd);
+ int ret;
+
+ switch (lbsda->u.sa.sa_family) {
+ case AF_INET:
+ break;
+#ifdef HAVE_IPV6
+ case AF_INET6:
+ break;
+#endif
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ ret = tdgram_bsd_dgram_socket(local, remote, mem_ctx, dgram, location);
+
+ return ret;
+}
+
+int _tdgram_unix_dgram_socket(const struct tsocket_address *local,
+ const struct tsocket_address *remote,
+ TALLOC_CTX *mem_ctx,
+ struct tdgram_context **dgram,
+ const char *location)
+{
+ struct tsocket_address_bsd *lbsda =
+ talloc_get_type_abort(local->private_data,
+ struct tsocket_address_bsd);
+ int ret;
+
+ switch (lbsda->u.sa.sa_family) {
+ case AF_UNIX:
+ break;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ ret = tdgram_bsd_dgram_socket(local, remote, mem_ctx, dgram, location);
+
+ return ret;
+}
+
diff --git a/lib/tsocket/tsocket_internal.h b/lib/tsocket/tsocket_internal.h
index e4a4908f3e..893394405f 100644
--- a/lib/tsocket/tsocket_internal.h
+++ b/lib/tsocket/tsocket_internal.h
@@ -57,14 +57,6 @@ struct tsocket_context_ops {
int (*writev_data)(struct tsocket_context *sock,
const struct iovec *vector, size_t count);
- ssize_t (*recvfrom_data)(struct tsocket_context *sock,
- uint8_t *data, size_t len,
- TALLOC_CTX *addr_ctx,
- struct tsocket_address **remote_addr);
- ssize_t (*sendto_data)(struct tsocket_context *sock,
- const uint8_t *data, size_t len,
- const struct tsocket_address *remote_addr);
-
/* info */
int (*get_status)(const struct tsocket_context *sock);
int (*get_local_address)(const struct tsocket_context *sock,
@@ -149,6 +141,47 @@ struct tsocket_address *_tsocket_address_create(TALLOC_CTX *mem_ctx,
_tsocket_address_create(mem_ctx, ops, state, sizeof(type), \
#type, location)
+struct tdgram_context_ops {
+ const char *name;
+
+ struct tevent_req *(*recvfrom_send)(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram);
+ ssize_t (*recvfrom_recv)(struct tevent_req *req,
+ int *perrno,
+ TALLOC_CTX *mem_ctx,
+ uint8_t **buf,
+ struct tsocket_address **src);
+
+ struct tevent_req *(*sendto_send)(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram,
+ const uint8_t *buf, size_t len,
+ const struct tsocket_address *dst);
+ ssize_t (*sendto_recv)(struct tevent_req *req,
+ int *perrno);
+
+ struct tevent_req *(*disconnect_send)(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct tdgram_context *dgram);
+ int (*disconnect_recv)(struct tevent_req *req,
+ int *perrno);
+};
+
+struct tdgram_context *_tdgram_context_create(TALLOC_CTX *mem_ctx,
+ const struct tdgram_context_ops *ops,
+ void *pstate,
+ size_t psize,
+ const char *type,
+ const char *location);
+#define tdgram_context_create(mem_ctx, ops, state, type, location) \
+ _tdgram_context_create(mem_ctx, ops, state, sizeof(type), \
+ #type, location)
+
+void *_tdgram_context_data(struct tdgram_context *dgram);
+#define tdgram_context_data(_req, _type) \
+ talloc_get_type_abort(_tdgram_context_data(_req), _type)
+
int tsocket_error_from_errno(int ret, int sys_errno, bool *retry);
int tsocket_simple_int_recv(struct tevent_req *req, int *perrno);
int tsocket_common_prepare_fd(int fd, bool high_fd);
diff --git a/lib/tsocket/tsocket_recvfrom.c b/lib/tsocket/tsocket_recvfrom.c
deleted file mode 100644
index 467738cfc2..0000000000
--- a/lib/tsocket/tsocket_recvfrom.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- Copyright (C) Stefan Metzmacher 2009
-
- ** NOTE! The following LGPL license applies to the tevent
- ** library. This does NOT imply that all of Samba is released
- ** under the LGPL
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 3 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "replace.h"
-#include "system/network.h"
-#include "tsocket.h"
-#include "tsocket_internal.h"
-
-struct tsocket_recvfrom_state {
- /* this structs are owned by the caller */
- struct {
- struct tsocket_context *sock;
- } caller;
-
- uint8_t *buf;
- size_t len;
- struct tsocket_address *src;
-};
-
-static int tsocket_recvfrom_state_destructor(struct tsocket_recvfrom_state *state)
-{
- if (state->caller.sock) {
- tsocket_set_readable_handler(state->caller.sock, NULL, NULL);
- }
- ZERO_STRUCT(state->caller);
-
- return 0;
-}
-
-static void tsocket_recvfrom_handler(struct tsocket_context *sock,
- void *private_data);
-
-struct tevent_req *tsocket_recvfrom_send(struct tsocket_context *sock,
- TALLOC_CTX *mem_ctx)
-{
- struct tevent_req *req;
- struct tsocket_recvfrom_state *state;
- int ret;
- int err;
- bool dummy;
-
- req = tevent_req_create(mem_ctx, &state,
- struct tsocket_recvfrom_state);
- if (!req) {
- return NULL;
- }
-
- state->caller.sock = sock;
- state->buf = NULL;
- state->len = 0;
- state->src = NULL;
-
- talloc_set_destructor(state, tsocket_recvfrom_state_destructor);
-
- ret = tsocket_set_readable_handler(sock,
- tsocket_recvfrom_handler,
- req);
- err = tsocket_error_from_errno(ret, errno, &dummy);
- if (tevent_req_error(req, err)) {
- goto post;
- }
-
- return req;
-
- post:
- return tevent_req_post(req, sock->event.ctx);
-}
-
-static void tsocket_recvfrom_handler(struct tsocket_context *sock,
- void *private_data)
-{
- struct tevent_req *req = talloc_get_type(private_data,
- struct tevent_req);
- struct tsocket_recvfrom_state *state = tevent_req_data(req,
- struct tsocket_recvfrom_state);
- ssize_t ret;
- int err;
- bool retry;
-
- ret = tsocket_pending(state->caller.sock);
- if (ret == 0) {
- /* retry later */
- return;
- }
- err = tsocket_error_from_errno(ret, errno, &retry);
- if (retry) {
- /* retry later */
- return;
- }
- if (tevent_req_error(req, err)) {
- return;
- }
-
- state->buf = talloc_array(state, uint8_t, ret);
- if (tevent_req_nomem(state->buf, req)) {
- return;
- }
- state->len = ret;
-
- ret = tsocket_recvfrom(state->caller.sock,
- state->buf,
- state->len,
- state,
- &state->src);
- err = tsocket_error_from_errno(ret, errno, &retry);
- if (retry) {
- /* retry later */
- return;
- }
- if (tevent_req_error(req, err)) {
- return;
- }
-
- if (ret != state->len) {
- tevent_req_error(req, EIO);
- return;
- }
-
- tevent_req_done(req);
-}
-
-ssize_t tsocket_recvfrom_recv(struct tevent_req *req,
- int *perrno,
- TALLOC_CTX *mem_ctx,
- uint8_t **buf,
- struct tsocket_address **src)
-{
- struct tsocket_recvfrom_state *state = tevent_req_data(req,
- struct tsocket_recvfrom_state);
- ssize_t ret;
-
- ret = tsocket_simple_int_recv(req, perrno);
- if (ret == 0) {
- *buf = talloc_move(mem_ctx, &state->buf);
- ret = state->len;
- if (src) {
- *src = talloc_move(mem_ctx, &state->src);
- }
- }
-
- tevent_req_received(req);
- return ret;
-}
-
diff --git a/lib/tsocket/tsocket_sendto.c b/lib/tsocket/tsocket_sendto.c
deleted file mode 100644
index 9c0a76bf16..0000000000
--- a/lib/tsocket/tsocket_sendto.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- Copyright (C) Stefan Metzmacher 2009
-
- ** NOTE! The following LGPL license applies to the tevent
- ** library. This does NOT imply that all of Samba is released
- ** under the LGPL
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 3 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "replace.h"
-#include "system/network.h"
-#include "tsocket.h"
-#include "tsocket_internal.h"
-
-struct tsocket_sendto_state {
- /* this structs are owned by the caller */
- struct {
- struct tsocket_context *sock;
- const uint8_t *buf;
- size_t len;
- const struct tsocket_address *dst;
- } caller;
-
- ssize_t ret;
-};
-
-static int tsocket_sendto_state_destructor(struct tsocket_sendto_state *state)
-{
- if (state->caller.sock) {
- tsocket_set_writeable_handler(state->caller.sock, NULL, NULL);
- }
- ZERO_STRUCT(state->caller);
-
- return 0;
-}
-
-static void tsocket_sendto_handler(struct tsocket_context *sock,
- void *private_data);
-
-struct tevent_req *tsocket_sendto_send(struct tsocket_context *sock,
- TALLOC_CTX *mem_ctx,
- const uint8_t *buf,
- size_t len,
- const struct tsocket_address *dst)
-{
- struct tevent_req *req;
- struct tsocket_sendto_state *state;
- int ret;
- int err;
- bool dummy;
-
- req = tevent_req_create(mem_ctx, &state,
- struct tsocket_sendto_state);
- if (!req) {
- return NULL;
- }
-
- state->caller.sock = sock;
- state->caller.buf = buf;
- state->caller.len = len;
- state->caller.dst = dst;
- state->ret = -1;
-
- /*
- * this is a fast path, not waiting for the
- * socket to become explicit writeable gains
- * about 10%-20% performance in benchmark tests.
- */
- tsocket_sendto_handler(sock, req);
- if (!tevent_req_is_in_progress(req)) {
- goto post;
- }
-
- talloc_set_destructor(state, tsocket_sendto_state_destructor);
-
- ret = tsocket_set_writeable_handler(sock,
- tsocket_sendto_handler,
- req);
- err = tsocket_error_from_errno(ret, errno, &dummy);
- if (tevent_req_error(req, err)) {
- goto post;
- }
-
- return req;
-
- post:
- return tevent_req_post(req, sock->event.ctx);
-}
-
-static void tsocket_sendto_handler(struct tsocket_context *sock,
- void *private_data)
-{
- struct tevent_req *req = talloc_get_type(private_data,
- struct tevent_req);
- struct tsocket_sendto_state *state = tevent_req_data(req,
- struct tsocket_sendto_state);
- ssize_t ret;
- int err;
- bool retry;
-
- ret = tsocket_sendto(state->caller.sock,
- state->caller.buf,
- state->caller.len,
- state->caller.dst);
- err = tsocket_error_from_errno(ret, errno, &retry);
- if (retry) {
- /* retry later */
- return;
- }
- if (tevent_req_error(req, err)) {
- return;
- }
-
- state->ret = ret;
-
- tevent_req_done(req);
-}
-
-ssize_t tsocket_sendto_recv(struct tevent_req *req, int *perrno)
-{
- struct tsocket_sendto_state *state = tevent_req_data(req,
- struct tsocket_sendto_state);
- ssize_t ret;
-
- ret = tsocket_simple_int_recv(req, perrno);
- if (ret == 0) {
- ret = state->ret;
- }
-
- tevent_req_received(req);
- return ret;
-}
-
-struct tsocket_sendto_queue_state {
- /* this structs are owned by the caller */
- struct {
- struct tsocket_context *sock;
- const uint8_t *buf;
- size_t len;
- const struct tsocket_address *dst;
- } caller;
- ssize_t ret;
-};
-
-static void tsocket_sendto_queue_trigger(struct tevent_req *req,
- void *private_data);
-static void tsocket_sendto_queue_done(struct tevent_req *subreq);
-
-/**
- * @brief Queue a dgram blob for sending through the socket
- * @param[in] mem_ctx The memory context for the result
- * @param[in] sock The socket to send the message buffer
- * @param[in] queue The existing dgram queue
- * @param[in] buf The message buffer
- * @param[in] len The message length
- * @param[in] dst The destination socket address
- * @retval The async request handle
- *
- * This function queues a blob for sending to destination through an existing
- * dgram socket. The async callback is triggered when the whole blob is
- * delivered to the underlying system socket.
- *
- * The caller needs to make sure that all non-scalar input parameters hang
- * arround for the whole lifetime of the request.
- */
-struct tevent_req *tsocket_sendto_queue_send(TALLOC_CTX *mem_ctx,
- struct tsocket_context *sock,
- struct tevent_queue *queue,
- const uint8_t *buf,
- size_t len,
- struct tsocket_address *dst)
-{
- struct tevent_req *req;
- struct tsocket_sendto_queue_state *state;
- bool ok;
-
- req = tevent_req_create(mem_ctx, &state,
- struct tsocket_sendto_queue_state);
- if (!req) {
- return NULL;
- }
-
- state->caller.sock = sock;
- state->caller.buf = buf;
- state->caller.len = len;
- state->caller.dst = dst;
- state->ret = -1;
-
- ok = tevent_queue_add(queue,
- sock->event.ctx,
- req,
- tsocket_sendto_queue_trigger,
- NULL);
- if (!ok) {
- tevent_req_nomem(NULL, req);
- goto post;
- }
-
- return req;
-
- post:
- return tevent_req_post(req, sock->event.ctx);
-}
-
-static void tsocket_sendto_queue_trigger(struct tevent_req *req,
- void *private_data)
-{
- struct tsocket_sendto_queue_state *state = tevent_req_data(req,
- struct tsocket_sendto_queue_state);
- struct tevent_req *subreq;
-
- subreq = tsocket_sendto_send(state->caller.sock,
- state,
- state->caller.buf,
- state->caller.len,
- state->caller.dst);
- if (tevent_req_nomem(subreq, req)) {
- return;
- }
- tevent_req_set_callback(subreq, tsocket_sendto_queue_done ,req);
-}
-
-static void tsocket_sendto_queue_done(struct tevent_req *subreq)
-{
- struct tevent_req *req = tevent_req_callback_data(subreq,
- struct tevent_req);
- struct tsocket_sendto_queue_state *state = tevent_req_data(req,
- struct tsocket_sendto_queue_state);
- ssize_t ret;
- int sys_errno;
-
- ret = tsocket_sendto_recv(subreq, &sys_errno);
- talloc_free(subreq);
- if (ret == -1) {
- tevent_req_error(req, sys_errno);
- return;
- }
- state->ret = ret;
-
- tevent_req_done(req);
-}
-
-ssize_t tsocket_sendto_queue_recv(struct tevent_req *req, int *perrno)
-{
- struct tsocket_sendto_queue_state *state = tevent_req_data(req,
- struct tsocket_sendto_queue_state);
- ssize_t ret;
-
- ret = tsocket_simple_int_recv(req, perrno);
- if (ret == 0) {
- ret = state->ret;
- }
-
- tevent_req_received(req);
- return ret;
-}
-
diff --git a/lib/util/smb_threads.c b/lib/util/smb_threads.c
new file mode 100644
index 0000000000..84dec4d874
--- /dev/null
+++ b/lib/util/smb_threads.c
@@ -0,0 +1,105 @@
+/*
+ Unix SMB/CIFS implementation.
+ SMB client library implementation (thread interface functions).
+ Copyright (C) Jeremy Allison, 2009.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+ * This code is based in the ideas in openssl
+ * but somewhat simpler and expended to include
+ * thread local storage.
+ */
+
+#include "includes.h"
+
+#define NUM_GLOBAL_LOCKS 1
+
+/*********************************************************
+ Functions to vector the locking primitives used internally
+ by libsmbclient.
+*********************************************************/
+
+const struct smb_thread_functions *global_tfp;
+
+/*********************************************************
+ Dynamic lock array.
+*********************************************************/
+
+void **global_lock_array;
+
+/*********************************************************
+ Function to set the locking primitives used by libsmbclient.
+*********************************************************/
+
+int smb_thread_set_functions(const struct smb_thread_functions *tf)
+{
+ int i;
+
+ global_tfp = tf;
+
+ /* Here we initialize any static locks we're using. */
+ global_lock_array = (void **)SMB_MALLOC_ARRAY(void *, NUM_GLOBAL_LOCKS);
+ if (global_lock_array == NULL) {
+ return ENOMEM;
+ }
+
+ for (i = 0; i < NUM_GLOBAL_LOCKS; i++) {
+ char *name = NULL;
+ if (asprintf(&name, "global_lock_%d", i) == -1) {
+ SAFE_FREE(global_lock_array);
+ return ENOMEM;
+ }
+ global_tfp->create_mutex(name,
+ &global_lock_array[i],
+ __location__);
+ SAFE_FREE(name);
+ }
+
+ return 0;
+}
+
+#if 0
+/* Test. - pthread implementations. */
+#include <pthread.h>
+
+#ifdef malloc
+#undef malloc
+#endif
+
+SMB_THREADS_DEF_PTHREAD_IMPLEMENTATION(tf);
+
+/* Test function. */
+int test_threads(void)
+{
+ int ret;
+ void *plock = NULL;
+
+ smb_thread_set_functions(&tf);
+
+ if ((ret = SMB_THREAD_CREATE_MUTEX("test", plock)) != 0) {
+ printf("Create lock error: %d\n", ret);
+ }
+ if ((ret = SMB_THREAD_LOCK(plock, SMB_THREAD_LOCK)) != 0) {
+ printf("lock error: %d\n", ret);
+ }
+ if ((SMB_THREAD_LOCK(plock, SMB_THREAD_UNLOCK)) != 0) {
+ printf("unlock error: %d\n", ret);
+ }
+ SMB_THREAD_DESTROY_MUTEX(plock);
+
+ return 0;
+}
+#endif
diff --git a/lib/util/smb_threads.h b/lib/util/smb_threads.h
new file mode 100644
index 0000000000..2ca163be9a
--- /dev/null
+++ b/lib/util/smb_threads.h
@@ -0,0 +1,120 @@
+/*
+ Unix SMB/CIFS implementation.
+ SMB thread interface functions.
+ Copyright (C) Jeremy Allison, 2009.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _smb_threads_h_
+#define _smb_threads_h_
+
+enum smb_thread_lock_type {
+ SMB_THREAD_LOCK = 1,
+ SMB_THREAD_UNLOCK
+};
+
+struct smb_thread_functions {
+ /* Mutex and tls functions. */
+ int (*create_mutex)(const char *lockname,
+ void **pplock,
+ const char *location);
+ void (*destroy_mutex)(void *plock,
+ const char *location);
+ int (*lock_mutex)(void *plock, enum smb_thread_lock_type lock_type,
+ const char *location);
+
+ /* Thread local storage. */
+ int (*create_tls)(const char *keyname,
+ void **ppkey,
+ const char *location);
+ void (*destroy_tls)(void *pkey,
+ const char *location);
+ int (*set_tls)(void *pkey, const void *pval, const char *location);
+ void *(*get_tls)(void *pkey, const char *location);
+};
+
+extern const struct smb_thread_functions *global_tfp;
+
+/* Define the pthread version of the functions. */
+
+#define SMB_THREADS_DEF_PTHREAD_IMPLEMENTATION(tf) \
+ \
+static int smb_create_mutex_pthread(const char *lockname, void **pplock, const char *location) \
+{ \
+ pthread_mutex_t *pmut = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t)); \
+ if (!pmut) { \
+ return ENOMEM; \
+ } \
+ pthread_mutex_init(pmut, NULL); \
+ *pplock = (void *)pmut; \
+ return 0; \
+} \
+ \
+static void smb_destroy_mutex_pthread(void *plock, const char *location) \
+{ \
+ pthread_mutex_destroy((pthread_mutex_t *)plock); \
+ free(plock); \
+} \
+ \
+static int smb_lock_pthread(void *plock, enum smb_thread_lock_type lock_type, const char *location) \
+{ \
+ if (lock_type == SMB_THREAD_UNLOCK) { \
+ return pthread_mutex_unlock((pthread_mutex_t *)plock); \
+ } else { \
+ return pthread_mutex_lock((pthread_mutex_t *)plock); \
+ } \
+} \
+ \
+static int smb_create_tls_pthread(const char *keyname, void **ppkey, const char *location) \
+{ \
+ int ret; \
+ pthread_key_t *pkey = (pthread_key_t *)malloc(sizeof(pthread_key_t)); \
+ if (!pkey) { \
+ return ENOMEM; \
+ } \
+ ret = pthread_key_create(pkey, NULL); \
+ if (ret) { \
+ return ret; \
+ } \
+ *ppkey = (void *)pkey; \
+ return 0; \
+} \
+ \
+static void smb_destroy_tls_pthread(void *pkey, const char *location) \
+{ \
+ pthread_key_delete(*(pthread_key_t *)pkey); \
+ free(pkey); \
+} \
+ \
+static int smb_set_tls_pthread(void *pkey, const void *pval, const char *location) \
+{ \
+ return pthread_setspecific(*(pthread_key_t *)pkey, pval); \
+} \
+ \
+static void *smb_get_tls_pthread(void *pkey, const char *location) \
+{ \
+ return pthread_getspecific(*(pthread_key_t *)pkey); \
+} \
+ \
+static const struct smb_thread_functions (tf) = { \
+ smb_create_mutex_pthread, \
+ smb_destroy_mutex_pthread, \
+ smb_lock_pthread, \
+ smb_create_tls_pthread, \
+ smb_destroy_tls_pthread, \
+ smb_set_tls_pthread, \
+ smb_get_tls_pthread }
+
+#endif
diff --git a/lib/util/smb_threads_internal.h b/lib/util/smb_threads_internal.h
new file mode 100644
index 0000000000..3208bc27e1
--- /dev/null
+++ b/lib/util/smb_threads_internal.h
@@ -0,0 +1,52 @@
+/*
+ SMB/CIFS implementation.
+ SMB thread interface internal macros.
+ Copyright (C) Jeremy Allison, 2009.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _smb_threads_internal_h_
+#define _smb_threads_internal_h_
+
+#define SMB_THREAD_CREATE_MUTEX(name, lockvar) \
+ (global_tfp ? global_tfp->create_mutex((name), &(lockvar), __location__) : 0)
+
+#define SMB_THREAD_DESTROY_MUTEX(plock) \
+ do { \
+ if (global_tfp) { \
+ global_tfp->destroy_mutex(plock, __location__); \
+ }; \
+ } while (0)
+
+#define SMB_THREAD_LOCK(plock, type) \
+ (global_tfp ? global_tfp->lock_mutex((plock), (type), __location__) : 0)
+
+#define SMB_THREAD_CREATE_TLS(keyname, key) \
+ (global_tfp ? global_tfp->create_tls((keyname), &(key), __location__) : 0)
+
+#define SMB_THREAD_DESTROY_TLS(key) \
+ do { \
+ if (global_tfp) { \
+ global_tfp->destroy_tls(key); \
+ }; \
+ } while (0)
+
+#define SMB_THREAD_SET_TLS(key, val) \
+ (global_tfp ? global_tfp->set_tls((key),(val),__location__) : 0)
+
+#define SMB_THREAD_GET_TLS(key) \
+ (global_tfp ? global_tfp->get_tls((key), __location__) : NULL)
+
+#endif
diff --git a/lib/util/util.h b/lib/util/util.h
index defef127d9..81c7edfbdf 100644
--- a/lib/util/util.h
+++ b/lib/util/util.h
@@ -422,7 +422,7 @@ _PUBLIC_ char *str_list_join_shell(TALLOC_CTX *mem_ctx, const char **list, char
/**
return the number of elements in a string list
*/
-_PUBLIC_ size_t str_list_length(const char * const *list);
+_PUBLIC_ size_t str_list_length(const char **list);
/**
copy a string list
@@ -437,7 +437,7 @@ _PUBLIC_ bool str_list_equal(const char **list1, const char **list2);
/**
add an entry to a string list
*/
-_PUBLIC_ const char **str_list_add(const char **list, const char *s);
+_PUBLIC_ char **str_list_add(char **list, const char *s);
/**
remove an entry from a string list
@@ -453,6 +453,40 @@ _PUBLIC_ bool str_list_check(const char **list, const char *s);
return true if a string is in a list, case insensitively
*/
_PUBLIC_ bool str_list_check_ci(const char **list, const char *s);
+/**
+ append one list to another - expanding list1
+*/
+_PUBLIC_ char **str_list_append(char **list1, const char **list2);
+
+/**
+ remove duplicate elements from a list
+*/
+_PUBLIC_ char **str_list_unique(char **list);
+
+/*
+ very useful when debugging complex list related code
+ */
+_PUBLIC_ void str_list_show(const char **list);
+
+
+/**
+ append one list to another - expanding list1
+ this assumes the elements of list2 are const pointers, so we can re-use them
+*/
+_PUBLIC_ char **str_list_append_const(char **list1, const char **list2);
+
+/**
+ add an entry to a string list
+ this assumes s will not change
+*/
+_PUBLIC_ char **str_list_add_const(char **list, const char *s);
+
+/**
+ copy a string list
+ this assumes list will not change
+*/
+_PUBLIC_ char **str_list_copy_const(TALLOC_CTX *mem_ctx, const char **list);
+
/* The following definitions come from lib/util/util_file.c */
diff --git a/lib/util/util_strlist.c b/lib/util/util_strlist.c
index b069a11e38..bd7bd00888 100644
--- a/lib/util/util_strlist.c
+++ b/lib/util/util_strlist.c
@@ -187,7 +187,7 @@ _PUBLIC_ char *str_list_join_shell(TALLOC_CTX *mem_ctx, const char **list, char
/**
return the number of elements in a string list
*/
-_PUBLIC_ size_t str_list_length(const char * const*list)
+_PUBLIC_ size_t str_list_length(const char **list)
{
size_t ret;
for (ret=0;list && list[ret];ret++) /* noop */ ;
@@ -247,12 +247,12 @@ _PUBLIC_ bool str_list_equal(const char **list1, const char **list2)
/**
add an entry to a string list
*/
-_PUBLIC_ const char **str_list_add(const char **list, const char *s)
+_PUBLIC_ char **str_list_add(char **list, const char *s)
{
size_t len = str_list_length(list);
- const char **ret;
+ char **ret;
- ret = talloc_realloc(NULL, list, const char *, len+2);
+ ret = talloc_realloc(NULL, list, char *, len+2);
if (ret == NULL) return NULL;
ret[len] = talloc_strdup(ret, s);
@@ -308,3 +308,136 @@ _PUBLIC_ bool str_list_check_ci(const char **list, const char *s)
}
+/**
+ append one list to another - expanding list1
+*/
+_PUBLIC_ char **str_list_append(char **list1, const char **list2)
+{
+ size_t len1 = str_list_length(list1);
+ size_t len2 = str_list_length(list2);
+ char **ret;
+ int i;
+
+ ret = talloc_realloc(NULL, list1, char *, len1+len2+1);
+ if (ret == NULL) return NULL;
+
+ for (i=len1;i<len1+len2;i++) {
+ ret[i] = talloc_strdup(ret, list2[i-len1]);
+ if (ret[i] == NULL) {
+ return NULL;
+ }
+ }
+ ret[i] = NULL;
+
+ return ret;
+}
+
+static int list_cmp(const char **el1, const char **el2)
+{
+ return strcmp(*el1, *el2);
+}
+
+/*
+ return a list that only contains the unique elements of a list,
+ removing any duplicates
+ */
+_PUBLIC_ char **str_list_unique(char **list)
+{
+ size_t len = str_list_length(list);
+ char **list2;
+ int i, j;
+ if (len < 2) {
+ return list;
+ }
+ list2 = (char **)talloc_memdup(list, list, sizeof(list[0])*(len+1));
+ qsort(list2, len, sizeof(list2[0]), QSORT_CAST list_cmp);
+ list[0] = list2[0];
+ for (i=j=1;i<len;i++) {
+ if (strcmp(list2[i], list[j-1]) != 0) {
+ list[j] = list2[i];
+ j++;
+ }
+ }
+ list[j] = NULL;
+ list = talloc_realloc(NULL, list, char *, j);
+ talloc_free(list2);
+ return list;
+}
+
+/*
+ very useful when debugging complex list related code
+ */
+_PUBLIC_ void str_list_show(const char **list)
+{
+ int i;
+ DEBUG(0,("{ "));
+ for (i=0;list && list[i];i++) {
+ DEBUG(0,("\"%s\", ", list[i]));
+ }
+ DEBUG(0,("}\n"));
+}
+
+
+
+/**
+ append one list to another - expanding list1
+ this assumes the elements of list2 are const pointers, so we can re-use them
+*/
+_PUBLIC_ char **str_list_append_const(char **list1, const char **list2)
+{
+ size_t len1 = str_list_length(list1);
+ size_t len2 = str_list_length(list2);
+ char **ret;
+ int i;
+
+ ret = talloc_realloc(NULL, list1, char *, len1+len2+1);
+ if (ret == NULL) return NULL;
+
+ for (i=len1;i<len1+len2;i++) {
+ ret[i] = list2[i-len1];
+ }
+ ret[i] = NULL;
+
+ return ret;
+}
+
+/**
+ add an entry to a string list
+ this assumes s will not change
+*/
+_PUBLIC_ char **str_list_add_const(char **list, const char *s)
+{
+ size_t len = str_list_length(list);
+ char **ret;
+
+ ret = talloc_realloc(NULL, list, char *, len+2);
+ if (ret == NULL) return NULL;
+
+ ret[len] = s;
+ ret[len+1] = NULL;
+
+ return ret;
+}
+
+/**
+ copy a string list
+ this assumes list will not change
+*/
+_PUBLIC_ char **str_list_copy_const(TALLOC_CTX *mem_ctx, const char **list)
+{
+ int i;
+ char **ret;
+
+ if (list == NULL)
+ return NULL;
+
+ ret = talloc_array(mem_ctx, char *, str_list_length(list)+1);
+ if (ret == NULL)
+ return NULL;
+
+ for (i=0;list && list[i];i++) {
+ ret[i] = list[i];
+ }
+ ret[i] = NULL;
+ return ret;
+}
diff --git a/libcli/cldap/cldap.c b/libcli/cldap/cldap.c
index d3fb0bb1e9..8a0c2eec5e 100644
--- a/libcli/cldap/cldap.c
+++ b/libcli/cldap/cldap.c
@@ -51,7 +51,7 @@
*/
struct cldap_socket {
/* the low level socket */
- struct tsocket_context *sock;
+ struct tdgram_context *sock;
/*
* Are we in connected mode, which means
@@ -120,8 +120,6 @@ struct cldap_search_state {
static int cldap_socket_destructor(struct cldap_socket *c)
{
- tsocket_disconnect(c->sock);
-
while (c->searches.list) {
struct cldap_search_state *s = c->searches.list;
DLIST_REMOVE(c->searches.list, s);
@@ -146,7 +144,7 @@ static bool cldap_recvfrom_setup(struct cldap_socket *c)
return true;
}
- c->recv_subreq = tsocket_recvfrom_send(c->sock, c);
+ c->recv_subreq = tdgram_recvfrom_send(c, c->event.ctx, c->sock);
if (!c->recv_subreq) {
return false;
}
@@ -186,11 +184,11 @@ static void cldap_recvfrom_done(struct tevent_req *subreq)
goto nomem;
}
- ret = tsocket_recvfrom_recv(subreq,
- &in->recv_errno,
- in,
- &in->buf,
- &in->src);
+ ret = tdgram_recvfrom_recv(subreq,
+ &in->recv_errno,
+ in,
+ &in->buf,
+ &in->src);
talloc_free(subreq);
subreq = NULL;
if (ret >= 0) {
@@ -337,23 +335,15 @@ NTSTATUS cldap_socket_init(TALLOC_CTX *mem_ctx,
goto nomem;
}
- ret = tsocket_address_create_socket(local_addr,
- TSOCKET_TYPE_DGRAM,
- c, &c->sock);
+ ret = tdgram_inet_udp_socket(local_addr, remote_addr,
+ c, &c->sock);
if (ret != 0) {
status = map_nt_error_from_unix(errno);
goto nterror;
}
talloc_free(any);
- tsocket_set_event_context(c->sock, c->event.ctx);
-
if (remote_addr) {
- ret = tsocket_connect(c->sock, remote_addr);
- if (ret != 0) {
- status = map_nt_error_from_unix(errno);
- goto nterror;
- }
c->connected = true;
}
@@ -408,7 +398,7 @@ struct cldap_reply_state {
DATA_BLOB blob;
};
-static void cldap_reply_state_destroy(struct tevent_req *req);
+static void cldap_reply_state_destroy(struct tevent_req *subreq);
/*
queue a cldap reply for send
@@ -419,7 +409,7 @@ NTSTATUS cldap_reply_send(struct cldap_socket *cldap, struct cldap_reply *io)
struct ldap_message *msg;
DATA_BLOB blob1, blob2;
NTSTATUS status;
- struct tevent_req *req;
+ struct tevent_req *subreq;
if (cldap->connected) {
return NT_STATUS_PIPE_CONNECTED;
@@ -476,17 +466,18 @@ NTSTATUS cldap_reply_send(struct cldap_socket *cldap, struct cldap_reply *io)
data_blob_free(&blob1);
data_blob_free(&blob2);
- req = tsocket_sendto_queue_send(state,
- cldap->sock,
- cldap->send_queue,
- state->blob.data,
- state->blob.length,
- state->dest);
- if (!req) {
+ subreq = tdgram_sendto_queue_send(state,
+ cldap->event.ctx,
+ cldap->sock,
+ cldap->send_queue,
+ state->blob.data,
+ state->blob.length,
+ state->dest);
+ if (!subreq) {
goto nomem;
}
/* the callback will just free the state, as we don't need a result */
- tevent_req_set_callback(req, cldap_reply_state_destroy, state);
+ tevent_req_set_callback(subreq, cldap_reply_state_destroy, state);
return NT_STATUS_OK;
@@ -497,13 +488,13 @@ failed:
return status;
}
-static void cldap_reply_state_destroy(struct tevent_req *req)
+static void cldap_reply_state_destroy(struct tevent_req *subreq)
{
- struct cldap_reply_state *state = tevent_req_callback_data(req,
+ struct cldap_reply_state *state = tevent_req_callback_data(subreq,
struct cldap_reply_state);
/* we don't want to know the result here, we just free the state */
- talloc_free(req);
+ talloc_free(subreq);
talloc_free(state);
}
@@ -630,12 +621,13 @@ struct tevent_req *cldap_search_send(TALLOC_CTX *mem_ctx,
goto post;
}
- subreq = tsocket_sendto_queue_send(state,
- state->caller.cldap->sock,
- state->caller.cldap->send_queue,
- state->request.blob.data,
- state->request.blob.length,
- state->request.dest);
+ subreq = tdgram_sendto_queue_send(state,
+ state->caller.cldap->event.ctx,
+ state->caller.cldap->sock,
+ state->caller.cldap->send_queue,
+ state->request.blob.data,
+ state->request.blob.length,
+ state->request.dest);
if (tevent_req_nomem(subreq, req)) {
goto post;
}
@@ -659,7 +651,7 @@ static void cldap_search_state_queue_done(struct tevent_req *subreq)
int sys_errno = 0;
struct timeval next;
- ret = tsocket_sendto_queue_recv(subreq, &sys_errno);
+ ret = tdgram_sendto_queue_recv(subreq, &sys_errno);
talloc_free(subreq);
if (ret == -1) {
NTSTATUS status;
@@ -708,12 +700,13 @@ static void cldap_search_state_wakeup_done(struct tevent_req *subreq)
return;
}
- subreq = tsocket_sendto_queue_send(state,
- state->caller.cldap->sock,
- state->caller.cldap->send_queue,
- state->request.blob.data,
- state->request.blob.length,
- state->request.dest);
+ subreq = tdgram_sendto_queue_send(state,
+ state->caller.cldap->event.ctx,
+ state->caller.cldap->sock,
+ state->caller.cldap->send_queue,
+ state->request.blob.data,
+ state->request.blob.length,
+ state->request.dest);
if (tevent_req_nomem(subreq, req)) {
return;
}
diff --git a/libcli/util/doserr.c b/libcli/util/doserr.c
index 1a7422e3f6..1151d3236b 100644
--- a/libcli/util/doserr.c
+++ b/libcli/util/doserr.c
@@ -168,7 +168,10 @@ static const struct werror_code_struct dos_errs[] =
{ "WERR_REG_FILE_INVALID", WERR_REG_FILE_INVALID },
{ "WERR_NO_SUCH_SERVICE", WERR_NO_SUCH_SERVICE },
{ "WERR_SERVICE_DISABLED", WERR_SERVICE_DISABLED },
+ { "WERR_SERVICE_MARKED_FOR_DELETE", WERR_SERVICE_MARKED_FOR_DELETE },
+ { "WERR_SERVICE_EXISTS", WERR_SERVICE_EXISTS },
{ "WERR_SERVICE_NEVER_STARTED", WERR_SERVICE_NEVER_STARTED },
+ { "WERR_DUPLICATE_SERVICE_NAME", WERR_DUPLICATE_SERVICE_NAME },
{ "WERR_PASSWORD_MUST_CHANGE", WERR_PASSWORD_MUST_CHANGE },
{ "WERR_ACCOUNT_LOCKED_OUT", WERR_ACCOUNT_LOCKED_OUT },
{ "WERR_UNKNOWN_PRINT_MONITOR", WERR_UNKNOWN_PRINT_MONITOR },
diff --git a/libcli/util/ntstatus.h b/libcli/util/ntstatus.h
index 1608e2874f..a97ef5337e 100644
--- a/libcli/util/ntstatus.h
+++ b/libcli/util/ntstatus.h
@@ -60,8 +60,8 @@ typedef uint32_t NTSTATUS;
#define ERROR_INSUFFICIENT_BUFFER NT_STATUS(0x007a)
#define ERROR_INVALID_DATATYPE NT_STATUS(0x070c)
-/* XXX Win7 Status code: Name unknown. */
-#define NT_STATUS_WIN7_INVALID_RANGE NT_STATUS(0xC0000000 | 0x01a1)
+/* Win7 status codes. */
+#define NT_STATUS_INVALID_LOCK_RANGE NT_STATUS(0xC0000000 | 0x01a1)
/* Win32 Error codes extracted using a loop in smbclient then printing a
netmon sniff to a file. */
diff --git a/libcli/util/werror.h b/libcli/util/werror.h
index a69587f361..2e6b696d3f 100644
--- a/libcli/util/werror.h
+++ b/libcli/util/werror.h
@@ -113,7 +113,10 @@ typedef uint32_t WERROR;
#define WERR_INVALID_SERVICE_CONTROL W_ERROR(1052)
#define WERR_SERVICE_ALREADY_RUNNING W_ERROR(1056)
#define WERR_SERVICE_DISABLED W_ERROR(1058)
+#define WERR_SERVICE_MARKED_FOR_DELETE W_ERROR(1072)
+#define WERR_SERVICE_EXISTS W_ERROR(1073)
#define WERR_SERVICE_NEVER_STARTED W_ERROR(1077)
+#define WERR_DUPLICATE_SERVICE_NAME W_ERROR(1078)
#define WERR_DEVICE_NOT_CONNECTED W_ERROR(1167)
#define WERR_NOT_FOUND W_ERROR(1168)
#define WERR_INVALID_COMPUTERNAME W_ERROR(1210)
@@ -195,6 +198,7 @@ typedef uint32_t WERROR;
/* Configuration Manager Errors */
/* Basically Win32 errors meanings are specific to the \ntsvcs pipe */
+#define WERR_CM_INVALID_POINTER W_ERROR(3)
#define WERR_CM_BUFFER_SMALL W_ERROR(26)
#define WERR_CM_NO_MORE_HW_PROFILES W_ERROR(35)
#define WERR_CM_NO_SUCH_VALUE W_ERROR(37)
diff --git a/librpc/gen_ndr/cli_svcctl.c b/librpc/gen_ndr/cli_svcctl.c
index 4c013f52b3..f6cedfbc7c 100644
--- a/librpc/gen_ndr/cli_svcctl.c
+++ b/librpc/gen_ndr/cli_svcctl.c
@@ -189,8 +189,8 @@ NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t security_flags /* [in] */,
- uint8_t *buffer /* [out] [ref,size_is(buffer_size)] */,
- uint32_t buffer_size /* [in] [range(0,0x40000)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,0x40000)] */,
uint32_t *needed /* [out] [ref,range(0,0x40000)] */,
WERROR *werror)
{
@@ -200,7 +200,7 @@ NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
r.in.security_flags = security_flags;
- r.in.buffer_size = buffer_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceObjectSecurity, &r);
@@ -225,7 +225,7 @@ NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(buffer, r.out.buffer, r.in.buffer_size * sizeof(*buffer));
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
*needed = *r.out.needed;
/* Return result */
@@ -240,8 +240,8 @@ NTSTATUS rpccli_svcctl_SetServiceObjectSecurity(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t security_flags /* [in] */,
- uint8_t *buffer /* [in] [ref,size_is(buffer_size)] */,
- uint32_t buffer_size /* [in] */,
+ uint8_t *buffer /* [in] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] */,
WERROR *werror)
{
struct svcctl_SetServiceObjectSecurity r;
@@ -251,7 +251,7 @@ NTSTATUS rpccli_svcctl_SetServiceObjectSecurity(struct rpc_pipe_client *cli,
r.in.handle = handle;
r.in.security_flags = security_flags;
r.in.buffer = buffer;
- r.in.buffer_size = buffer_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_SetServiceObjectSecurity, &r);
@@ -647,10 +647,10 @@ NTSTATUS rpccli_svcctl_CreateServiceW(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_EnumDependentServicesW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *service /* [in] [ref] */,
- uint32_t state /* [in] */,
- uint8_t *service_status /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,0x40000)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,0x40000)] */,
+ enum svcctl_ServiceState state /* [in] */,
+ uint8_t *service_status /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,0x40000)] */,
+ uint32_t *needed /* [out] [ref,range(0,0x40000)] */,
uint32_t *services_returned /* [out] [ref,range(0,0x40000)] */,
WERROR *werror)
{
@@ -660,7 +660,7 @@ NTSTATUS rpccli_svcctl_EnumDependentServicesW(struct rpc_pipe_client *cli,
/* In parameters */
r.in.service = service;
r.in.state = state;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_EnumDependentServicesW, &r);
@@ -685,8 +685,8 @@ NTSTATUS rpccli_svcctl_EnumDependentServicesW(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(service_status, r.out.service_status, r.in.buf_size * sizeof(*service_status));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(service_status, r.out.service_status, r.in.offered * sizeof(*service_status));
+ *needed = *r.out.needed;
*services_returned = *r.out.services_returned;
/* Return result */
@@ -702,9 +702,9 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusW(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
enum svcctl_ServiceState state /* [in] */,
- uint8_t *service /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,0x40000)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,0x40000)] */,
+ uint8_t *service /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,0x40000)] */,
+ uint32_t *needed /* [out] [ref,range(0,0x40000)] */,
uint32_t *services_returned /* [out] [ref,range(0,0x40000)] */,
uint32_t *resume_handle /* [in,out] [unique] */,
WERROR *werror)
@@ -716,7 +716,7 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusW(struct rpc_pipe_client *cli,
r.in.handle = handle;
r.in.type = type;
r.in.state = state;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
r.in.resume_handle = resume_handle;
if (DEBUGLEVEL >= 10) {
@@ -742,8 +742,8 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusW(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(service, r.out.service, r.in.buf_size * sizeof(*service));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(service, r.out.service, r.in.offered * sizeof(*service));
+ *needed = *r.out.needed;
*services_returned = *r.out.services_returned;
if (resume_handle && r.out.resume_handle) {
*resume_handle = *r.out.resume_handle;
@@ -859,8 +859,8 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
struct QUERY_SERVICE_CONFIG *query /* [out] [ref] */,
- uint32_t buf_size /* [in] [range(0,8192)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
+ uint32_t offered /* [in] [range(0,8192)] */,
+ uint32_t *needed /* [out] [ref,range(0,8192)] */,
WERROR *werror)
{
struct svcctl_QueryServiceConfigW r;
@@ -868,7 +868,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigW(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceConfigW, &r);
@@ -894,7 +894,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigW(struct rpc_pipe_client *cli,
/* Return variables */
*query = *r.out.query;
- *bytes_needed = *r.out.bytes_needed;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -907,9 +907,9 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigW(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_QueryServiceLockStatusW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t buf_size /* [in] */,
+ uint32_t offered /* [in] */,
struct SERVICE_LOCK_STATUS *lock_status /* [out] [ref] */,
- uint32_t *required_buf_size /* [out] [ref] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct svcctl_QueryServiceLockStatusW r;
@@ -917,7 +917,7 @@ NTSTATUS rpccli_svcctl_QueryServiceLockStatusW(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceLockStatusW, &r);
@@ -943,7 +943,7 @@ NTSTATUS rpccli_svcctl_QueryServiceLockStatusW(struct rpc_pipe_client *cli,
/* Return variables */
*lock_status = *r.out.lock_status;
- *required_buf_size = *r.out.required_buf_size;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -1288,10 +1288,10 @@ NTSTATUS rpccli_svcctl_CreateServiceA(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_EnumDependentServicesA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *service /* [in] [ref] */,
- uint32_t state /* [in] */,
+ enum svcctl_ServiceState state /* [in] */,
struct ENUM_SERVICE_STATUSA *service_status /* [out] [unique] */,
- uint32_t buf_size /* [in] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t *services_returned /* [out] [ref] */,
WERROR *werror)
{
@@ -1301,7 +1301,7 @@ NTSTATUS rpccli_svcctl_EnumDependentServicesA(struct rpc_pipe_client *cli,
/* In parameters */
r.in.service = service;
r.in.state = state;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_EnumDependentServicesA, &r);
@@ -1329,7 +1329,7 @@ NTSTATUS rpccli_svcctl_EnumDependentServicesA(struct rpc_pipe_client *cli,
if (service_status && r.out.service_status) {
*service_status = *r.out.service_status;
}
- *bytes_needed = *r.out.bytes_needed;
+ *needed = *r.out.needed;
*services_returned = *r.out.services_returned;
/* Return result */
@@ -1345,9 +1345,9 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusA(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
enum svcctl_ServiceState state /* [in] */,
- uint32_t buf_size /* [in] */,
- uint8_t *service /* [out] [size_is(buf_size)] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint8_t *service /* [out] [size_is(offered)] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t *services_returned /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [unique] */,
WERROR *werror)
@@ -1359,7 +1359,7 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusA(struct rpc_pipe_client *cli,
r.in.handle = handle;
r.in.type = type;
r.in.state = state;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
r.in.resume_handle = resume_handle;
if (DEBUGLEVEL >= 10) {
@@ -1385,8 +1385,8 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusA(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(service, r.out.service, r.in.buf_size * sizeof(*service));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(service, r.out.service, r.in.offered * sizeof(*service));
+ *needed = *r.out.needed;
*services_returned = *r.out.services_returned;
if (resume_handle && r.out.resume_handle) {
*resume_handle = *r.out.resume_handle;
@@ -1500,8 +1500,8 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint8_t *query /* [out] */,
- uint32_t buf_size /* [in] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct svcctl_QueryServiceConfigA r;
@@ -1509,7 +1509,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigA(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceConfigA, &r);
@@ -1534,8 +1534,8 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigA(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(query, r.out.query, r.in.buf_size * sizeof(*query));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(query, r.out.query, r.in.offered * sizeof(*query));
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -1548,9 +1548,9 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigA(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_QueryServiceLockStatusA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t buf_size /* [in] */,
+ uint32_t offered /* [in] */,
struct SERVICE_LOCK_STATUS *lock_status /* [out] [ref] */,
- uint32_t *required_buf_size /* [out] [ref] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct svcctl_QueryServiceLockStatusA r;
@@ -1558,7 +1558,7 @@ NTSTATUS rpccli_svcctl_QueryServiceLockStatusA(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceLockStatusA, &r);
@@ -1584,7 +1584,7 @@ NTSTATUS rpccli_svcctl_QueryServiceLockStatusA(struct rpc_pipe_client *cli,
/* Return variables */
*lock_status = *r.out.lock_status;
- *required_buf_size = *r.out.required_buf_size;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -1926,8 +1926,8 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
enum svcctl_ConfigLevel info_level /* [in] */,
uint8_t *buffer /* [out] */,
- uint32_t buf_size /* [in] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct svcctl_QueryServiceConfig2A r;
@@ -1936,7 +1936,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
r.in.info_level = info_level;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceConfig2A, &r);
@@ -1961,8 +1961,8 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(buffer, r.out.buffer, r.in.buf_size * sizeof(*buffer));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -1976,9 +1976,9 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
enum svcctl_ConfigLevel info_level /* [in] */,
- uint8_t *buffer /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,8192)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,8192)] */,
+ uint32_t *needed /* [out] [ref,range(0,8192)] */,
WERROR *werror)
{
struct svcctl_QueryServiceConfig2W r;
@@ -1987,7 +1987,7 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
r.in.info_level = info_level;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceConfig2W, &r);
@@ -2012,8 +2012,8 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(buffer, r.out.buffer, r.in.buf_size * sizeof(*buffer));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -2027,9 +2027,9 @@ NTSTATUS rpccli_svcctl_QueryServiceStatusEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
enum svcctl_StatusLevel info_level /* [in] */,
- uint8_t *buffer /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,8192)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,8192)] */,
+ uint32_t *needed /* [out] [ref,range(0,8192)] */,
WERROR *werror)
{
struct svcctl_QueryServiceStatusEx r;
@@ -2038,7 +2038,7 @@ NTSTATUS rpccli_svcctl_QueryServiceStatusEx(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
r.in.info_level = info_level;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(svcctl_QueryServiceStatusEx, &r);
@@ -2063,8 +2063,8 @@ NTSTATUS rpccli_svcctl_QueryServiceStatusEx(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(buffer, r.out.buffer, r.in.buf_size * sizeof(*buffer));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -2081,8 +2081,8 @@ NTSTATUS rpccli_EnumServicesStatusExA(struct rpc_pipe_client *cli,
uint32_t type /* [in] */,
enum svcctl_ServiceState state /* [in] */,
uint8_t *services /* [out] */,
- uint32_t buf_size /* [in] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t *service_returned /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [unique] */,
const char **group_name /* [out] [ref,charset(UTF16)] */,
@@ -2096,7 +2096,7 @@ NTSTATUS rpccli_EnumServicesStatusExA(struct rpc_pipe_client *cli,
r.in.info_level = info_level;
r.in.type = type;
r.in.state = state;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
r.in.resume_handle = resume_handle;
if (DEBUGLEVEL >= 10) {
@@ -2122,8 +2122,8 @@ NTSTATUS rpccli_EnumServicesStatusExA(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(services, r.out.services, r.in.buf_size * sizeof(*services));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(services, r.out.services, r.in.offered * sizeof(*services));
+ *needed = *r.out.needed;
*service_returned = *r.out.service_returned;
if (resume_handle && r.out.resume_handle) {
*resume_handle = *r.out.resume_handle;
@@ -2144,9 +2144,9 @@ NTSTATUS rpccli_EnumServicesStatusExW(struct rpc_pipe_client *cli,
uint32_t info_level /* [in] */,
uint32_t type /* [in] */,
enum svcctl_ServiceState state /* [in] */,
- uint8_t *services /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,0x40000)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,0x40000)] */,
+ uint8_t *services /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,0x40000)] */,
+ uint32_t *needed /* [out] [ref,range(0,0x40000)] */,
uint32_t *service_returned /* [out] [ref,range(0,0x40000)] */,
uint32_t *resume_handle /* [in,out] [unique,range(0,0x40000)] */,
const char *group_name /* [in] [unique,charset(UTF16)] */,
@@ -2160,7 +2160,7 @@ NTSTATUS rpccli_EnumServicesStatusExW(struct rpc_pipe_client *cli,
r.in.info_level = info_level;
r.in.type = type;
r.in.state = state;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
r.in.resume_handle = resume_handle;
r.in.group_name = group_name;
@@ -2187,8 +2187,8 @@ NTSTATUS rpccli_EnumServicesStatusExW(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(services, r.out.services, r.in.buf_size * sizeof(*services));
- *bytes_needed = *r.out.bytes_needed;
+ memcpy(services, r.out.services, r.in.offered * sizeof(*services));
+ *needed = *r.out.needed;
*service_returned = *r.out.service_returned;
if (resume_handle && r.out.resume_handle) {
*resume_handle = *r.out.resume_handle;
diff --git a/librpc/gen_ndr/cli_svcctl.h b/librpc/gen_ndr/cli_svcctl.h
index 586e3fd5b9..c656eba530 100644
--- a/librpc/gen_ndr/cli_svcctl.h
+++ b/librpc/gen_ndr/cli_svcctl.h
@@ -24,16 +24,16 @@ NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t security_flags /* [in] */,
- uint8_t *buffer /* [out] [ref,size_is(buffer_size)] */,
- uint32_t buffer_size /* [in] [range(0,0x40000)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,0x40000)] */,
uint32_t *needed /* [out] [ref,range(0,0x40000)] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_SetServiceObjectSecurity(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t security_flags /* [in] */,
- uint8_t *buffer /* [in] [ref,size_is(buffer_size)] */,
- uint32_t buffer_size /* [in] */,
+ uint8_t *buffer /* [in] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_QueryServiceStatus(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -93,10 +93,10 @@ NTSTATUS rpccli_svcctl_CreateServiceW(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_EnumDependentServicesW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *service /* [in] [ref] */,
- uint32_t state /* [in] */,
- uint8_t *service_status /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,0x40000)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,0x40000)] */,
+ enum svcctl_ServiceState state /* [in] */,
+ uint8_t *service_status /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,0x40000)] */,
+ uint32_t *needed /* [out] [ref,range(0,0x40000)] */,
uint32_t *services_returned /* [out] [ref,range(0,0x40000)] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_EnumServicesStatusW(struct rpc_pipe_client *cli,
@@ -104,9 +104,9 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusW(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
enum svcctl_ServiceState state /* [in] */,
- uint8_t *service /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,0x40000)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,0x40000)] */,
+ uint8_t *service /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,0x40000)] */,
+ uint32_t *needed /* [out] [ref,range(0,0x40000)] */,
uint32_t *services_returned /* [out] [ref,range(0,0x40000)] */,
uint32_t *resume_handle /* [in,out] [unique] */,
WERROR *werror);
@@ -128,15 +128,15 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
struct QUERY_SERVICE_CONFIG *query /* [out] [ref] */,
- uint32_t buf_size /* [in] [range(0,8192)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
+ uint32_t offered /* [in] [range(0,8192)] */,
+ uint32_t *needed /* [out] [ref,range(0,8192)] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_QueryServiceLockStatusW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t buf_size /* [in] */,
+ uint32_t offered /* [in] */,
struct SERVICE_LOCK_STATUS *lock_status /* [out] [ref] */,
- uint32_t *required_buf_size /* [out] [ref] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_StartServiceW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -198,10 +198,10 @@ NTSTATUS rpccli_svcctl_CreateServiceA(struct rpc_pipe_client *cli,
NTSTATUS rpccli_svcctl_EnumDependentServicesA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *service /* [in] [ref] */,
- uint32_t state /* [in] */,
+ enum svcctl_ServiceState state /* [in] */,
struct ENUM_SERVICE_STATUSA *service_status /* [out] [unique] */,
- uint32_t buf_size /* [in] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t *services_returned /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_EnumServicesStatusA(struct rpc_pipe_client *cli,
@@ -209,9 +209,9 @@ NTSTATUS rpccli_svcctl_EnumServicesStatusA(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
uint32_t type /* [in] */,
enum svcctl_ServiceState state /* [in] */,
- uint32_t buf_size /* [in] */,
- uint8_t *service /* [out] [size_is(buf_size)] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint8_t *service /* [out] [size_is(offered)] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t *services_returned /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [unique] */,
WERROR *werror);
@@ -232,15 +232,15 @@ NTSTATUS rpccli_svcctl_QueryServiceConfigA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint8_t *query /* [out] */,
- uint32_t buf_size /* [in] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_QueryServiceLockStatusA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t buf_size /* [in] */,
+ uint32_t offered /* [in] */,
struct SERVICE_LOCK_STATUS *lock_status /* [out] [ref] */,
- uint32_t *required_buf_size /* [out] [ref] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_StartServiceA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -285,24 +285,24 @@ NTSTATUS rpccli_svcctl_QueryServiceConfig2A(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
enum svcctl_ConfigLevel info_level /* [in] */,
uint8_t *buffer /* [out] */,
- uint32_t buf_size /* [in] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_QueryServiceConfig2W(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
enum svcctl_ConfigLevel info_level /* [in] */,
- uint8_t *buffer /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,8192)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,8192)] */,
+ uint32_t *needed /* [out] [ref,range(0,8192)] */,
WERROR *werror);
NTSTATUS rpccli_svcctl_QueryServiceStatusEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
enum svcctl_StatusLevel info_level /* [in] */,
- uint8_t *buffer /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,8192)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,8192)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,8192)] */,
+ uint32_t *needed /* [out] [ref,range(0,8192)] */,
WERROR *werror);
NTSTATUS rpccli_EnumServicesStatusExA(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -311,8 +311,8 @@ NTSTATUS rpccli_EnumServicesStatusExA(struct rpc_pipe_client *cli,
uint32_t type /* [in] */,
enum svcctl_ServiceState state /* [in] */,
uint8_t *services /* [out] */,
- uint32_t buf_size /* [in] */,
- uint32_t *bytes_needed /* [out] [ref] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t *service_returned /* [out] [ref] */,
uint32_t *resume_handle /* [in,out] [unique] */,
const char **group_name /* [out] [ref,charset(UTF16)] */,
@@ -323,9 +323,9 @@ NTSTATUS rpccli_EnumServicesStatusExW(struct rpc_pipe_client *cli,
uint32_t info_level /* [in] */,
uint32_t type /* [in] */,
enum svcctl_ServiceState state /* [in] */,
- uint8_t *services /* [out] [ref,size_is(buf_size)] */,
- uint32_t buf_size /* [in] [range(0,0x40000)] */,
- uint32_t *bytes_needed /* [out] [ref,range(0,0x40000)] */,
+ uint8_t *services /* [out] [ref,size_is(offered)] */,
+ uint32_t offered /* [in] [range(0,0x40000)] */,
+ uint32_t *needed /* [out] [ref,range(0,0x40000)] */,
uint32_t *service_returned /* [out] [ref,range(0,0x40000)] */,
uint32_t *resume_handle /* [in,out] [unique,range(0,0x40000)] */,
const char *group_name /* [in] [unique,charset(UTF16)] */,
diff --git a/librpc/gen_ndr/ndr_ntsvcs.c b/librpc/gen_ndr/ndr_ntsvcs.c
index ef2ecc1d7d..d317c9f325 100644
--- a/librpc/gen_ndr/ndr_ntsvcs.c
+++ b/librpc/gen_ndr/ndr_ntsvcs.c
@@ -4,6 +4,37 @@
#include "../librpc/gen_ndr/ndr_ntsvcs.h"
#include "librpc/gen_ndr/ndr_winreg.h"
+static enum ndr_err_code ndr_push_PNP_GetIdListFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_PNP_GetIdListFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_PNP_GetIdListFlags(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+ ndr_print_uint32(ndr, name, r);
+ ndr->depth++;
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_ENUMERATOR", CM_GETIDLIST_FILTER_ENUMERATOR, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_SERVICE", CM_GETIDLIST_FILTER_SERVICE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_EJECTRELATIONS", CM_GETIDLIST_FILTER_EJECTRELATIONS, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_REMOVALRELATIONS", CM_GETIDLIST_FILTER_REMOVALRELATIONS, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_POWERRELATIONS", CM_GETIDLIST_FILTER_POWERRELATIONS, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_BUSRELATIONS", CM_GETIDLIST_FILTER_BUSRELATIONS, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_DONOTGENERATE", CM_GETIDLIST_DONOTGENERATE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_TRANSPORTRELATIONS", CM_GETIDLIST_FILTER_TRANSPORTRELATIONS, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_PRESENT", CM_GETIDLIST_FILTER_PRESENT, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "CM_GETIDLIST_FILTER_CLASS", CM_GETIDLIST_FILTER_CLASS, r);
+ ndr->depth--;
+}
+
static enum ndr_err_code ndr_push_PNP_HwProfInfo(struct ndr_push *ndr, int ndr_flags, const struct PNP_HwProfInfo *r)
{
uint32_t cntr_friendly_name_0;
@@ -522,7 +553,7 @@ static enum ndr_err_code ndr_push_PNP_GetDeviceList(struct ndr_push *ndr, int fl
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.length));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
+ NDR_CHECK(ndr_push_PNP_GetIdListFlags(ndr, NDR_SCALARS, r->in.flags));
}
if (flags & NDR_OUT) {
if (r->out.buffer == NULL) {
@@ -578,7 +609,7 @@ static enum ndr_err_code ndr_pull_PNP_GetDeviceList(struct ndr_pull *ndr, int fl
NDR_PULL_SET_MEM_CTX(ndr, r->in.length, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.length));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_length_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
+ NDR_CHECK(ndr_pull_PNP_GetIdListFlags(ndr, NDR_SCALARS, &r->in.flags));
NDR_PULL_ALLOC_N(ndr, r->out.buffer, *r->in.length);
memset(r->out.buffer, 0, (*r->in.length) * sizeof(*r->out.buffer));
NDR_PULL_ALLOC(ndr, r->out.length);
@@ -638,7 +669,7 @@ _PUBLIC_ void ndr_print_PNP_GetDeviceList(struct ndr_print *ndr, const char *nam
ndr->depth++;
ndr_print_uint32(ndr, "length", *r->in.length);
ndr->depth--;
- ndr_print_uint32(ndr, "flags", r->in.flags);
+ ndr_print_PNP_GetIdListFlags(ndr, "flags", r->in.flags);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -677,7 +708,7 @@ static enum ndr_err_code ndr_push_PNP_GetDeviceListSize(struct ndr_push *ndr, in
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.devicename, CH_UTF16)));
NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.devicename, ndr_charset_length(r->in.devicename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
+ NDR_CHECK(ndr_push_PNP_GetIdListFlags(ndr, NDR_SCALARS, r->in.flags));
}
if (flags & NDR_OUT) {
if (r->out.size == NULL) {
@@ -715,7 +746,7 @@ static enum ndr_err_code ndr_pull_PNP_GetDeviceListSize(struct ndr_pull *ndr, in
NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.devicename, ndr_get_array_length(ndr, &r->in.devicename), sizeof(uint16_t), CH_UTF16));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devicename_0, 0);
}
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
+ NDR_CHECK(ndr_pull_PNP_GetIdListFlags(ndr, NDR_SCALARS, &r->in.flags));
NDR_PULL_ALLOC(ndr, r->out.size);
ZERO_STRUCTP(r->out.size);
}
@@ -748,7 +779,7 @@ _PUBLIC_ void ndr_print_PNP_GetDeviceListSize(struct ndr_print *ndr, const char
ndr_print_string(ndr, "devicename", r->in.devicename);
}
ndr->depth--;
- ndr_print_uint32(ndr, "flags", r->in.flags);
+ ndr_print_PNP_GetIdListFlags(ndr, "flags", r->in.flags);
ndr->depth--;
}
if (flags & NDR_OUT) {
diff --git a/librpc/gen_ndr/ndr_ntsvcs.h b/librpc/gen_ndr/ndr_ntsvcs.h
index b70c383678..a5ad373a71 100644
--- a/librpc/gen_ndr/ndr_ntsvcs.h
+++ b/librpc/gen_ndr/ndr_ntsvcs.h
@@ -142,6 +142,7 @@ extern const struct ndr_interface_table ndr_table_ntsvcs;
#define NDR_PNP_GETSERVERSIDEDEVICEINSTALLFLAGS (0x40)
#define NDR_NTSVCS_CALL_COUNT (65)
+void ndr_print_PNP_GetIdListFlags(struct ndr_print *ndr, const char *name, uint32_t r);
void ndr_print_PNP_HwProfInfo(struct ndr_print *ndr, const char *name, const struct PNP_HwProfInfo *r);
void ndr_print_PNP_Disconnect(struct ndr_print *ndr, const char *name, int flags, const struct PNP_Disconnect *r);
void ndr_print_PNP_Connect(struct ndr_print *ndr, const char *name, int flags, const struct PNP_Connect *r);
diff --git a/librpc/gen_ndr/ndr_svcctl.c b/librpc/gen_ndr/ndr_svcctl.c
index 6101b7da87..ee828ee49d 100644
--- a/librpc/gen_ndr/ndr_svcctl.c
+++ b/librpc/gen_ndr/ndr_svcctl.c
@@ -120,7 +120,6 @@ _PUBLIC_ void ndr_print_svcctl_ControlsAccepted(struct ndr_print *ndr, const cha
{
ndr_print_uint32(ndr, name, r);
ndr->depth++;
- ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_NONE", SVCCTL_ACCEPT_NONE, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_STOP", SVCCTL_ACCEPT_STOP, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_PAUSE_CONTINUE", SVCCTL_ACCEPT_PAUSE_CONTINUE, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_SHUTDOWN", SVCCTL_ACCEPT_SHUTDOWN, r);
@@ -1593,15 +1592,15 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceObjectSecurity(struct ndr_p
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.security_flags));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
+ NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.security_flags));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
if (r->out.buffer == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buffer_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
@@ -1625,13 +1624,13 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceObjectSecurity(struct ndr_p
NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.security_flags));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffer_size));
- if (r->in.buffer_size > 0x40000) {
+ NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.security_flags));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ if (r->in.offered > 0x40000) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buffer_size);
- memset(r->out.buffer, 0, (r->in.buffer_size) * sizeof(*r->out.buffer));
+ NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
+ memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
NDR_PULL_ALLOC(ndr, r->out.needed);
ZERO_STRUCTP(r->out.needed);
}
@@ -1653,7 +1652,7 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceObjectSecurity(struct ndr_p
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
if (r->out.buffer) {
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.buffer_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
}
}
return NDR_ERR_SUCCESS;
@@ -1673,8 +1672,8 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceObjectSecurity(struct ndr_print *ndr,
ndr->depth++;
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
- ndr_print_uint32(ndr, "security_flags", r->in.security_flags);
- ndr_print_uint32(ndr, "buffer_size", r->in.buffer_size);
+ ndr_print_security_secinfo(ndr, "security_flags", r->in.security_flags);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -1682,7 +1681,7 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceObjectSecurity(struct ndr_print *ndr,
ndr->depth++;
ndr_print_ptr(ndr, "buffer", r->out.buffer);
ndr->depth++;
- ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.buffer_size);
+ ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
ndr->depth--;
ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
@@ -1701,13 +1700,13 @@ static enum ndr_err_code ndr_push_svcctl_SetServiceObjectSecurity(struct ndr_pus
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.security_flags));
+ NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.security_flags));
if (r->in.buffer == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.buffer_size));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
@@ -1726,15 +1725,15 @@ static enum ndr_err_code ndr_pull_svcctl_SetServiceObjectSecurity(struct ndr_pul
NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.security_flags));
+ NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.security_flags));
NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
}
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffer_size));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
if (r->in.buffer) {
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.buffer_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
}
}
if (flags & NDR_OUT) {
@@ -1757,12 +1756,12 @@ _PUBLIC_ void ndr_print_svcctl_SetServiceObjectSecurity(struct ndr_print *ndr, c
ndr->depth++;
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
- ndr_print_uint32(ndr, "security_flags", r->in.security_flags);
+ ndr_print_security_secinfo(ndr, "security_flags", r->in.security_flags);
ndr_print_ptr(ndr, "buffer", r->in.buffer);
ndr->depth++;
- ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.buffer_size);
+ ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
ndr->depth--;
- ndr_print_uint32(ndr, "buffer_size", r->in.buffer_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -2690,19 +2689,19 @@ static enum ndr_err_code ndr_push_svcctl_EnumDependentServicesW(struct ndr_push
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.service));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.state));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_svcctl_ServiceState(ndr, NDR_SCALARS, r->in.state));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
if (r->out.service_status == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.service_status, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.service_status, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
if (r->out.services_returned == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
@@ -2715,7 +2714,7 @@ static enum ndr_err_code ndr_push_svcctl_EnumDependentServicesW(struct ndr_push
static enum ndr_err_code ndr_pull_svcctl_EnumDependentServicesW(struct ndr_pull *ndr, int flags, struct svcctl_EnumDependentServicesW *r)
{
TALLOC_CTX *_mem_save_service_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
TALLOC_CTX *_mem_save_services_returned_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -2727,15 +2726,15 @@ static enum ndr_err_code ndr_pull_svcctl_EnumDependentServicesW(struct ndr_pull
NDR_PULL_SET_MEM_CTX(ndr, r->in.service, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.service));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.state));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- if (r->in.buf_size > 0x40000) {
+ NDR_CHECK(ndr_pull_svcctl_ServiceState(ndr, NDR_SCALARS, &r->in.state));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ if (r->in.offered > 0x40000) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_ALLOC_N(ndr, r->out.service_status, r->in.buf_size);
- memset(r->out.service_status, 0, (r->in.buf_size) * sizeof(*r->out.service_status));
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_PULL_ALLOC_N(ndr, r->out.service_status, r->in.offered);
+ memset(r->out.service_status, 0, (r->in.offered) * sizeof(*r->out.service_status));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
NDR_PULL_ALLOC(ndr, r->out.services_returned);
ZERO_STRUCTP(r->out.services_returned);
}
@@ -2746,15 +2745,15 @@ static enum ndr_err_code ndr_pull_svcctl_EnumDependentServicesW(struct ndr_pull
}
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.service_status, ndr_get_array_size(ndr, &r->out.service_status)));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- if (*r->out.bytes_needed > 0x40000) {
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ if (*r->out.needed > 0x40000) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->out.services_returned);
}
@@ -2767,7 +2766,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumDependentServicesW(struct ndr_pull
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_services_returned_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
if (r->out.service_status) {
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.service_status, r->in.buf_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.service_status, r->in.offered));
}
}
return NDR_ERR_SUCCESS;
@@ -2787,8 +2786,8 @@ _PUBLIC_ void ndr_print_svcctl_EnumDependentServicesW(struct ndr_print *ndr, con
ndr->depth++;
ndr_print_policy_handle(ndr, "service", r->in.service);
ndr->depth--;
- ndr_print_uint32(ndr, "state", r->in.state);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_svcctl_ServiceState(ndr, "state", r->in.state);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -2796,11 +2795,11 @@ _PUBLIC_ void ndr_print_svcctl_EnumDependentServicesW(struct ndr_print *ndr, con
ndr->depth++;
ndr_print_ptr(ndr, "service_status", r->out.service_status);
ndr->depth++;
- ndr_print_array_uint8(ndr, "service_status", r->out.service_status, r->in.buf_size);
+ ndr_print_array_uint8(ndr, "service_status", r->out.service_status, r->in.offered);
ndr->depth--;
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_ptr(ndr, "services_returned", r->out.services_returned);
ndr->depth++;
@@ -2821,7 +2820,7 @@ static enum ndr_err_code ndr_push_svcctl_EnumServicesStatusW(struct ndr_push *nd
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
NDR_CHECK(ndr_push_svcctl_ServiceState(ndr, NDR_SCALARS, r->in.state));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
if (r->in.resume_handle) {
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
@@ -2831,12 +2830,12 @@ static enum ndr_err_code ndr_push_svcctl_EnumServicesStatusW(struct ndr_push *nd
if (r->out.service == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.service, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.service, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
if (r->out.services_returned == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
@@ -2854,7 +2853,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusW(struct ndr_pull *nd
{
uint32_t _ptr_resume_handle;
TALLOC_CTX *_mem_save_handle_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
TALLOC_CTX *_mem_save_services_returned_0;
TALLOC_CTX *_mem_save_resume_handle_0;
if (flags & NDR_IN) {
@@ -2869,8 +2868,8 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusW(struct ndr_pull *nd
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
NDR_CHECK(ndr_pull_svcctl_ServiceState(ndr, NDR_SCALARS, &r->in.state));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- if (r->in.buf_size > 0x40000) {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ if (r->in.offered > 0x40000) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
@@ -2885,10 +2884,10 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusW(struct ndr_pull *nd
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
}
- NDR_PULL_ALLOC_N(ndr, r->out.service, r->in.buf_size);
- memset(r->out.service, 0, (r->in.buf_size) * sizeof(*r->out.service));
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_PULL_ALLOC_N(ndr, r->out.service, r->in.offered);
+ memset(r->out.service, 0, (r->in.offered) * sizeof(*r->out.service));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
NDR_PULL_ALLOC(ndr, r->out.services_returned);
ZERO_STRUCTP(r->out.services_returned);
}
@@ -2899,15 +2898,15 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusW(struct ndr_pull *nd
}
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.service, ndr_get_array_size(ndr, &r->out.service)));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- if (*r->out.bytes_needed > 0x40000) {
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ if (*r->out.needed > 0x40000) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->out.services_returned);
}
@@ -2932,7 +2931,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusW(struct ndr_pull *nd
}
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
if (r->out.service) {
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.service, r->in.buf_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.service, r->in.offered));
}
}
return NDR_ERR_SUCCESS;
@@ -2954,7 +2953,7 @@ _PUBLIC_ void ndr_print_svcctl_EnumServicesStatusW(struct ndr_print *ndr, const
ndr->depth--;
ndr_print_uint32(ndr, "type", r->in.type);
ndr_print_svcctl_ServiceState(ndr, "state", r->in.state);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
ndr->depth++;
if (r->in.resume_handle) {
@@ -2968,11 +2967,11 @@ _PUBLIC_ void ndr_print_svcctl_EnumServicesStatusW(struct ndr_print *ndr, const
ndr->depth++;
ndr_print_ptr(ndr, "service", r->out.service);
ndr->depth++;
- ndr_print_array_uint8(ndr, "service", r->out.service, r->in.buf_size);
+ ndr_print_array_uint8(ndr, "service", r->out.service, r->in.offered);
ndr->depth--;
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_ptr(ndr, "services_returned", r->out.services_returned);
ndr->depth++;
@@ -3219,17 +3218,17 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfigW(struct ndr_push *nd
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
if (r->out.query == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_QUERY_SERVICE_CONFIG(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
- if (r->out.bytes_needed == NULL) {
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -3239,7 +3238,7 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigW(struct ndr_pull *nd
{
TALLOC_CTX *_mem_save_handle_0;
TALLOC_CTX *_mem_save_query_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -3250,14 +3249,14 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigW(struct ndr_pull *nd
NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- if (r->in.buf_size > 8192) {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ if (r->in.offered > 8192) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
NDR_PULL_ALLOC(ndr, r->out.query);
ZERO_STRUCTP(r->out.query);
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
}
if (flags & NDR_OUT) {
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
@@ -3268,15 +3267,15 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigW(struct ndr_pull *nd
NDR_CHECK(ndr_pull_QUERY_SERVICE_CONFIG(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- if (*r->out.bytes_needed > 8192) {
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ if (*r->out.needed > 8192) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -3296,7 +3295,7 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceConfigW(struct ndr_print *ndr, const
ndr->depth++;
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -3306,9 +3305,9 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceConfigW(struct ndr_print *ndr, const
ndr->depth++;
ndr_print_QUERY_SERVICE_CONFIG(ndr, "query", r->out.query);
ndr->depth--;
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_WERROR(ndr, "result", r->out.result);
ndr->depth--;
@@ -3323,17 +3322,17 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceLockStatusW(struct ndr_push
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
if (r->out.lock_status == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_SERVICE_LOCK_STATUS(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.lock_status));
- if (r->out.required_buf_size == NULL) {
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required_buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -3343,7 +3342,7 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceLockStatusW(struct ndr_pull
{
TALLOC_CTX *_mem_save_handle_0;
TALLOC_CTX *_mem_save_lock_status_0;
- TALLOC_CTX *_mem_save_required_buf_size_0;
+ TALLOC_CTX *_mem_save_needed_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -3354,11 +3353,11 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceLockStatusW(struct ndr_pull
NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
NDR_PULL_ALLOC(ndr, r->out.lock_status);
ZERO_STRUCTP(r->out.lock_status);
- NDR_PULL_ALLOC(ndr, r->out.required_buf_size);
- ZERO_STRUCTP(r->out.required_buf_size);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
}
if (flags & NDR_OUT) {
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
@@ -3369,12 +3368,12 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceLockStatusW(struct ndr_pull
NDR_CHECK(ndr_pull_SERVICE_LOCK_STATUS(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.lock_status));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lock_status_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.required_buf_size);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_required_buf_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.required_buf_size, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required_buf_size));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_buf_size_0, LIBNDR_FLAG_REF_ALLOC);
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -3394,7 +3393,7 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceLockStatusW(struct ndr_print *ndr, co
ndr->depth++;
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -3404,9 +3403,9 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceLockStatusW(struct ndr_print *ndr, co
ndr->depth++;
ndr_print_SERVICE_LOCK_STATUS(ndr, "lock_status", r->out.lock_status);
ndr->depth--;
- ndr_print_ptr(ndr, "required_buf_size", r->out.required_buf_size);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "required_buf_size", *r->out.required_buf_size);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_WERROR(ndr, "result", r->out.result);
ndr->depth--;
@@ -4562,18 +4561,18 @@ static enum ndr_err_code ndr_push_svcctl_EnumDependentServicesA(struct ndr_push
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.service));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.state));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_svcctl_ServiceState(ndr, NDR_SCALARS, r->in.state));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.service_status));
if (r->out.service_status) {
NDR_CHECK(ndr_push_ENUM_SERVICE_STATUSA(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.service_status));
}
- if (r->out.bytes_needed == NULL) {
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
if (r->out.services_returned == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
@@ -4588,7 +4587,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumDependentServicesA(struct ndr_pull
uint32_t _ptr_service_status;
TALLOC_CTX *_mem_save_service_0;
TALLOC_CTX *_mem_save_service_status_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
TALLOC_CTX *_mem_save_services_returned_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -4600,10 +4599,10 @@ static enum ndr_err_code ndr_pull_svcctl_EnumDependentServicesA(struct ndr_pull
NDR_PULL_SET_MEM_CTX(ndr, r->in.service, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.service));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.state));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_CHECK(ndr_pull_svcctl_ServiceState(ndr, NDR_SCALARS, &r->in.state));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
NDR_PULL_ALLOC(ndr, r->out.services_returned);
ZERO_STRUCTP(r->out.services_returned);
}
@@ -4621,12 +4620,12 @@ static enum ndr_err_code ndr_pull_svcctl_EnumDependentServicesA(struct ndr_pull
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_status_0, 0);
}
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->out.services_returned);
}
@@ -4653,8 +4652,8 @@ _PUBLIC_ void ndr_print_svcctl_EnumDependentServicesA(struct ndr_print *ndr, con
ndr->depth++;
ndr_print_policy_handle(ndr, "service", r->in.service);
ndr->depth--;
- ndr_print_uint32(ndr, "state", r->in.state);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_svcctl_ServiceState(ndr, "state", r->in.state);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -4666,9 +4665,9 @@ _PUBLIC_ void ndr_print_svcctl_EnumDependentServicesA(struct ndr_print *ndr, con
ndr_print_ENUM_SERVICE_STATUSA(ndr, "service_status", r->out.service_status);
}
ndr->depth--;
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_ptr(ndr, "services_returned", r->out.services_returned);
ndr->depth++;
@@ -4689,19 +4688,19 @@ static enum ndr_err_code ndr_push_svcctl_EnumServicesStatusA(struct ndr_push *nd
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
NDR_CHECK(ndr_push_svcctl_ServiceState(ndr, NDR_SCALARS, r->in.state));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
if (r->in.resume_handle) {
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
}
}
if (flags & NDR_OUT) {
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.service, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.service, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
if (r->out.services_returned == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
@@ -4719,7 +4718,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusA(struct ndr_pull *nd
{
uint32_t _ptr_resume_handle;
TALLOC_CTX *_mem_save_handle_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
TALLOC_CTX *_mem_save_services_returned_0;
TALLOC_CTX *_mem_save_resume_handle_0;
if (flags & NDR_IN) {
@@ -4734,7 +4733,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusA(struct ndr_pull *nd
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
NDR_CHECK(ndr_pull_svcctl_ServiceState(ndr, NDR_SCALARS, &r->in.state));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
if (_ptr_resume_handle) {
NDR_PULL_ALLOC(ndr, r->in.resume_handle);
@@ -4747,8 +4746,8 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusA(struct ndr_pull *nd
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
}
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
NDR_PULL_ALLOC(ndr, r->out.services_returned);
ZERO_STRUCTP(r->out.services_returned);
}
@@ -4757,12 +4756,12 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusA(struct ndr_pull *nd
NDR_PULL_ALLOC_N(ndr, r->out.service, ndr_get_array_size(ndr, &r->out.service));
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.service, ndr_get_array_size(ndr, &r->out.service)));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->out.services_returned);
}
@@ -4784,7 +4783,7 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusA(struct ndr_pull *nd
}
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
if (r->out.service) {
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.service, r->in.buf_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.service, r->in.offered));
}
}
return NDR_ERR_SUCCESS;
@@ -4806,7 +4805,7 @@ _PUBLIC_ void ndr_print_svcctl_EnumServicesStatusA(struct ndr_print *ndr, const
ndr->depth--;
ndr_print_uint32(ndr, "type", r->in.type);
ndr_print_svcctl_ServiceState(ndr, "state", r->in.state);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
ndr->depth++;
if (r->in.resume_handle) {
@@ -4818,10 +4817,10 @@ _PUBLIC_ void ndr_print_svcctl_EnumServicesStatusA(struct ndr_print *ndr, const
if (flags & NDR_OUT) {
ndr_print_struct(ndr, "out", "svcctl_EnumServicesStatusA");
ndr->depth++;
- ndr_print_array_uint8(ndr, "service", r->out.service, r->in.buf_size);
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_array_uint8(ndr, "service", r->out.service, r->in.offered);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_ptr(ndr, "services_returned", r->out.services_returned);
ndr->depth++;
@@ -5069,14 +5068,14 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfigA(struct ndr_push *nd
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.query, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.query, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -5085,7 +5084,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfigA(struct ndr_push *nd
static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigA(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceConfigA *r)
{
TALLOC_CTX *_mem_save_handle_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -5096,20 +5095,20 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigA(struct ndr_pull *nd
NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
}
if (flags & NDR_OUT) {
- NDR_PULL_ALLOC_N(ndr, r->out.query, r->in.buf_size);
- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.query, r->in.buf_size));
+ NDR_PULL_ALLOC_N(ndr, r->out.query, r->in.offered);
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.query, r->in.offered));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -5129,16 +5128,16 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceConfigA(struct ndr_print *ndr, const
ndr->depth++;
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
ndr_print_struct(ndr, "out", "svcctl_QueryServiceConfigA");
ndr->depth++;
- ndr_print_array_uint8(ndr, "query", r->out.query, r->in.buf_size);
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_array_uint8(ndr, "query", r->out.query, r->in.offered);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_WERROR(ndr, "result", r->out.result);
ndr->depth--;
@@ -5153,17 +5152,17 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceLockStatusA(struct ndr_push
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
if (r->out.lock_status == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
NDR_CHECK(ndr_push_SERVICE_LOCK_STATUS(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.lock_status));
- if (r->out.required_buf_size == NULL) {
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required_buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -5173,7 +5172,7 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceLockStatusA(struct ndr_pull
{
TALLOC_CTX *_mem_save_handle_0;
TALLOC_CTX *_mem_save_lock_status_0;
- TALLOC_CTX *_mem_save_required_buf_size_0;
+ TALLOC_CTX *_mem_save_needed_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -5184,11 +5183,11 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceLockStatusA(struct ndr_pull
NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
NDR_PULL_ALLOC(ndr, r->out.lock_status);
ZERO_STRUCTP(r->out.lock_status);
- NDR_PULL_ALLOC(ndr, r->out.required_buf_size);
- ZERO_STRUCTP(r->out.required_buf_size);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
}
if (flags & NDR_OUT) {
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
@@ -5199,12 +5198,12 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceLockStatusA(struct ndr_pull
NDR_CHECK(ndr_pull_SERVICE_LOCK_STATUS(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.lock_status));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lock_status_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.required_buf_size);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_required_buf_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.required_buf_size, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required_buf_size));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_buf_size_0, LIBNDR_FLAG_REF_ALLOC);
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -5224,7 +5223,7 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceLockStatusA(struct ndr_print *ndr, co
ndr->depth++;
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -5234,9 +5233,9 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceLockStatusA(struct ndr_print *ndr, co
ndr->depth++;
ndr_print_SERVICE_LOCK_STATUS(ndr, "lock_status", r->out.lock_status);
ndr->depth--;
- ndr_print_ptr(ndr, "required_buf_size", r->out.required_buf_size);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "required_buf_size", *r->out.required_buf_size);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_WERROR(ndr, "result", r->out.result);
ndr->depth--;
@@ -5967,14 +5966,14 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfig2A(struct ndr_push *n
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_CHECK(ndr_push_svcctl_ConfigLevel(ndr, NDR_SCALARS, r->in.info_level));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -5983,7 +5982,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfig2A(struct ndr_push *n
static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2A(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceConfig2A *r)
{
TALLOC_CTX *_mem_save_handle_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -5995,20 +5994,20 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2A(struct ndr_pull *n
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_svcctl_ConfigLevel(ndr, NDR_SCALARS, &r->in.info_level));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
}
if (flags & NDR_OUT) {
- NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size);
- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buf_size));
+ NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -6029,16 +6028,16 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceConfig2A(struct ndr_print *ndr, const
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
ndr_print_svcctl_ConfigLevel(ndr, "info_level", r->in.info_level);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
ndr_print_struct(ndr, "out", "svcctl_QueryServiceConfig2A");
ndr->depth++;
- ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.buf_size);
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_WERROR(ndr, "result", r->out.result);
ndr->depth--;
@@ -6054,18 +6053,18 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfig2W(struct ndr_push *n
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_CHECK(ndr_push_svcctl_ConfigLevel(ndr, NDR_SCALARS, r->in.info_level));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
if (r->out.buffer == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -6074,7 +6073,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfig2W(struct ndr_push *n
static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2W(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceConfig2W *r)
{
TALLOC_CTX *_mem_save_handle_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -6086,14 +6085,14 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2W(struct ndr_pull *n
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_svcctl_ConfigLevel(ndr, NDR_SCALARS, &r->in.info_level));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- if (r->in.buf_size > 8192) {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ if (r->in.offered > 8192) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size);
- memset(r->out.buffer, 0, (r->in.buf_size) * sizeof(*r->out.buffer));
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
+ memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
}
if (flags & NDR_OUT) {
NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
@@ -6102,18 +6101,18 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2W(struct ndr_pull *n
}
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- if (*r->out.bytes_needed > 8192) {
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ if (*r->out.needed > 8192) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
if (r->out.buffer) {
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.buf_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
}
}
return NDR_ERR_SUCCESS;
@@ -6134,7 +6133,7 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceConfig2W(struct ndr_print *ndr, const
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
ndr_print_svcctl_ConfigLevel(ndr, "info_level", r->in.info_level);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -6142,11 +6141,11 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceConfig2W(struct ndr_print *ndr, const
ndr->depth++;
ndr_print_ptr(ndr, "buffer", r->out.buffer);
ndr->depth++;
- ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.buf_size);
+ ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
ndr->depth--;
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_WERROR(ndr, "result", r->out.result);
ndr->depth--;
@@ -6162,18 +6161,18 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceStatusEx(struct ndr_push *n
}
NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_CHECK(ndr_push_svcctl_StatusLevel(ndr, NDR_SCALARS, r->in.info_level));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
}
if (flags & NDR_OUT) {
if (r->out.buffer == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -6182,7 +6181,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceStatusEx(struct ndr_push *n
static enum ndr_err_code ndr_pull_svcctl_QueryServiceStatusEx(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceStatusEx *r)
{
TALLOC_CTX *_mem_save_handle_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -6194,14 +6193,14 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceStatusEx(struct ndr_pull *n
NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_svcctl_StatusLevel(ndr, NDR_SCALARS, &r->in.info_level));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- if (r->in.buf_size > 8192) {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ if (r->in.offered > 8192) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size);
- memset(r->out.buffer, 0, (r->in.buf_size) * sizeof(*r->out.buffer));
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
+ memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
}
if (flags & NDR_OUT) {
NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
@@ -6210,18 +6209,18 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceStatusEx(struct ndr_pull *n
}
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- if (*r->out.bytes_needed > 8192) {
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ if (*r->out.needed > 8192) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
if (r->out.buffer) {
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.buf_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
}
}
return NDR_ERR_SUCCESS;
@@ -6242,7 +6241,7 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceStatusEx(struct ndr_print *ndr, const
ndr_print_policy_handle(ndr, "handle", r->in.handle);
ndr->depth--;
ndr_print_svcctl_StatusLevel(ndr, "info_level", r->in.info_level);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr->depth--;
}
if (flags & NDR_OUT) {
@@ -6250,11 +6249,11 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceStatusEx(struct ndr_print *ndr, const
ndr->depth++;
ndr_print_ptr(ndr, "buffer", r->out.buffer);
ndr->depth++;
- ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.buf_size);
+ ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
ndr->depth--;
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_WERROR(ndr, "result", r->out.result);
ndr->depth--;
@@ -6272,18 +6271,18 @@ static enum ndr_err_code ndr_push_EnumServicesStatusExA(struct ndr_push *ndr, in
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.info_level));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
NDR_CHECK(ndr_push_svcctl_ServiceState(ndr, NDR_SCALARS, r->in.state));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
if (r->in.resume_handle) {
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
}
}
if (flags & NDR_OUT) {
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.services, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.services, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
if (r->out.service_returned == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
@@ -6312,7 +6311,7 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExA(struct ndr_pull *ndr, in
uint32_t _ptr_resume_handle;
uint32_t _ptr_group_name;
TALLOC_CTX *_mem_save_scmanager_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
TALLOC_CTX *_mem_save_service_returned_0;
TALLOC_CTX *_mem_save_resume_handle_0;
TALLOC_CTX *_mem_save_group_name_0;
@@ -6330,7 +6329,7 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExA(struct ndr_pull *ndr, in
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.info_level));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
NDR_CHECK(ndr_pull_svcctl_ServiceState(ndr, NDR_SCALARS, &r->in.state));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
if (_ptr_resume_handle) {
NDR_PULL_ALLOC(ndr, r->in.resume_handle);
@@ -6343,23 +6342,23 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExA(struct ndr_pull *ndr, in
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, 0);
}
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
NDR_PULL_ALLOC(ndr, r->out.service_returned);
ZERO_STRUCTP(r->out.service_returned);
NDR_PULL_ALLOC(ndr, r->out.group_name);
ZERO_STRUCTP(r->out.group_name);
}
if (flags & NDR_OUT) {
- NDR_PULL_ALLOC_N(ndr, r->out.services, r->in.buf_size);
- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.services, r->in.buf_size));
+ NDR_PULL_ALLOC_N(ndr, r->out.services, r->in.offered);
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.services, r->in.offered));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->out.service_returned);
}
@@ -6425,7 +6424,7 @@ _PUBLIC_ void ndr_print_EnumServicesStatusExA(struct ndr_print *ndr, const char
ndr_print_uint32(ndr, "info_level", r->in.info_level);
ndr_print_uint32(ndr, "type", r->in.type);
ndr_print_svcctl_ServiceState(ndr, "state", r->in.state);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
ndr->depth++;
if (r->in.resume_handle) {
@@ -6437,10 +6436,10 @@ _PUBLIC_ void ndr_print_EnumServicesStatusExA(struct ndr_print *ndr, const char
if (flags & NDR_OUT) {
ndr_print_struct(ndr, "out", "EnumServicesStatusExA");
ndr->depth++;
- ndr_print_array_uint8(ndr, "services", r->out.services, r->in.buf_size);
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_array_uint8(ndr, "services", r->out.services, r->in.offered);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_ptr(ndr, "service_returned", r->out.service_returned);
ndr->depth++;
@@ -6477,7 +6476,7 @@ static enum ndr_err_code ndr_push_EnumServicesStatusExW(struct ndr_push *ndr, in
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.info_level));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
NDR_CHECK(ndr_push_svcctl_ServiceState(ndr, NDR_SCALARS, r->in.state));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.resume_handle));
if (r->in.resume_handle) {
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
@@ -6494,12 +6493,12 @@ static enum ndr_err_code ndr_push_EnumServicesStatusExW(struct ndr_push *ndr, in
if (r->out.services == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.services, r->in.buf_size));
- if (r->out.bytes_needed == NULL) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.services, r->in.offered));
+ if (r->out.needed == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.bytes_needed));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
if (r->out.service_returned == NULL) {
return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
}
@@ -6518,7 +6517,7 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, in
uint32_t _ptr_resume_handle;
uint32_t _ptr_group_name;
TALLOC_CTX *_mem_save_scmanager_0;
- TALLOC_CTX *_mem_save_bytes_needed_0;
+ TALLOC_CTX *_mem_save_needed_0;
TALLOC_CTX *_mem_save_service_returned_0;
TALLOC_CTX *_mem_save_resume_handle_0;
TALLOC_CTX *_mem_save_group_name_0;
@@ -6535,8 +6534,8 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, in
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.info_level));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
NDR_CHECK(ndr_pull_svcctl_ServiceState(ndr, NDR_SCALARS, &r->in.state));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
- if (r->in.buf_size > 0x40000) {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ if (r->in.offered > 0x40000) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_resume_handle));
@@ -6572,10 +6571,10 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, in
NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.group_name, ndr_get_array_length(ndr, &r->in.group_name), sizeof(uint16_t), CH_UTF16));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_name_0, 0);
}
- NDR_PULL_ALLOC_N(ndr, r->out.services, r->in.buf_size);
- memset(r->out.services, 0, (r->in.buf_size) * sizeof(*r->out.services));
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
- ZERO_STRUCTP(r->out.bytes_needed);
+ NDR_PULL_ALLOC_N(ndr, r->out.services, r->in.offered);
+ memset(r->out.services, 0, (r->in.offered) * sizeof(*r->out.services));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
NDR_PULL_ALLOC(ndr, r->out.service_returned);
ZERO_STRUCTP(r->out.service_returned);
}
@@ -6586,15 +6585,15 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, in
}
NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.services, ndr_get_array_size(ndr, &r->out.services)));
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC(ndr, r->out.bytes_needed);
+ NDR_PULL_ALLOC(ndr, r->out.needed);
}
- _mem_save_bytes_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->out.bytes_needed, LIBNDR_FLAG_REF_ALLOC);
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.bytes_needed));
- if (*r->out.bytes_needed > 0x40000) {
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ if (*r->out.needed > 0x40000) {
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bytes_needed_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->out.service_returned);
}
@@ -6622,7 +6621,7 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, in
}
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
if (r->out.services) {
- NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.services, r->in.buf_size));
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.services, r->in.offered));
}
}
return NDR_ERR_SUCCESS;
@@ -6645,7 +6644,7 @@ _PUBLIC_ void ndr_print_EnumServicesStatusExW(struct ndr_print *ndr, const char
ndr_print_uint32(ndr, "info_level", r->in.info_level);
ndr_print_uint32(ndr, "type", r->in.type);
ndr_print_svcctl_ServiceState(ndr, "state", r->in.state);
- ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
+ ndr_print_uint32(ndr, "offered", r->in.offered);
ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
ndr->depth++;
if (r->in.resume_handle) {
@@ -6665,11 +6664,11 @@ _PUBLIC_ void ndr_print_EnumServicesStatusExW(struct ndr_print *ndr, const char
ndr->depth++;
ndr_print_ptr(ndr, "services", r->out.services);
ndr->depth++;
- ndr_print_array_uint8(ndr, "services", r->out.services, r->in.buf_size);
+ ndr_print_array_uint8(ndr, "services", r->out.services, r->in.offered);
ndr->depth--;
- ndr_print_ptr(ndr, "bytes_needed", r->out.bytes_needed);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
ndr->depth++;
- ndr_print_uint32(ndr, "bytes_needed", *r->out.bytes_needed);
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
ndr->depth--;
ndr_print_ptr(ndr, "service_returned", r->out.service_returned);
ndr->depth++;
diff --git a/librpc/gen_ndr/ntsvcs.h b/librpc/gen_ndr/ntsvcs.h
index 804c452816..f59fcae2e7 100644
--- a/librpc/gen_ndr/ntsvcs.h
+++ b/librpc/gen_ndr/ntsvcs.h
@@ -8,7 +8,20 @@
#ifndef _HEADER_ntsvcs
#define _HEADER_ntsvcs
+#define CM_GETIDLIST_FILTER_NONE ( 0x00000000 )
#define DEV_REGPROP_DESC ( 1 )
+/* bitmap PNP_GetIdListFlags */
+#define CM_GETIDLIST_FILTER_ENUMERATOR ( 0x00000001 )
+#define CM_GETIDLIST_FILTER_SERVICE ( 0x00000002 )
+#define CM_GETIDLIST_FILTER_EJECTRELATIONS ( 0x00000004 )
+#define CM_GETIDLIST_FILTER_REMOVALRELATIONS ( 0x00000008 )
+#define CM_GETIDLIST_FILTER_POWERRELATIONS ( 0x00000010 )
+#define CM_GETIDLIST_FILTER_BUSRELATIONS ( 0x00000020 )
+#define CM_GETIDLIST_DONOTGENERATE ( 0x10000040 )
+#define CM_GETIDLIST_FILTER_TRANSPORTRELATIONS ( 0x00000080 )
+#define CM_GETIDLIST_FILTER_PRESENT ( 0x00000100 )
+#define CM_GETIDLIST_FILTER_CLASS ( 0x00000200 )
+
struct PNP_HwProfInfo {
uint32_t profile_handle;
uint16_t friendly_name[80];
diff --git a/librpc/gen_ndr/srv_svcctl.c b/librpc/gen_ndr/srv_svcctl.c
index bf8689907b..cd5a0eec65 100644
--- a/librpc/gen_ndr/srv_svcctl.c
+++ b/librpc/gen_ndr/srv_svcctl.c
@@ -353,7 +353,7 @@ static bool api_svcctl_QueryServiceObjectSecurity(pipes_struct *p)
}
ZERO_STRUCT(r->out);
- r->out.buffer = talloc_zero_array(r, uint8_t, r->in.buffer_size);
+ r->out.buffer = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.buffer == NULL) {
talloc_free(r);
return false;
@@ -1047,14 +1047,14 @@ static bool api_svcctl_EnumDependentServicesW(pipes_struct *p)
}
ZERO_STRUCT(r->out);
- r->out.service_status = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.service_status = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.service_status == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -1140,14 +1140,14 @@ static bool api_svcctl_EnumServicesStatusW(pipes_struct *p)
ZERO_STRUCT(r->out);
r->out.resume_handle = r->in.resume_handle;
- r->out.service = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.service = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.service == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -1398,8 +1398,8 @@ static bool api_svcctl_QueryServiceConfigW(pipes_struct *p)
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -1484,8 +1484,8 @@ static bool api_svcctl_QueryServiceLockStatusW(pipes_struct *p)
return false;
}
- r->out.required_buf_size = talloc_zero(r, uint32_t);
- if (r->out.required_buf_size == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -2038,8 +2038,8 @@ static bool api_svcctl_EnumDependentServicesA(pipes_struct *p)
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -2125,14 +2125,14 @@ static bool api_svcctl_EnumServicesStatusA(pipes_struct *p)
ZERO_STRUCT(r->out);
r->out.resume_handle = r->in.resume_handle;
- r->out.service = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.service = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.service == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -2370,14 +2370,14 @@ static bool api_svcctl_QueryServiceConfigA(pipes_struct *p)
}
ZERO_STRUCT(r->out);
- r->out.query = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.query = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.query == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -2462,8 +2462,8 @@ static bool api_svcctl_QueryServiceLockStatusA(pipes_struct *p)
return false;
}
- r->out.required_buf_size = talloc_zero(r, uint32_t);
- if (r->out.required_buf_size == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -3069,14 +3069,14 @@ static bool api_svcctl_QueryServiceConfig2A(pipes_struct *p)
}
ZERO_STRUCT(r->out);
- r->out.buffer = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.buffer = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.buffer == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -3155,14 +3155,14 @@ static bool api_svcctl_QueryServiceConfig2W(pipes_struct *p)
}
ZERO_STRUCT(r->out);
- r->out.buffer = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.buffer = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.buffer == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -3241,14 +3241,14 @@ static bool api_svcctl_QueryServiceStatusEx(pipes_struct *p)
}
ZERO_STRUCT(r->out);
- r->out.buffer = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.buffer = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.buffer == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -3328,14 +3328,14 @@ static bool api_EnumServicesStatusExA(pipes_struct *p)
ZERO_STRUCT(r->out);
r->out.resume_handle = r->in.resume_handle;
- r->out.services = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.services = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.services == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -3427,14 +3427,14 @@ static bool api_EnumServicesStatusExW(pipes_struct *p)
ZERO_STRUCT(r->out);
r->out.resume_handle = r->in.resume_handle;
- r->out.services = talloc_zero_array(r, uint8_t, r->in.buf_size);
+ r->out.services = talloc_zero_array(r, uint8_t, r->in.offered);
if (r->out.services == NULL) {
talloc_free(r);
return false;
}
- r->out.bytes_needed = talloc_zero(r, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(r, uint32_t);
+ if (r->out.needed == NULL) {
talloc_free(r);
return false;
}
@@ -3658,7 +3658,7 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
case NDR_SVCCTL_QUERYSERVICEOBJECTSECURITY: {
struct svcctl_QueryServiceObjectSecurity *r = (struct svcctl_QueryServiceObjectSecurity *)_r;
ZERO_STRUCT(r->out);
- r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.buffer_size);
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.buffer == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -3744,13 +3744,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
case NDR_SVCCTL_ENUMDEPENDENTSERVICESW: {
struct svcctl_EnumDependentServicesW *r = (struct svcctl_EnumDependentServicesW *)_r;
ZERO_STRUCT(r->out);
- r->out.service_status = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.service_status = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.service_status == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -3767,13 +3767,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
struct svcctl_EnumServicesStatusW *r = (struct svcctl_EnumServicesStatusW *)_r;
ZERO_STRUCT(r->out);
r->out.resume_handle = r->in.resume_handle;
- r->out.service = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.service = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.service == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -3818,8 +3818,8 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -3835,8 +3835,8 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
return NT_STATUS_NO_MEMORY;
}
- r->out.required_buf_size = talloc_zero(mem_ctx, uint32_t);
- if (r->out.required_buf_size == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -3914,8 +3914,8 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -3932,13 +3932,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
struct svcctl_EnumServicesStatusA *r = (struct svcctl_EnumServicesStatusA *)_r;
ZERO_STRUCT(r->out);
r->out.resume_handle = r->in.resume_handle;
- r->out.service = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.service = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.service == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -3972,13 +3972,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
case NDR_SVCCTL_QUERYSERVICECONFIGA: {
struct svcctl_QueryServiceConfigA *r = (struct svcctl_QueryServiceConfigA *)_r;
ZERO_STRUCT(r->out);
- r->out.query = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.query = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.query == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -3994,8 +3994,8 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
return NT_STATUS_NO_MEMORY;
}
- r->out.required_buf_size = talloc_zero(mem_ctx, uint32_t);
- if (r->out.required_buf_size == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -4062,13 +4062,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
case NDR_SVCCTL_QUERYSERVICECONFIG2A: {
struct svcctl_QueryServiceConfig2A *r = (struct svcctl_QueryServiceConfig2A *)_r;
ZERO_STRUCT(r->out);
- r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.buffer == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -4079,13 +4079,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
case NDR_SVCCTL_QUERYSERVICECONFIG2W: {
struct svcctl_QueryServiceConfig2W *r = (struct svcctl_QueryServiceConfig2W *)_r;
ZERO_STRUCT(r->out);
- r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.buffer == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -4096,13 +4096,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
case NDR_SVCCTL_QUERYSERVICESTATUSEX: {
struct svcctl_QueryServiceStatusEx *r = (struct svcctl_QueryServiceStatusEx *)_r;
ZERO_STRUCT(r->out);
- r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.buffer = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.buffer == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -4114,13 +4114,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
struct EnumServicesStatusExA *r = (struct EnumServicesStatusExA *)_r;
ZERO_STRUCT(r->out);
r->out.resume_handle = r->in.resume_handle;
- r->out.services = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.services = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.services == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -4142,13 +4142,13 @@ NTSTATUS rpc_svcctl_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, c
struct EnumServicesStatusExW *r = (struct EnumServicesStatusExW *)_r;
ZERO_STRUCT(r->out);
r->out.resume_handle = r->in.resume_handle;
- r->out.services = talloc_zero_array(mem_ctx, uint8_t, r->in.buf_size);
+ r->out.services = talloc_zero_array(mem_ctx, uint8_t, r->in.offered);
if (r->out.services == NULL) {
return NT_STATUS_NO_MEMORY;
}
- r->out.bytes_needed = talloc_zero(mem_ctx, uint32_t);
- if (r->out.bytes_needed == NULL) {
+ r->out.needed = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.needed == NULL) {
return NT_STATUS_NO_MEMORY;
}
diff --git a/librpc/gen_ndr/svcctl.h b/librpc/gen_ndr/svcctl.h
index 6ba0e4f378..c0daab43d5 100644
--- a/librpc/gen_ndr/svcctl.h
+++ b/librpc/gen_ndr/svcctl.h
@@ -9,6 +9,7 @@
#ifndef _HEADER_svcctl
#define _HEADER_svcctl
+#define SVCCTL_ACCEPT_NONE ( 0x00000000 )
#define SERVICE_TYPE_KERNEL_DRIVER ( 0x01 )
#define SERVICE_TYPE_FS_DRIVER ( 0x02 )
#define SERVICE_TYPE_ADAPTER ( 0x04 )
@@ -59,7 +60,6 @@ enum svcctl_ServiceStatus
;
/* bitmap svcctl_ControlsAccepted */
-#define SVCCTL_ACCEPT_NONE ( 0x00000000 )
#define SVCCTL_ACCEPT_STOP ( 0x00000001 )
#define SVCCTL_ACCEPT_PAUSE_CONTINUE ( 0x00000002 )
#define SVCCTL_ACCEPT_SHUTDOWN ( 0x00000004 )
@@ -341,11 +341,11 @@ struct svcctl_QueryServiceObjectSecurity {
struct {
struct policy_handle *handle;/* [ref] */
uint32_t security_flags;
- uint32_t buffer_size;/* [range(0,0x40000)] */
+ uint32_t offered;/* [range(0,0x40000)] */
} in;
struct {
- uint8_t *buffer;/* [ref,size_is(buffer_size)] */
+ uint8_t *buffer;/* [ref,size_is(offered)] */
uint32_t *needed;/* [ref,range(0,0x40000)] */
WERROR result;
} out;
@@ -357,8 +357,8 @@ struct svcctl_SetServiceObjectSecurity {
struct {
struct policy_handle *handle;/* [ref] */
uint32_t security_flags;
- uint8_t *buffer;/* [ref,size_is(buffer_size)] */
- uint32_t buffer_size;
+ uint8_t *buffer;/* [ref,size_is(offered)] */
+ uint32_t offered;
} in;
struct {
@@ -478,13 +478,13 @@ struct svcctl_CreateServiceW {
struct svcctl_EnumDependentServicesW {
struct {
struct policy_handle *service;/* [ref] */
- uint32_t state;
- uint32_t buf_size;/* [range(0,0x40000)] */
+ enum svcctl_ServiceState state;
+ uint32_t offered;/* [range(0,0x40000)] */
} in;
struct {
- uint8_t *service_status;/* [ref,size_is(buf_size)] */
- uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
+ uint8_t *service_status;/* [ref,size_is(offered)] */
+ uint32_t *needed;/* [ref,range(0,0x40000)] */
uint32_t *services_returned;/* [ref,range(0,0x40000)] */
WERROR result;
} out;
@@ -497,13 +497,13 @@ struct svcctl_EnumServicesStatusW {
struct policy_handle *handle;/* [ref] */
uint32_t type;
enum svcctl_ServiceState state;
- uint32_t buf_size;/* [range(0,0x40000)] */
+ uint32_t offered;/* [range(0,0x40000)] */
uint32_t *resume_handle;/* [unique] */
} in;
struct {
- uint8_t *service;/* [ref,size_is(buf_size)] */
- uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
+ uint8_t *service;/* [ref,size_is(offered)] */
+ uint32_t *needed;/* [ref,range(0,0x40000)] */
uint32_t *services_returned;/* [ref,range(0,0x40000)] */
uint32_t *resume_handle;/* [unique] */
WERROR result;
@@ -545,12 +545,12 @@ struct svcctl_OpenServiceW {
struct svcctl_QueryServiceConfigW {
struct {
struct policy_handle *handle;/* [ref] */
- uint32_t buf_size;/* [range(0,8192)] */
+ uint32_t offered;/* [range(0,8192)] */
} in;
struct {
struct QUERY_SERVICE_CONFIG *query;/* [ref] */
- uint32_t *bytes_needed;/* [ref,range(0,8192)] */
+ uint32_t *needed;/* [ref,range(0,8192)] */
WERROR result;
} out;
@@ -560,12 +560,12 @@ struct svcctl_QueryServiceConfigW {
struct svcctl_QueryServiceLockStatusW {
struct {
struct policy_handle *handle;/* [ref] */
- uint32_t buf_size;
+ uint32_t offered;
} in;
struct {
struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */
- uint32_t *required_buf_size;/* [ref] */
+ uint32_t *needed;/* [ref] */
WERROR result;
} out;
@@ -682,13 +682,13 @@ struct svcctl_CreateServiceA {
struct svcctl_EnumDependentServicesA {
struct {
struct policy_handle *service;/* [ref] */
- uint32_t state;
- uint32_t buf_size;
+ enum svcctl_ServiceState state;
+ uint32_t offered;
} in;
struct {
struct ENUM_SERVICE_STATUSA *service_status;/* [unique] */
- uint32_t *bytes_needed;/* [ref] */
+ uint32_t *needed;/* [ref] */
uint32_t *services_returned;/* [ref] */
WERROR result;
} out;
@@ -701,13 +701,13 @@ struct svcctl_EnumServicesStatusA {
struct policy_handle *handle;/* [ref] */
uint32_t type;
enum svcctl_ServiceState state;
- uint32_t buf_size;
+ uint32_t offered;
uint32_t *resume_handle;/* [unique] */
} in;
struct {
- uint8_t *service;/* [size_is(buf_size)] */
- uint32_t *bytes_needed;/* [ref] */
+ uint8_t *service;/* [size_is(offered)] */
+ uint32_t *needed;/* [ref] */
uint32_t *services_returned;/* [ref] */
uint32_t *resume_handle;/* [unique] */
WERROR result;
@@ -748,12 +748,12 @@ struct svcctl_OpenServiceA {
struct svcctl_QueryServiceConfigA {
struct {
struct policy_handle *handle;/* [ref] */
- uint32_t buf_size;
+ uint32_t offered;
} in;
struct {
uint8_t *query;
- uint32_t *bytes_needed;/* [ref] */
+ uint32_t *needed;/* [ref] */
WERROR result;
} out;
@@ -763,12 +763,12 @@ struct svcctl_QueryServiceConfigA {
struct svcctl_QueryServiceLockStatusA {
struct {
struct policy_handle *handle;/* [ref] */
- uint32_t buf_size;
+ uint32_t offered;
} in;
struct {
struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */
- uint32_t *required_buf_size;/* [ref] */
+ uint32_t *needed;/* [ref] */
WERROR result;
} out;
@@ -869,12 +869,12 @@ struct svcctl_QueryServiceConfig2A {
struct {
struct policy_handle *handle;/* [ref] */
enum svcctl_ConfigLevel info_level;
- uint32_t buf_size;
+ uint32_t offered;
} in;
struct {
uint8_t *buffer;
- uint32_t *bytes_needed;/* [ref] */
+ uint32_t *needed;/* [ref] */
WERROR result;
} out;
@@ -885,12 +885,12 @@ struct svcctl_QueryServiceConfig2W {
struct {
struct policy_handle *handle;/* [ref] */
enum svcctl_ConfigLevel info_level;
- uint32_t buf_size;/* [range(0,8192)] */
+ uint32_t offered;/* [range(0,8192)] */
} in;
struct {
- uint8_t *buffer;/* [ref,size_is(buf_size)] */
- uint32_t *bytes_needed;/* [ref,range(0,8192)] */
+ uint8_t *buffer;/* [ref,size_is(offered)] */
+ uint32_t *needed;/* [ref,range(0,8192)] */
WERROR result;
} out;
@@ -901,12 +901,12 @@ struct svcctl_QueryServiceStatusEx {
struct {
struct policy_handle *handle;/* [ref] */
enum svcctl_StatusLevel info_level;
- uint32_t buf_size;/* [range(0,8192)] */
+ uint32_t offered;/* [range(0,8192)] */
} in;
struct {
- uint8_t *buffer;/* [ref,size_is(buf_size)] */
- uint32_t *bytes_needed;/* [ref,range(0,8192)] */
+ uint8_t *buffer;/* [ref,size_is(offered)] */
+ uint32_t *needed;/* [ref,range(0,8192)] */
WERROR result;
} out;
@@ -919,13 +919,13 @@ struct EnumServicesStatusExA {
uint32_t info_level;
uint32_t type;
enum svcctl_ServiceState state;
- uint32_t buf_size;
+ uint32_t offered;
uint32_t *resume_handle;/* [unique] */
} in;
struct {
uint8_t *services;
- uint32_t *bytes_needed;/* [ref] */
+ uint32_t *needed;/* [ref] */
uint32_t *service_returned;/* [ref] */
const char **group_name;/* [ref,charset(UTF16)] */
uint32_t *resume_handle;/* [unique] */
@@ -941,14 +941,14 @@ struct EnumServicesStatusExW {
uint32_t info_level;
uint32_t type;
enum svcctl_ServiceState state;
- uint32_t buf_size;/* [range(0,0x40000)] */
+ uint32_t offered;/* [range(0,0x40000)] */
const char *group_name;/* [unique,charset(UTF16)] */
uint32_t *resume_handle;/* [unique,range(0,0x40000)] */
} in;
struct {
- uint8_t *services;/* [ref,size_is(buf_size)] */
- uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
+ uint8_t *services;/* [ref,size_is(offered)] */
+ uint32_t *needed;/* [ref,range(0,0x40000)] */
uint32_t *service_returned;/* [ref,range(0,0x40000)] */
uint32_t *resume_handle;/* [unique,range(0,0x40000)] */
WERROR result;
diff --git a/librpc/idl/ntsvcs.idl b/librpc/idl/ntsvcs.idl
index be7fcdff13..b1a3b78c34 100644
--- a/librpc/idl/ntsvcs.idl
+++ b/librpc/idl/ntsvcs.idl
@@ -70,11 +70,26 @@ interface ntsvcs
/******************/
/* Function: 0x0a */
+ const int CM_GETIDLIST_FILTER_NONE = 0x00000000;
+
+ typedef [bitmap32bit] bitmap {
+ CM_GETIDLIST_FILTER_ENUMERATOR = 0x00000001,
+ CM_GETIDLIST_FILTER_SERVICE = 0x00000002,
+ CM_GETIDLIST_FILTER_EJECTRELATIONS = 0x00000004,
+ CM_GETIDLIST_FILTER_REMOVALRELATIONS = 0x00000008,
+ CM_GETIDLIST_FILTER_POWERRELATIONS = 0x00000010,
+ CM_GETIDLIST_FILTER_BUSRELATIONS = 0x00000020,
+ CM_GETIDLIST_DONOTGENERATE = 0x10000040,
+ CM_GETIDLIST_FILTER_TRANSPORTRELATIONS = 0x00000080,
+ CM_GETIDLIST_FILTER_PRESENT = 0x00000100,
+ CM_GETIDLIST_FILTER_CLASS = 0x00000200
+ } PNP_GetIdListFlags;
+
WERROR PNP_GetDeviceList(
[in,unique] [string,charset(UTF16)] uint16 *filter,
[out,ref] [size_is(*length),length_is(*length)] uint16 *buffer,
[in,out,ref] uint32 *length,
- [in] uint32 flags
+ [in] PNP_GetIdListFlags flags
);
/******************/
@@ -83,7 +98,7 @@ interface ntsvcs
WERROR PNP_GetDeviceListSize(
[in,unique] [string,charset(UTF16)] uint16 *devicename,
[out,ref] uint32 *size,
- [in] uint32 flags
+ [in] PNP_GetIdListFlags flags
);
/******************/
diff --git a/librpc/idl/svcctl.idl b/librpc/idl/svcctl.idl
index 3f990298ad..a5685e8ae3 100644
--- a/librpc/idl/svcctl.idl
+++ b/librpc/idl/svcctl.idl
@@ -30,8 +30,9 @@ import "misc.idl", "security.idl";
SVCCTL_PAUSED = 0x00000007
} svcctl_ServiceStatus;
+ const int SVCCTL_ACCEPT_NONE = 0x00000000;
+
typedef [bitmap32bit] bitmap {
- SVCCTL_ACCEPT_NONE = 0x00000000,
SVCCTL_ACCEPT_STOP = 0x00000001,
SVCCTL_ACCEPT_PAUSE_CONTINUE = 0x00000002,
SVCCTL_ACCEPT_SHUTDOWN = 0x00000004,
@@ -155,9 +156,9 @@ import "misc.idl", "security.idl";
/* Function 0x04 */
WERROR svcctl_QueryServiceObjectSecurity(
[in] policy_handle *handle,
- [in] uint32 security_flags,
- [out,ref,size_is(buffer_size)] uint8 *buffer,
- [in,range(0,0x40000)] uint32 buffer_size,
+ [in] security_secinfo security_flags,
+ [out,ref,size_is(offered)] uint8 *buffer,
+ [in,range(0,0x40000)] uint32 offered,
[out,ref,range(0,0x40000)] uint32 *needed
);
@@ -165,9 +166,9 @@ import "misc.idl", "security.idl";
/* Function 0x05 */
WERROR svcctl_SetServiceObjectSecurity(
[in] policy_handle *handle,
- [in] uint32 security_flags,
- [in,ref,size_is(buffer_size)] uint8 *buffer,
- [in] uint32 buffer_size
+ [in] security_secinfo security_flags,
+ [in,ref,size_is(offered)] uint8 *buffer,
+ [in] uint32 offered
);
/*****************/
@@ -259,10 +260,10 @@ import "misc.idl", "security.idl";
/* Function 0x0d */
WERROR svcctl_EnumDependentServicesW(
[in,ref] policy_handle *service,
- [in] uint32 state,
- [out,ref,size_is(buf_size)] uint8 *service_status,
- [in,range(0,0x40000)] uint32 buf_size,
- [out,ref,range(0,0x40000)] uint32 *bytes_needed,
+ [in] svcctl_ServiceState state,
+ [out,ref,size_is(offered)] uint8 *service_status,
+ [in,range(0,0x40000)] uint32 offered,
+ [out,ref,range(0,0x40000)] uint32 *needed,
[out,ref,range(0,0x40000)] uint32 *services_returned
);
@@ -279,9 +280,9 @@ import "misc.idl", "security.idl";
[in,ref] policy_handle *handle,
[in] uint32 type,
[in] svcctl_ServiceState state,
- [out,ref,size_is(buf_size)] uint8 *service,
- [in] [range(0,0x40000)] uint32 buf_size,
- [out,ref] [range(0,0x40000)] uint32 *bytes_needed,
+ [out,ref,size_is(offered)] uint8 *service,
+ [in] [range(0,0x40000)] uint32 offered,
+ [out,ref] [range(0,0x40000)] uint32 *needed,
[out,ref] [range(0,0x40000)] uint32 *services_returned,
[in,out,unique] uint32 *resume_handle
);
@@ -388,17 +389,17 @@ import "misc.idl", "security.idl";
WERROR svcctl_QueryServiceConfigW(
[in,ref] policy_handle *handle,
[out] QUERY_SERVICE_CONFIG *query,
- [in] [range(0,8192)] uint32 buf_size,
- [out,ref] [range(0,8192)] uint32 *bytes_needed
+ [in] [range(0,8192)] uint32 offered,
+ [out,ref] [range(0,8192)] uint32 *needed
);
/*****************/
/* Function 0x12 */
WERROR svcctl_QueryServiceLockStatusW(
[in,ref] policy_handle *handle,
- [in] uint32 buf_size,
+ [in] uint32 offered,
[out,ref] SERVICE_LOCK_STATUS *lock_status,
- [out,ref] uint32 *required_buf_size
+ [out,ref] uint32 *needed
);
/*****************/
@@ -474,10 +475,10 @@ import "misc.idl", "security.idl";
/* Function 0x19 */
WERROR svcctl_EnumDependentServicesA(
[in,ref] policy_handle *service,
- [in] uint32 state,
+ [in] svcctl_ServiceState state,
[out,unique] ENUM_SERVICE_STATUSA *service_status,
- [in] uint32 buf_size,
- [out,ref] uint32 *bytes_needed,
+ [in] uint32 offered,
+ [out,ref] uint32 *needed,
[out,ref] uint32 *services_returned
);
@@ -487,9 +488,9 @@ import "misc.idl", "security.idl";
[in,ref] policy_handle *handle,
[in] uint32 type,
[in] svcctl_ServiceState state,
- [in] uint32 buf_size,
- [out,size_is(buf_size)] uint8 service[*],
- [out,ref] uint32 *bytes_needed,
+ [in] uint32 offered,
+ [out,size_is(offered)] uint8 service[*],
+ [out,ref] uint32 *needed,
[out,ref] uint32 *services_returned,
[in,out,unique] uint32 *resume_handle
);
@@ -515,18 +516,18 @@ import "misc.idl", "security.idl";
/* Function 0x1d */
WERROR svcctl_QueryServiceConfigA(
[in,ref] policy_handle *handle,
- [out] uint8 query[buf_size], /*QUERYU_SERVICE_CONFIG */
- [in] uint32 buf_size,
- [out,ref] uint32 *bytes_needed
+ [out] uint8 query[offered], /*QUERYU_SERVICE_CONFIG */
+ [in] uint32 offered,
+ [out,ref] uint32 *needed
);
/*****************/
/* Function 0x1e */
WERROR svcctl_QueryServiceLockStatusA(
[in,ref] policy_handle *handle,
- [in] uint32 buf_size,
+ [in] uint32 offered,
[out,ref] SERVICE_LOCK_STATUS *lock_status,
- [out,ref] uint32 *required_buf_size
+ [out,ref] uint32 *needed
);
/*****************/
@@ -616,9 +617,9 @@ import "misc.idl", "security.idl";
WERROR svcctl_QueryServiceConfig2A(
[in,ref] policy_handle *handle,
[in] svcctl_ConfigLevel info_level,
- [out] uint8 buffer[buf_size],
- [in] uint32 buf_size,
- [out,ref] uint32 *bytes_needed
+ [out] uint8 buffer[offered],
+ [in] uint32 offered,
+ [out,ref] uint32 *needed
);
/*****************/
@@ -626,9 +627,9 @@ import "misc.idl", "security.idl";
WERROR svcctl_QueryServiceConfig2W(
[in,ref] policy_handle *handle,
[in] svcctl_ConfigLevel info_level,
- [out,ref,size_is(buf_size)] uint8 *buffer,
- [in] [range(0,8192)] uint32 buf_size,
- [out,ref] [range(0,8192)] uint32 *bytes_needed
+ [out,ref,size_is(offered)] uint8 *buffer,
+ [in] [range(0,8192)] uint32 offered,
+ [out,ref] [range(0,8192)] uint32 *needed
);
/*****************/
@@ -641,9 +642,9 @@ import "misc.idl", "security.idl";
WERROR svcctl_QueryServiceStatusEx(
[in,ref] policy_handle *handle,
[in] svcctl_StatusLevel info_level,
- [out,ref,size_is(buf_size)] uint8 *buffer,
- [in] [range(0,8192)] uint32 buf_size,
- [out,ref] [range(0,8192)] uint32 *bytes_needed
+ [out,ref,size_is(offered)] uint8 *buffer,
+ [in] [range(0,8192)] uint32 offered,
+ [out,ref] [range(0,8192)] uint32 *needed
);
/*****************/
@@ -653,9 +654,9 @@ import "misc.idl", "security.idl";
[in] uint32 info_level,
[in] uint32 type,
[in] svcctl_ServiceState state,
- [out] uint8 services[buf_size],
- [in] uint32 buf_size,
- [out,ref] uint32 *bytes_needed,
+ [out] uint8 services[offered],
+ [in] uint32 offered,
+ [out,ref] uint32 *needed,
[out,ref] uint32 *service_returned,
[in,out,unique] uint32 *resume_handle,
[out,ref] [string,charset(UTF16)] uint16 **group_name
@@ -668,9 +669,9 @@ import "misc.idl", "security.idl";
[in] uint32 info_level,
[in] uint32 type,
[in] svcctl_ServiceState state,
- [out,ref,size_is(buf_size)] uint8 *services,
- [in] [range(0,0x40000)] uint32 buf_size,
- [out,ref] [range(0,0x40000)] uint32 *bytes_needed,
+ [out,ref,size_is(offered)] uint8 *services,
+ [in] [range(0,0x40000)] uint32 offered,
+ [out,ref] [range(0,0x40000)] uint32 *needed,
[out,ref] [range(0,0x40000)] uint32 *service_returned,
[in,out,unique] [range(0,0x40000)] uint32 *resume_handle,
[in,unique] [string,charset(UTF16)] uint16 *group_name
diff --git a/nsswitch/pam_winbind.c b/nsswitch/pam_winbind.c
index 62d72c291b..0d33f59a23 100644
--- a/nsswitch/pam_winbind.c
+++ b/nsswitch/pam_winbind.c
@@ -2318,6 +2318,8 @@ static int _pam_delete_cred(pam_handle_t *pamh, int flags,
const char *user;
wbcErr wbc_status = WBC_ERR_SUCCESS;
+ ZERO_STRUCT(logoff);
+
retval = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx);
if (retval) {
goto out;
@@ -2365,8 +2367,6 @@ static int _pam_delete_cred(pam_handle_t *pamh, int flags,
wbc_flags = WBFLAG_PAM_KRB5 |
WBFLAG_PAM_CONTACT_TRUSTDOM;
- ZERO_STRUCT(logoff);
-
logoff.username = user;
if (ccname) {
@@ -2406,6 +2406,7 @@ static int _pam_delete_cred(pam_handle_t *pamh, int flags,
user, "wbcLogoffUser");
wbcFreeMemory(error);
wbcFreeMemory(logoff.blobs);
+ logoff.blobs = NULL;
if (!WBC_ERROR_IS_OK(wbc_status)) {
_pam_log(ctx, LOG_INFO,
diff --git a/packaging/RHEL/samba.spec.tmpl b/packaging/RHEL/samba.spec.tmpl
index 94794ccfd0..d5e549bb2c 100644
--- a/packaging/RHEL/samba.spec.tmpl
+++ b/packaging/RHEL/samba.spec.tmpl
@@ -157,7 +157,7 @@ CC="$CC" CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
--without-smbwrapper \
--with-pam \
--with-quotas \
- --with-shared-modules=idmap_rid,idmap_ad \
+ --with-shared-modules=idmap_rid,idmap_ad,idmap_hash,idmap_adex \
--with-syslog \
--with-utmp \
--with-dnsupdate
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 0b176d601c..a36721406c 100644
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -521,6 +521,7 @@ sub provision($$$$$$)
open(PASSWD, ">$nss_wrapper_passwd") or die("Unable to open $nss_wrapper_passwd");
print PASSWD "nobody:x:65534:65533:nobody gecos:$prefix_abs:/bin/false
+root:x:65533:65532:root gecos:$prefix_abs:/bin/false
$unix_name:x:$unix_uid:$unix_gids[0]:$unix_name gecos:$prefix_abs:/bin/false
";
close(PASSWD);
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 9a97d8de64..80ebf0c84b 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -363,8 +363,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
lib/messages.o librpc/gen_ndr/ndr_messaging.o lib/messages_local.o \
lib/messages_ctdbd.o lib/packet.o lib/ctdbd_conn.o \
lib/interfaces.o lib/memcache.o \
- lib/util_transfer_file.o ../lib/async_req/async_req.o \
- ../lib/async_req/async_sock.o ../lib/async_req/async_req_ntstatus.o \
+ lib/util_transfer_file.o ../lib/async_req/async_sock.o \
$(TDB_LIB_OBJ) \
$(VERSION_OBJ) lib/charcnv.o lib/debug.o lib/fault.o \
lib/interface.o lib/pidfile.o \
@@ -466,8 +465,6 @@ LIBCLI_LDAP_NDR_OBJ = ../libcli/ldap/ldap_ndr.o
LIBTSOCKET_OBJ = ../lib/tsocket/tsocket.o \
../lib/tsocket/tsocket_helpers.o \
../lib/tsocket/tsocket_bsd.o \
- ../lib/tsocket/tsocket_recvfrom.o \
- ../lib/tsocket/tsocket_sendto.o \
../lib/tsocket/tsocket_connect.o \
../lib/tsocket/tsocket_writev.o \
../lib/tsocket/tsocket_readv.o
@@ -570,7 +567,7 @@ REG_FULL_OBJ = $(REG_SMBCONF_OBJ) \
registry/reg_perfcount.o \
registry/reg_util_legacy.o
-LIB_EVENTLOG_OBJ = rpc_server/srv_eventlog_lib.o
+LIB_EVENTLOG_OBJ = lib/eventlog/eventlog.o
RPC_LSA_OBJ = rpc_server/srv_lsa_nt.o ../librpc/gen_ndr/srv_lsa.o
diff --git a/source3/include/ads_protos.h b/source3/include/ads_protos.h
index a372010b79..502eaa82d9 100644
--- a/source3/include/ads_protos.h
+++ b/source3/include/ads_protos.h
@@ -3,7 +3,7 @@
*/
void ads_msgfree(ADS_STRUCT *ads, LDAPMessage *msg);
-char *ads_get_dn(ADS_STRUCT *ads, LDAPMessage *msg);
+char *ads_get_dn(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, LDAPMessage *msg);
char *ads_get_dn_canonical(ADS_STRUCT *ads, LDAPMessage *msg);
char *ads_pull_string(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, LDAPMessage *msg,
diff --git a/source3/include/async_smb.h b/source3/include/async_smb.h
index 2ac1101a1e..87ddca6677 100644
--- a/source3/include/async_smb.h
+++ b/source3/include/async_smb.h
@@ -22,123 +22,11 @@
#include "includes.h"
-/**
- * struct cli_request is the state holder for an async client request we sent
- * to the server. It can consist of more than one struct async_req that we
- * have to server if the application did a cli_chain_cork() and
- * cli_chain_uncork()
- */
-
-struct cli_request {
- /**
- * "prev" and "next" form the doubly linked list in
- * cli_state->outstanding_requests
- */
- struct cli_request *prev, *next;
-
- /**
- * num_async: How many chained requests do we serve?
- */
- int num_async;
-
- /**
- * async: This is the list of chained requests that were queued up by
- * cli_request_chain before we sent out this request
- */
- struct async_req **async;
-
- /**
- * The client connection for this request
- */
- struct cli_state *cli;
-
- /**
- * The enc_state to decrypt the reply
- */
- struct smb_trans_enc_state *enc_state;
-
- /**
- * The mid we used for this request. Mainly used to demultiplex on
- * receiving replies.
- */
- uint16_t mid;
-
- uint32_t seqnum;
-
- /**
- * The bytes we have to ship to the server
- */
- uint8_t *outbuf;
-
- /**
- * How much from "outbuf" did we already send
- */
- size_t sent;
-
- /**
- * The reply comes in here. Its intended size is implicit by
- * smb_len(), its current size can be read via talloc_get_size()
- */
- char *inbuf;
-
- /**
- * Specific requests might add stuff here. Maybe convert this to a
- * private_pointer at some point.
- */
- union {
- struct {
- off_t ofs;
- size_t size;
- ssize_t received;
- uint8_t *rcvbuf;
- } read;
- struct {
- DATA_BLOB data;
- uint16_t num_echos;
- } echo;
- } data;
-
- /**
- * For requests that don't follow the strict request/reply pattern
- * such as the transaction request family and echo requests it is
- * necessary to break the standard procedure in
- * handle_incoming_pdu(). For a simple example look at
- * cli_echo_recv_helper().
- */
- struct {
- void (*fn)(struct async_req *req);
- void *priv;
- } recv_helper;
-};
-
-/*
- * Ship a new smb request to the server
- */
-
-struct async_req *cli_request_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- uint8_t smb_command,
- uint8_t additional_flags,
- uint8_t wct, const uint16_t *vwv,
- size_t bytes_alignment,
- uint32_t num_bytes, const uint8_t *bytes);
-
-uint16_t cli_wct_ofs(const struct cli_state *cli);
-
-bool cli_chain_cork(struct cli_state *cli, struct event_context *ev,
- size_t size_hint);
-void cli_chain_uncork(struct cli_state *cli);
-bool cli_in_chain(struct cli_state *cli);
bool smb_splice_chain(uint8_t **poutbuf, uint8_t smb_command,
uint8_t wct, const uint16_t *vwv,
size_t bytes_alignment,
uint32_t num_bytes, const uint8_t *bytes);
-NTSTATUS cli_pull_reply(struct async_req *req,
- uint8_t *pwct, uint16_t **pvwv,
- uint16_t *pnum_bytes, uint8_t **pbytes);
-
/*
* Fetch an error out of a NBT packet
*/
@@ -151,4 +39,38 @@ NTSTATUS cli_pull_error(char *buf);
void cli_set_error(struct cli_state *cli, NTSTATUS status);
+struct tevent_req *cli_smb_req_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ uint8_t smb_command,
+ uint8_t additional_flags,
+ uint8_t wct, uint16_t *vwv,
+ int iov_count,
+ struct iovec *bytes_iov);
+bool cli_smb_req_send(struct tevent_req *req);
+size_t cli_smb_wct_ofs(struct tevent_req **reqs, int num_reqs);
+bool cli_smb_chain_send(struct tevent_req **reqs, int num_reqs);
+uint8_t *cli_smb_inbuf(struct tevent_req *req);
+bool cli_has_async_calls(struct cli_state *cli);
+void cli_smb_req_unset_pending(struct tevent_req *req);
+bool cli_smb_req_set_pending(struct tevent_req *req);
+uint16_t cli_smb_req_mid(struct tevent_req *req);
+void cli_smb_req_set_mid(struct tevent_req *req, uint16_t mid);
+struct tevent_req *cli_smb_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli,
+ uint8_t smb_command, uint8_t additional_flags,
+ uint8_t wct, uint16_t *vwv,
+ uint32_t num_bytes,
+ const uint8_t *bytes);
+NTSTATUS cli_smb_recv(struct tevent_req *req, uint8_t min_wct,
+ uint8_t *pwct, uint16_t **pvwv,
+ uint32_t *pnum_bytes, uint8_t **pbytes);
+
+struct tevent_req *cli_smb_oplock_break_waiter_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli);
+NTSTATUS cli_smb_oplock_break_waiter_recv(struct tevent_req *req,
+ uint16_t *pfnum,
+ uint8_t *plevel);
+
#endif
diff --git a/source3/include/client.h b/source3/include/client.h
index 73a1d7b554..c314c9c6a9 100644
--- a/source3/include/client.h
+++ b/source3/include/client.h
@@ -264,33 +264,11 @@ struct cli_state {
bool force_dos_errors;
bool case_sensitive; /* False by default. */
- /**
- * fd_event is around while we have async requests outstanding or are
- * building a chained request.
- *
- * (fd_event!=NULL) &&
- * ((outstanding_request!=NULL)||(chain_accumulator!=NULL))
- *
- * should always be true, as well as the reverse: If both cli_request
- * pointers are NULL, no fd_event is around.
- */
- struct fd_event *fd_event;
- char *evt_inbuf;
-
- /**
- * A linked list of requests that are waiting for a reply
- */
- struct cli_request *outstanding_requests;
-
- /**
- * The place to build up the list of chained requests. In CIFS, a
- * single cli_request corresponds to a MID and can serve more than one
- * chained async_req.
- */
- struct cli_request *chain_accumulator;
-
/* Where (if anywhere) this is mounted under DFS. */
char *dfs_mountpoint;
+
+ struct tevent_queue *outgoing;
+ struct tevent_req **pending;
};
typedef struct file_info {
@@ -311,5 +289,7 @@ typedef struct file_info {
#define CLI_FULL_CONNECTION_USE_KERBEROS 0x0002
#define CLI_FULL_CONNECTION_ANONYMOUS_FALLBACK 0x0004
#define CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS 0x0008
+#define CLI_FULL_CONNECTION_OPLOCKS 0x0010
+#define CLI_FULL_CONNECTION_LEVEL_II_OPLOCKS 0x0020
#endif /* _CLIENT_H */
diff --git a/source3/include/includes.h b/source3/include/includes.h
index c883e17713..433818d9ef 100644
--- a/source3/include/includes.h
+++ b/source3/include/includes.h
@@ -646,7 +646,6 @@ struct smb_iconv_convenience *lp_iconv_convenience(void *lp_ctx);
#include "ctdbd_conn.h"
#include "../lib/util/talloc_stack.h"
#include "memcache.h"
-#include "../lib/async_req/async_req_ntstatus.h"
#include "async_smb.h"
#include "../lib/async_req/async_sock.h"
#include "services.h"
@@ -901,9 +900,10 @@ krb5_error_code smb_krb5_parse_name(krb5_context context,
const char *name, /* in unix charset */
krb5_principal *principal);
-krb5_error_code smb_krb5_unparse_name(krb5_context context,
- krb5_const_principal principal,
- char **unix_name);
+krb5_error_code smb_krb5_unparse_name(TALLOC_CTX *mem_ctx,
+ krb5_context context,
+ krb5_const_principal principal,
+ char **unix_name);
#ifndef HAVE_KRB5_SET_REAL_TIME
krb5_error_code krb5_set_real_time(krb5_context context, int32_t seconds, int32_t microseconds);
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 0a2a8de4a9..678f087374 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -746,7 +746,6 @@ void smbldap_free_struct(struct smbldap_state **ldap_state) ;
NTSTATUS smbldap_init(TALLOC_CTX *mem_ctx, struct event_context *event_ctx,
const char *location,
struct smbldap_state **smbldap_state);
-char *smbldap_get_dn(LDAP *ld, LDAPMessage *entry);
bool smbldap_has_control(LDAP *ld, const char *control);
bool smbldap_has_extension(LDAP *ld, const char *extension);
bool smbldap_has_naming_context(LDAP *ld, const char *naming_context);
@@ -1421,6 +1420,11 @@ int create_pipe_sock(const char *socket_dir,
mode_t dir_perms);
const char *get_mydnsfullname(void);
bool is_myname_or_ipaddr(const char *s);
+struct tevent_req *read_smb_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ int fd);
+ssize_t read_smb_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ uint8_t **pbuf, int *perrno);
/* The following definitions come from lib/util_str.c */
@@ -1556,13 +1560,8 @@ int rpcstr_pull_talloc(TALLOC_CTX *ctx,
void *src,
int src_len,
int flags);
-int rpcstr_pull_unistr2_fstring(char *dest, UNISTR2 *src);
-char *rpcstr_pull_unistr2_talloc(TALLOC_CTX *ctx, const UNISTR2 *src);
int rpcstr_push(void *dest, const char *src, size_t dest_len, int flags);
int rpcstr_push_talloc(TALLOC_CTX *ctx, smb_ucs2_t **dest, const char *src);
-void unistr2_to_ascii(char *dest, const UNISTR2 *str, size_t maxlen);
-char *unistr2_to_ascii_talloc(TALLOC_CTX *ctx, const UNISTR2 *str);
-const char *unistr2_static(const UNISTR2 *str);
smb_ucs2_t toupper_w(smb_ucs2_t val);
smb_ucs2_t tolower_w( smb_ucs2_t val );
bool islower_w(smb_ucs2_t c);
@@ -1596,9 +1595,6 @@ int strcmp_wa(const smb_ucs2_t *a, const char *b);
int strncmp_wa(const smb_ucs2_t *a, const char *b, size_t len);
smb_ucs2_t *strpbrk_wa(const smb_ucs2_t *s, const char *p);
smb_ucs2_t *strstr_wa(const smb_ucs2_t *s, const char *ins);
-int unistrlen(uint16 *s);
-int unistrcpy(uint16 *dst, uint16 *src);
-UNISTR2* ucs2_to_unistr2(TALLOC_CTX *ctx, UNISTR2* dst, smb_ucs2_t* src);
int toupper_ascii(int c);
int tolower_ascii(int c);
int isupper_ascii(int c);
@@ -2299,26 +2295,26 @@ NTSTATUS cli_session_setup(struct cli_state *cli,
const char *pass, int passlen,
const char *ntpass, int ntpasslen,
const char *workgroup);
-struct async_req *cli_session_setup_guest_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli);
-NTSTATUS cli_session_setup_guest_recv(struct async_req *req);
+struct tevent_req *cli_session_setup_guest_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli);
+NTSTATUS cli_session_setup_guest_recv(struct tevent_req *req);
bool cli_ulogoff(struct cli_state *cli);
-struct async_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- const char *share, const char *dev,
- const char *pass, int passlen);
-NTSTATUS cli_tcon_andx_recv(struct async_req *req);
+struct tevent_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const char *share, const char *dev,
+ const char *pass, int passlen);
+NTSTATUS cli_tcon_andx_recv(struct tevent_req *req);
NTSTATUS cli_tcon_andx(struct cli_state *cli, const char *share,
const char *dev, const char *pass, int passlen);
bool cli_tdis(struct cli_state *cli);
void cli_negprot_sendsync(struct cli_state *cli);
NTSTATUS cli_negprot(struct cli_state *cli);
-struct async_req *cli_negprot_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli);
-NTSTATUS cli_negprot_recv(struct async_req *req);
+struct tevent_req *cli_negprot_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli);
+NTSTATUS cli_negprot_recv(struct tevent_req *req);
bool cli_session_request(struct cli_state *cli,
struct nmb_name *calling, struct nmb_name *called);
NTSTATUS cli_connect(struct cli_state *cli,
@@ -2440,10 +2436,10 @@ void cli_sockopt(struct cli_state *cli, const char *options);
uint16 cli_setpid(struct cli_state *cli, uint16 pid);
bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive);
bool cli_send_keepalive(struct cli_state *cli);
-struct async_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli, uint16_t num_echos,
- DATA_BLOB data);
-NTSTATUS cli_echo_recv(struct async_req *req);
+struct tevent_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli, uint16_t num_echos,
+ DATA_BLOB data);
+NTSTATUS cli_echo_recv(struct tevent_req *req);
NTSTATUS cli_echo(struct cli_state *cli, uint16_t num_echos, DATA_BLOB data);
bool cli_ucs2(struct cli_state *cli);
bool is_andx_req(uint8_t cmd);
@@ -2484,18 +2480,18 @@ int cli_nt_create_full(struct cli_state *cli, const char *fname,
uint32 FileAttributes, uint32 ShareAccess,
uint32 CreateDisposition, uint32 CreateOptions,
uint8 SecuityFlags);
-struct async_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- const char *fname,
- uint32_t CreatFlags,
- uint32_t DesiredAccess,
- uint32_t FileAttributes,
- uint32_t ShareAccess,
- uint32_t CreateDisposition,
- uint32_t CreateOptions,
- uint8_t SecurityFlags);
-NTSTATUS cli_ntcreate_recv(struct async_req *req, uint16_t *pfnum);
+struct tevent_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const char *fname,
+ uint32_t CreatFlags,
+ uint32_t DesiredAccess,
+ uint32_t FileAttributes,
+ uint32_t ShareAccess,
+ uint32_t CreateDisposition,
+ uint32_t CreateOptions,
+ uint8_t SecurityFlags);
+NTSTATUS cli_ntcreate_recv(struct tevent_req *req, uint16_t *pfnum);
NTSTATUS cli_ntcreate(struct cli_state *cli,
const char *fname,
uint32_t CreatFlags,
@@ -2509,14 +2505,24 @@ NTSTATUS cli_ntcreate(struct cli_state *cli,
int cli_nt_create(struct cli_state *cli, const char *fname, uint32 DesiredAccess);
uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2, const char *str,
size_t str_len, size_t *pconverted_size);
-struct async_req *cli_open_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli,
- const char *fname, int flags, int share_mode);
-NTSTATUS cli_open_recv(struct async_req *req, int *fnum);
+struct tevent_req *cli_open_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, const char *fname,
+ int flags, int share_mode,
+ struct tevent_req **psmbreq);
+struct tevent_req *cli_open_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli, const char *fname,
+ int flags, int share_mode);
+NTSTATUS cli_open_recv(struct tevent_req *req, int *fnum);
int cli_open(struct cli_state *cli, const char *fname, int flags, int share_mode);
-struct async_req *cli_close_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli, int fnum);
-NTSTATUS cli_close_recv(struct async_req *req);
+struct tevent_req *cli_close_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, int fnum,
+ struct tevent_req **psubreq);
+struct tevent_req *cli_close_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, int fnum);
+NTSTATUS cli_close_recv(struct tevent_req *req);
bool cli_close(struct cli_state *cli, int fnum);
bool cli_ftruncate(struct cli_state *cli, int fnum, uint64_t size);
NTSTATUS cli_locktype(struct cli_state *cli, int fnum,
@@ -2630,6 +2636,11 @@ bool cli_message_end(struct cli_state *cli, int grp);
/* The following definitions come from libsmb/clioplock.c */
+struct tevent_req *cli_oplock_ack_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct cli_state *cli,
+ uint16_t fnum, uint8_t level);
+NTSTATUS cli_oplock_ack_recv(struct tevent_req *req);
bool cli_oplock_ack(struct cli_state *cli, int fnum, unsigned char level);
void cli_oplock_handler(struct cli_state *cli,
bool (*handler)(struct cli_state *, int, unsigned char));
@@ -2757,21 +2768,26 @@ int cli_NetConnectionEnum(struct cli_state *cli, const char *qualifier,
/* The following definitions come from libsmb/clireadwrite.c */
-struct async_req *cli_read_andx_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli, int fnum,
- off_t offset, size_t size);
-NTSTATUS cli_read_andx_recv(struct async_req *req, ssize_t *received,
+struct tevent_req *cli_read_andx_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, int fnum,
+ off_t offset, size_t size,
+ struct tevent_req **psmbreq);
+struct tevent_req *cli_read_andx_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, int fnum,
+ off_t offset, size_t size);
+NTSTATUS cli_read_andx_recv(struct tevent_req *req, ssize_t *received,
uint8_t **rcvbuf);
-struct async_req *cli_pull_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- uint16_t fnum, off_t start_offset,
- SMB_OFF_T size, size_t window_size,
- NTSTATUS (*sink)(char *buf, size_t n,
- void *priv),
- void *priv);
-NTSTATUS cli_pull_recv(struct async_req *req, SMB_OFF_T *received);
+struct tevent_req *cli_pull_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ uint16_t fnum, off_t start_offset,
+ SMB_OFF_T size, size_t window_size,
+ NTSTATUS (*sink)(char *buf, size_t n,
+ void *priv),
+ void *priv);
+NTSTATUS cli_pull_recv(struct tevent_req *req, SMB_OFF_T *received);
NTSTATUS cli_pull(struct cli_state *cli, uint16_t fnum,
off_t start_offset, SMB_OFF_T size, size_t window_size,
NTSTATUS (*sink)(char *buf, size_t n, void *priv),
@@ -2784,21 +2800,29 @@ ssize_t cli_write(struct cli_state *cli,
const char *buf, off_t offset, size_t size);
ssize_t cli_smbwrite(struct cli_state *cli,
int fnum, char *buf, off_t offset, size_t size1);
-struct async_req *cli_write_andx_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli, uint16_t fnum,
- uint16_t mode, const uint8_t *buf,
- off_t offset, size_t size);
-NTSTATUS cli_write_andx_recv(struct async_req *req, size_t *pwritten);
-
-struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli,
- uint16_t fnum, uint16_t mode,
- off_t start_offset, size_t window_size,
- size_t (*source)(uint8_t *buf, size_t n,
- void *priv),
- void *priv);
-NTSTATUS cli_push_recv(struct async_req *req);
+struct tevent_req *cli_write_andx_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, uint16_t fnum,
+ uint16_t mode, const uint8_t *buf,
+ off_t offset, size_t size,
+ struct tevent_req **reqs_before,
+ int num_reqs_before,
+ struct tevent_req **psmbreq);
+struct tevent_req *cli_write_andx_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, uint16_t fnum,
+ uint16_t mode, const uint8_t *buf,
+ off_t offset, size_t size);
+NTSTATUS cli_write_andx_recv(struct tevent_req *req, size_t *pwritten);
+
+struct tevent_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli,
+ uint16_t fnum, uint16_t mode,
+ off_t start_offset, size_t window_size,
+ size_t (*source)(uint8_t *buf, size_t n,
+ void *priv),
+ void *priv);
+NTSTATUS cli_push_recv(struct tevent_req *req);
NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
off_t start_offset, size_t window_size,
size_t (*source)(uint8_t *buf, size_t n, void *priv),
@@ -2885,14 +2909,14 @@ bool cli_send_nt_trans(struct cli_state *cli,
bool cli_receive_nt_trans(struct cli_state *cli,
char **param, unsigned int *param_len,
char **data, unsigned int *data_len);
-struct async_req *cli_trans_send(
+struct tevent_req *cli_trans_send(
TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli, uint8_t trans_cmd,
+ struct cli_state *cli, uint8_t cmd,
const char *pipe_name, uint16_t fid, uint16_t function, int flags,
uint16_t *setup, uint8_t num_setup, uint8_t max_setup,
uint8_t *param, uint32_t num_param, uint32_t max_param,
uint8_t *data, uint32_t num_data, uint32_t max_data);
-NTSTATUS cli_trans_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+NTSTATUS cli_trans_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
uint16_t **setup, uint8_t *num_setup,
uint8_t **param, uint32_t *num_param,
uint8_t **data, uint32_t *num_data);
@@ -5367,11 +5391,11 @@ NTSTATUS rpc_pipe_open_local(TALLOC_CTX *mem_ctx,
/* The following definitions come from rpc_client/rpc_transport_np.c */
-struct async_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- const struct ndr_syntax_id *abstract_syntax);
-NTSTATUS rpc_transport_np_init_recv(struct async_req *req,
+struct tevent_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const struct ndr_syntax_id *abstract_syntax);
+NTSTATUS rpc_transport_np_init_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct rpc_cli_transport **presult);
NTSTATUS rpc_transport_np_init(TALLOC_CTX *mem_ctx, struct cli_state *cli,
@@ -5381,13 +5405,13 @@ struct cli_state *rpc_pipe_np_smb_conn(struct rpc_pipe_client *p);
/* The following definitions come from rpc_client/rpc_transport_smbd.c */
-struct async_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- void (*stdout_callback)(char *buf,
- size_t len,
- void *priv),
- void *priv);
-NTSTATUS rpc_cli_smbd_conn_init_recv(struct async_req *req,
+struct tevent_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ void (*stdout_callback)(char *buf,
+ size_t len,
+ void *priv),
+ void *priv);
+NTSTATUS rpc_cli_smbd_conn_init_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct rpc_cli_smbd_conn **pconn);
NTSTATUS rpc_cli_smbd_conn_init(TALLOC_CTX *mem_ctx,
@@ -5397,11 +5421,11 @@ NTSTATUS rpc_cli_smbd_conn_init(TALLOC_CTX *mem_ctx,
void *priv),
void *priv);
-struct async_req *rpc_transport_smbd_init_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct rpc_cli_smbd_conn *conn,
- const struct ndr_syntax_id *abstract_syntax);
-NTSTATUS rpc_transport_smbd_init_recv(struct async_req *req,
+struct tevent_req *rpc_transport_smbd_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct rpc_cli_smbd_conn *conn,
+ const struct ndr_syntax_id *abstract_syntax);
+NTSTATUS rpc_transport_smbd_init_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct rpc_cli_transport **presult);
NTSTATUS rpc_transport_smbd_init(TALLOC_CTX *mem_ctx,
@@ -5756,7 +5780,6 @@ bool prs_uint8s(bool charmode, const char *name, prs_struct *ps, int depth, uint
bool prs_uint16s(bool charmode, const char *name, prs_struct *ps, int depth, uint16 *data16s, int len);
bool prs_uint16uni(bool charmode, const char *name, prs_struct *ps, int depth, uint16 *data16s, int len);
bool prs_uint32s(bool charmode, const char *name, prs_struct *ps, int depth, uint32 *data32s, int len);
-bool prs_unistr2(bool charmode, const char *name, prs_struct *ps, int depth, UNISTR2 *str);
bool prs_unistr(const char *name, prs_struct *ps, int depth, UNISTR *str);
bool prs_string(const char *name, prs_struct *ps, int depth, char *str, int max_buf_size);
bool prs_string_alloc(const char *name, prs_struct *ps, int depth, const char **str);
@@ -5821,7 +5844,7 @@ bool smb_io_rpc_auth_schannel_chk(const char *desc, int auth_len,
RPC_AUTH_SCHANNEL_CHK * chk,
prs_struct *ps, int depth);
-/* The following definitions come from rpc_server/srv_eventlog_lib.c */
+/* The following definitions come from lib/eventlog/eventlog.c */
TDB_CONTEXT *elog_init_tdb( char *tdbfilename );
char *elog_tdbname(TALLOC_CTX *ctx, const char *name );
@@ -5851,6 +5874,10 @@ NTSTATUS evlog_evt_entry_to_tdb_entry(TALLOC_CTX *mem_ctx,
NTSTATUS evlog_tdb_entry_to_evt_entry(TALLOC_CTX *mem_ctx,
const struct eventlog_Record_tdb *t,
struct EVENTLOGRECORD *e);
+NTSTATUS evlog_convert_tdb_to_evt(TALLOC_CTX *mem_ctx,
+ ELOG_TDB *etdb,
+ DATA_BLOB *blob_p,
+ uint32_t *num_records_p);
/* The following definitions come from rpc_server/srv_eventlog_nt.c */
@@ -6645,6 +6672,7 @@ void release_file_oplock(files_struct *fsp);
bool remove_oplock(files_struct *fsp);
bool downgrade_oplock(files_struct *fsp);
bool should_notify_deferred_opens(void);
+void break_level2_to_none_async(files_struct *fsp);
void reply_to_oplock_break_requests(files_struct *fsp);
void process_oplock_async_level2_break_message(struct messaging_context *msg_ctx,
void *private_data,
diff --git a/source3/include/smbldap.h b/source3/include/smbldap.h
index a2cb8c5eea..353e01aba6 100644
--- a/source3/include/smbldap.h
+++ b/source3/include/smbldap.h
@@ -141,7 +141,6 @@ void smbldap_make_mod(LDAP *ldap_struct, LDAPMessage *existing,
bool smbldap_get_single_attribute (LDAP * ldap_struct, LDAPMessage * entry,
const char *attribute, char *value,
int max_len);
-char *smbldap_get_dn(LDAP *ld, LDAPMessage *entry);
int smbldap_modify(struct smbldap_state *ldap_state,
const char *dn,
LDAPMod *attrs[]);
@@ -214,7 +213,7 @@ char * smbldap_talloc_single_attribute(LDAP *ldap_struct, LDAPMessage *entry,
TALLOC_CTX *mem_ctx);
void talloc_autofree_ldapmsg(TALLOC_CTX *mem_ctx, LDAPMessage *result);
void talloc_autofree_ldapmod(TALLOC_CTX *mem_ctx, LDAPMod **mod);
-const char *smbldap_talloc_dn(TALLOC_CTX *mem_ctx, LDAP *ld,
+char *smbldap_talloc_dn(TALLOC_CTX *mem_ctx, LDAP *ld,
LDAPMessage *entry);
diff --git a/source3/rpc_server/srv_eventlog_lib.c b/source3/lib/eventlog/eventlog.c
index f83c4fc3b8..11cb28a120 100644
--- a/source3/rpc_server/srv_eventlog_lib.c
+++ b/source3/lib/eventlog/eventlog.c
@@ -958,3 +958,77 @@ NTSTATUS evlog_tdb_entry_to_evt_entry(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
+
+/********************************************************************
+ ********************************************************************/
+
+NTSTATUS evlog_convert_tdb_to_evt(TALLOC_CTX *mem_ctx,
+ ELOG_TDB *etdb,
+ DATA_BLOB *blob_p,
+ uint32_t *num_records_p)
+{
+ NTSTATUS status = NT_STATUS_OK;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ uint32_t num_records = 0;
+ struct EVENTLOG_EVT_FILE evt;
+ uint32_t count = 1;
+ size_t endoffset = 0;
+
+ ZERO_STRUCT(evt);
+
+ while (1) {
+
+ struct eventlog_Record_tdb *r;
+ struct EVENTLOGRECORD e;
+
+ r = evlog_pull_record_tdb(mem_ctx, etdb->tdb, count);
+ if (!r) {
+ break;
+ }
+
+ status = evlog_tdb_entry_to_evt_entry(mem_ctx, r, &e);
+ if (!NT_STATUS_IS_OK(status)) {
+ goto done;
+ }
+
+ endoffset += ndr_size_EVENTLOGRECORD(&e, NULL, 0);
+
+ ADD_TO_ARRAY(mem_ctx, struct EVENTLOGRECORD, e, &evt.records, &num_records);
+ count++;
+ }
+
+ evt.hdr.StartOffset = 0x30;
+ evt.hdr.EndOffset = evt.hdr.StartOffset + endoffset;
+ evt.hdr.CurrentRecordNumber = count;
+ evt.hdr.OldestRecordNumber = 1;
+ evt.hdr.MaxSize = tdb_fetch_int32(etdb->tdb, EVT_MAXSIZE);
+ evt.hdr.Flags = 0;
+ evt.hdr.Retention = tdb_fetch_int32(etdb->tdb, EVT_RETENTION);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_DEBUG(EVENTLOGHEADER, &evt.hdr);
+ }
+
+ evt.eof.BeginRecord = 0x30;
+ evt.eof.EndRecord = evt.hdr.StartOffset + endoffset;
+ evt.eof.CurrentRecordNumber = evt.hdr.CurrentRecordNumber;
+ evt.eof.OldestRecordNumber = evt.hdr.OldestRecordNumber;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_DEBUG(EVENTLOGEOF, &evt.eof);
+ }
+
+ ndr_err = ndr_push_struct_blob(&blob, mem_ctx, NULL, &evt,
+ (ndr_push_flags_fn_t)ndr_push_EVENTLOG_EVT_FILE);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ status = ndr_map_error2ntstatus(ndr_err);
+ goto done;
+ }
+
+ *blob_p = blob;
+ *num_records_p = num_records;
+
+ done:
+ return status;
+}
diff --git a/source3/lib/ms_fnmatch.c b/source3/lib/ms_fnmatch.c
index ca534467fa..1eac9fa14a 100644
--- a/source3/lib/ms_fnmatch.c
+++ b/source3/lib/ms_fnmatch.c
@@ -170,12 +170,12 @@ int ms_fnmatch(const char *pattern, const char *string, bool translate_pattern,
}
}
- if (!push_ucs2_allocate(&p, pattern, &converted_size)) {
+ if (!push_ucs2_talloc(talloc_tos(), &p, pattern, &converted_size)) {
return -1;
}
- if (!push_ucs2_allocate(&s, string, &converted_size)) {
- SAFE_FREE(p);
+ if (!push_ucs2_talloc(talloc_tos(), &s, string, &converted_size)) {
+ TALLOC_FREE(p);
return -1;
}
@@ -214,8 +214,8 @@ int ms_fnmatch(const char *pattern, const char *string, bool translate_pattern,
else {
max_n = SMB_CALLOC_ARRAY(struct max_n, count);
if (!max_n) {
- SAFE_FREE(p);
- SAFE_FREE(s);
+ TALLOC_FREE(p);
+ TALLOC_FREE(s);
return -1;
}
max_n_free = max_n;
@@ -225,8 +225,8 @@ int ms_fnmatch(const char *pattern, const char *string, bool translate_pattern,
ret = ms_fnmatch_core(p, s, max_n, strrchr_w(s, UCS2_CHAR('.')), is_case_sensitive);
SAFE_FREE(max_n_free);
- SAFE_FREE(p);
- SAFE_FREE(s);
+ TALLOC_FREE(p);
+ TALLOC_FREE(s);
return ret;
}
diff --git a/source3/lib/smbconf/smbconf_reg.c b/source3/lib/smbconf/smbconf_reg.c
index ae6a41151d..0ecac97575 100644
--- a/source3/lib/smbconf/smbconf_reg.c
+++ b/source3/lib/smbconf/smbconf_reg.c
@@ -193,7 +193,7 @@ static WERROR smbconf_reg_set_value(struct registry_key *key,
if (!strequal(subkeyname, GLOBAL_NAME) &&
lp_parameter_is_global(valname))
{
- DEBUG(5, ("Global paramter '%s' not allowed in "
+ DEBUG(5, ("Global parameter '%s' not allowed in "
"service definition ('%s').\n", canon_valname,
subkeyname));
werr = WERR_INVALID_PARAM;
diff --git a/source3/lib/smbldap.c b/source3/lib/smbldap.c
index e24d35818c..4f54f9ad58 100644
--- a/source3/lib/smbldap.c
+++ b/source3/lib/smbldap.c
@@ -1228,7 +1228,7 @@ static int smbldap_search_ext(struct smbldap_state *ldap_state,
ZERO_STRUCT(ldap_state->last_rebind);
}
- if (!push_utf8_allocate(&utf8_filter, filter, &converted_size)) {
+ if (!push_utf8_talloc(talloc_tos(), &utf8_filter, filter, &converted_size)) {
return LDAP_NO_MEMORY;
}
@@ -1276,7 +1276,7 @@ static int smbldap_search_ext(struct smbldap_state *ldap_state,
}
}
- SAFE_FREE(utf8_filter);
+ TALLOC_FREE(utf8_filter);
/* Teardown timeout. */
CatchSignal(SIGALRM, SIGNAL_CAST SIG_IGN);
@@ -1400,7 +1400,7 @@ int smbldap_modify(struct smbldap_state *ldap_state, const char *dn, LDAPMod *at
DEBUG(5,("smbldap_modify: dn => [%s]\n", dn ));
- if (!push_utf8_allocate(&utf8_dn, dn, &converted_size)) {
+ if (!push_utf8_talloc(talloc_tos(), &utf8_dn, dn, &converted_size)) {
return LDAP_NO_MEMORY;
}
@@ -1428,7 +1428,7 @@ int smbldap_modify(struct smbldap_state *ldap_state, const char *dn, LDAPMod *at
}
}
- SAFE_FREE(utf8_dn);
+ TALLOC_FREE(utf8_dn);
return rc;
}
@@ -1444,7 +1444,7 @@ int smbldap_add(struct smbldap_state *ldap_state, const char *dn, LDAPMod *attrs
DEBUG(5,("smbldap_add: dn => [%s]\n", dn ));
- if (!push_utf8_allocate(&utf8_dn, dn, &converted_size)) {
+ if (!push_utf8_talloc(talloc_tos(), &utf8_dn, dn, &converted_size)) {
return LDAP_NO_MEMORY;
}
@@ -1472,7 +1472,7 @@ int smbldap_add(struct smbldap_state *ldap_state, const char *dn, LDAPMod *attrs
}
}
- SAFE_FREE(utf8_dn);
+ TALLOC_FREE(utf8_dn);
return rc;
}
@@ -1488,7 +1488,7 @@ int smbldap_delete(struct smbldap_state *ldap_state, const char *dn)
DEBUG(5,("smbldap_delete: dn => [%s]\n", dn ));
- if (!push_utf8_allocate(&utf8_dn, dn, &converted_size)) {
+ if (!push_utf8_talloc(talloc_tos(), &utf8_dn, dn, &converted_size)) {
return LDAP_NO_MEMORY;
}
@@ -1516,7 +1516,7 @@ int smbldap_delete(struct smbldap_state *ldap_state, const char *dn)
}
}
- SAFE_FREE(utf8_dn);
+ TALLOC_FREE(utf8_dn);
return rc;
}
@@ -1649,41 +1649,19 @@ NTSTATUS smbldap_init(TALLOC_CTX *mem_ctx, struct event_context *event_ctx,
return NT_STATUS_OK;
}
-/*******************************************************************
- Return a copy of the DN for a LDAPMessage. Convert from utf8 to CH_UNIX.
-********************************************************************/
-char *smbldap_get_dn(LDAP *ld, LDAPMessage *entry)
-{
- char *utf8_dn, *unix_dn;
- size_t converted_size;
-
- utf8_dn = ldap_get_dn(ld, entry);
- if (!utf8_dn) {
- DEBUG (5, ("smbldap_get_dn: ldap_get_dn failed\n"));
- return NULL;
- }
- if (!pull_utf8_allocate(&unix_dn, utf8_dn, &converted_size)) {
- DEBUG (0, ("smbldap_get_dn: String conversion failure utf8 "
- "[%s]\n", utf8_dn));
- return NULL;
- }
- ldap_memfree(utf8_dn);
- return unix_dn;
-}
-
- const char *smbldap_talloc_dn(TALLOC_CTX *mem_ctx, LDAP *ld,
- LDAPMessage *entry)
+ char *smbldap_talloc_dn(TALLOC_CTX *mem_ctx, LDAP *ld,
+ LDAPMessage *entry)
{
char *utf8_dn, *unix_dn;
size_t converted_size;
utf8_dn = ldap_get_dn(ld, entry);
if (!utf8_dn) {
- DEBUG (5, ("smbldap_get_dn: ldap_get_dn failed\n"));
+ DEBUG (5, ("smbldap_talloc_dn: ldap_get_dn failed\n"));
return NULL;
}
if (!pull_utf8_talloc(mem_ctx, &unix_dn, utf8_dn, &converted_size)) {
- DEBUG (0, ("smbldap_get_dn: String conversion failure utf8 "
+ DEBUG (0, ("smbldap_talloc_dn: String conversion failure utf8 "
"[%s]\n", utf8_dn));
return NULL;
}
diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c
index a0dbca1a00..5f9d4768ba 100644
--- a/source3/lib/util_sock.c
+++ b/source3/lib/util_sock.c
@@ -1942,6 +1942,10 @@ bool is_myname_or_ipaddr(const char *s)
return false;
}
+ if (ismyaddr((struct sockaddr *)&ss)) {
+ return true;
+ }
+
if (is_zero_addr((struct sockaddr *)&ss) ||
is_loopback_addr((struct sockaddr *)&ss)) {
return false;
@@ -1965,3 +1969,90 @@ bool is_myname_or_ipaddr(const char *s)
/* No match */
return false;
}
+
+/*
+ * Read an smb packet asynchronously, discard keepalives
+ */
+
+struct read_smb_state {
+ struct tevent_context *ev;
+ int fd;
+ uint8_t *buf;
+};
+
+static ssize_t read_smb_more(uint8_t *buf, size_t buflen, void *private_data);
+static void read_smb_done(struct tevent_req *subreq);
+
+struct tevent_req *read_smb_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ int fd)
+{
+ struct tevent_req *result, *subreq;
+ struct read_smb_state *state;
+
+ result = tevent_req_create(mem_ctx, &state, struct read_smb_state);
+ if (result == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+ state->fd = fd;
+
+ subreq = read_packet_send(state, ev, fd, 4, read_smb_more, NULL);
+ if (subreq == NULL) {
+ goto fail;
+ }
+ tevent_req_set_callback(subreq, read_smb_done, result);
+ return result;
+ fail:
+ TALLOC_FREE(result);
+ return NULL;
+}
+
+static ssize_t read_smb_more(uint8_t *buf, size_t buflen, void *private_data)
+{
+ if (buflen > 4) {
+ return 0; /* We've been here, we're done */
+ }
+ return smb_len_large(buf);
+}
+
+static void read_smb_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct read_smb_state *state = tevent_req_data(
+ req, struct read_smb_state);
+ ssize_t len;
+ int err;
+
+ len = read_packet_recv(subreq, state, &state->buf, &err);
+ TALLOC_FREE(subreq);
+ if (len == -1) {
+ tevent_req_error(req, err);
+ return;
+ }
+
+ if (CVAL(state->buf, 0) == SMBkeepalive) {
+ subreq = read_packet_send(state, state->ev, state->fd, 4,
+ read_smb_more, NULL);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, read_smb_done, req);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+ssize_t read_smb_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ uint8_t **pbuf, int *perrno)
+{
+ struct read_smb_state *state = tevent_req_data(
+ req, struct read_smb_state);
+
+ if (tevent_req_is_unix_error(req, perrno)) {
+ return -1;
+ }
+ *pbuf = talloc_move(mem_ctx, &state->buf);
+ return talloc_get_size(*pbuf);
+}
diff --git a/source3/lib/util_unistr.c b/source3/lib/util_unistr.c
index 840e8e06da..7d80b3cdea 100644
--- a/source3/lib/util_unistr.c
+++ b/source3/lib/util_unistr.c
@@ -291,64 +291,6 @@ int rpcstr_pull_talloc(TALLOC_CTX *ctx,
}
-/* Copy a string from a unistr2 source to internal samba format
- destination. Use this instead of direct calls to rpcstr_pull() to avoid
- having to determine whether the source string is null terminated. */
-
-int rpcstr_pull_unistr2_fstring(char *dest, UNISTR2 *src)
-{
- return pull_ucs2(NULL, dest, src->buffer, sizeof(fstring),
- src->uni_str_len * 2, 0);
-}
-
-/* Helper function to return a talloc'ed string. I have implemented it with a
- * copy because I don't really know how pull_ucs2 and friends calculate the
- * target size. If this turns out to be a major bottleneck someone with deeper
- * multi-byte knowledge needs to revisit this.
- * I just did (JRA :-). No longer uses copy.
- * My (VL) use is dsr_getdcname, which returns 6 strings, the alternative would
- * have been to manually talloc_strdup them in rpc_client/cli_netlogon.c.
- */
-
-char *rpcstr_pull_unistr2_talloc(TALLOC_CTX *ctx, const UNISTR2 *src)
-{
- char *dest = NULL;
- size_t dest_len;
-
- if (!convert_string_talloc(ctx, CH_UTF16LE, CH_UNIX, src->buffer,
- src->uni_str_len * 2, (void *)&dest,
- &dest_len, true))
- {
- return NULL;
- }
-
- /* Ensure we're returning a null terminated string. */
- if (dest_len) {
- /* Did we already process the terminating zero ? */
- if (dest[dest_len-1] != 0) {
- size_t size = talloc_get_size(dest);
- /* Have we got space to append the '\0' ? */
- if (size <= dest_len) {
- /* No, realloc. */
- dest = TALLOC_REALLOC_ARRAY(ctx, dest, char,
- dest_len+1);
- if (!dest) {
- /* talloc fail. */
- dest_len = (size_t)-1;
- return NULL;
- }
- }
- /* Yay - space ! */
- dest[dest_len] = '\0';
- dest_len++;
- }
- } else if (dest) {
- dest[0] = 0;
- }
-
- return dest;
-}
-
/* Converts a string from internal samba format to unicode
*/
@@ -371,64 +313,6 @@ int rpcstr_push_talloc(TALLOC_CTX *ctx, smb_ucs2_t **dest, const char *src)
}
/*******************************************************************
- Convert a (little-endian) UNISTR2 structure to an ASCII string.
-********************************************************************/
-
-void unistr2_to_ascii(char *dest, const UNISTR2 *str, size_t maxlen)
-{
- if ((str == NULL) || (str->uni_str_len == 0)) {
- *dest='\0';
- return;
- }
- pull_ucs2(NULL, dest, str->buffer, maxlen, str->uni_str_len*2, STR_NOALIGN);
-}
-
-/*******************************************************************
- Duplicate a UNISTR2 string into a null terminated char*
- using a talloc context.
-********************************************************************/
-
-char *unistr2_to_ascii_talloc(TALLOC_CTX *ctx, const UNISTR2 *str)
-{
- char *s = NULL;
-
- if (!str || !str->buffer) {
- return NULL;
- }
- if (pull_ucs2_base_talloc(ctx,
- NULL,
- &s,
- str->buffer,
- str->uni_str_len*2,
- STR_NOALIGN) == (size_t)-1) {
- return NULL;
- }
- return s;
-}
-
-/*******************************************************************
- Return a string for displaying a UNISTR2. Guarentees to return a
- valid string - "" if nothing else.
- Changed to use talloc_tos() under the covers.... JRA.
-********************************************************************/
-
-const char *unistr2_static(const UNISTR2 *str)
-{
- char *dest = NULL;
-
- if ((str == NULL) || (str->uni_str_len == 0)) {
- return "";
- }
-
- dest = unistr2_to_ascii_talloc(talloc_tos(), str);
- if (!dest) {
- return "";
- }
-
- return dest;
-}
-
-/*******************************************************************
Convert a wchar to upper case.
********************************************************************/
@@ -966,89 +850,6 @@ smb_ucs2_t *strstr_wa(const smb_ucs2_t *s, const char *ins)
return NULL;
}
-/*******************************************************************
- Returns the length in number of wide characters.
-******************************************************************/
-
-int unistrlen(uint16 *s)
-{
- int len;
-
- if (!s) {
- return -1;
- }
-
- for (len=0; SVAL(s,0); s++,len++) {
- ;
- }
-
- return len;
-}
-
-/*******************************************************************
- Strcpy for unicode strings. Returns length (in num of wide chars).
- Not odd align safe.
-********************************************************************/
-
-int unistrcpy(uint16 *dst, uint16 *src)
-{
- int num_wchars = 0;
-
- while (SVAL(src,0)) {
- *dst++ = *src++;
- num_wchars++;
- }
- *dst = 0;
-
- return num_wchars;
-}
-
-/**
- * Samba ucs2 type to UNISTR2 conversion
- *
- * @param ctx Talloc context to create the dst strcture (if null) and the
- * contents of the unicode string.
- * @param dst UNISTR2 destination. If equals null, then it's allocated.
- * @param src smb_ucs2_t source.
- * @param max_len maximum number of unicode characters to copy. If equals
- * null, then null-termination of src is taken
- *
- * @return copied UNISTR2 destination
- **/
-
-UNISTR2* ucs2_to_unistr2(TALLOC_CTX *ctx, UNISTR2* dst, smb_ucs2_t* src)
-{
- size_t len;
-
- if (!src) {
- return NULL;
- }
-
- len = strlen_w(src);
-
- /* allocate UNISTR2 destination if not given */
- if (!dst) {
- dst = TALLOC_P(ctx, UNISTR2);
- if (!dst)
- return NULL;
- }
- if (!dst->buffer) {
- dst->buffer = TALLOC_ARRAY(ctx, uint16, len + 1);
- if (!dst->buffer)
- return NULL;
- }
-
- /* set UNISTR2 parameters */
- dst->uni_max_len = len + 1;
- dst->offset = 0;
- dst->uni_str_len = len;
-
- /* copy the actual unicode string */
- strncpy_w(dst->buffer, src, dst->uni_max_len);
-
- return dst;
-}
-
/*************************************************************
ascii only toupper - saves the need for smbd to be in C locale.
*************************************************************/
diff --git a/source3/libads/authdata.c b/source3/libads/authdata.c
index 9f0f68ed7b..0032e9e4f6 100644
--- a/source3/libads/authdata.c
+++ b/source3/libads/authdata.c
@@ -469,7 +469,7 @@ out:
data_blob_free(&sesskey1);
data_blob_free(&sesskey2);
- SAFE_FREE(client_princ_out);
+ TALLOC_FREE(client_princ_out);
return status;
}
diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
index 52cb975a6c..c476f59ff5 100644
--- a/source3/libads/kerberos.c
+++ b/source3/libads/kerberos.c
@@ -545,7 +545,7 @@ krb5_principal kerberos_fetch_salt_princ_for_host_princ(krb5_context context,
/* look under the old key. If this fails, just use the standard key */
- if (smb_krb5_unparse_name(context, host_princ, &unparsed_name) != 0) {
+ if (smb_krb5_unparse_name(talloc_tos(), context, host_princ, &unparsed_name) != 0) {
return (krb5_principal)NULL;
}
if ((salt_princ_s = kerberos_secrets_fetch_salting_principal(unparsed_name, enctype)) == NULL) {
@@ -558,7 +558,7 @@ krb5_principal kerberos_fetch_salt_princ_for_host_princ(krb5_context context,
ret_princ = NULL;
}
- SAFE_FREE(unparsed_name);
+ TALLOC_FREE(unparsed_name);
SAFE_FREE(salt_princ_s);
return ret_princ;
@@ -603,7 +603,7 @@ bool kerberos_secrets_store_salting_principal(const char *service,
goto out;
}
- if (smb_krb5_unparse_name(context, princ, &unparsed_name) != 0) {
+ if (smb_krb5_unparse_name(talloc_tos(), context, princ, &unparsed_name) != 0) {
goto out;
}
@@ -623,7 +623,7 @@ bool kerberos_secrets_store_salting_principal(const char *service,
SAFE_FREE(key);
SAFE_FREE(princ_s);
- SAFE_FREE(unparsed_name);
+ TALLOC_FREE(unparsed_name);
if (princ) {
krb5_free_principal(context, princ);
diff --git a/source3/libads/kerberos_keytab.c b/source3/libads/kerberos_keytab.c
index 7c028cb78f..4fede259ab 100644
--- a/source3/libads/kerberos_keytab.c
+++ b/source3/libads/kerberos_keytab.c
@@ -64,7 +64,7 @@ int smb_krb5_kt_add_entry_ext(krb5_context context,
while(!krb5_kt_next_entry(context, keytab, &kt_entry, &cursor)) {
bool compare_name_ok = False;
- ret = smb_krb5_unparse_name(context, kt_entry.principal, &ktprinc);
+ ret = smb_krb5_unparse_name(talloc_tos(), context, kt_entry.principal, &ktprinc);
if (ret) {
DEBUG(1,("smb_krb5_kt_add_entry_ext: smb_krb5_unparse_name failed (%s)\n",
error_message(ret)));
@@ -91,7 +91,7 @@ int smb_krb5_kt_add_entry_ext(krb5_context context,
ktprinc, kt_entry.vno));
}
- SAFE_FREE(ktprinc);
+ TALLOC_FREE(ktprinc);
if (compare_name_ok) {
if (kt_entry.vno == kvno - 1) {
@@ -549,13 +549,12 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
}
}
- TALLOC_FREE( ctx );
-
/* Now loop through the keytab and update any other existing entries... */
kvno = (krb5_kvno) ads_get_machine_kvno(ads, machine_name);
if (kvno == -1) {
DEBUG(1,("ads_keytab_create_default: ads_get_machine_kvno failed to determine the system's kvno.\n"));
+ TALLOC_FREE(ctx);
return -1;
}
@@ -569,6 +568,7 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
ret = krb5_init_context(&context);
if (ret) {
DEBUG(1,("ads_keytab_create_default: could not krb5_init_context: %s\n",error_message(ret)));
+ TALLOC_FREE(ctx);
return ret;
}
@@ -599,7 +599,7 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
if (!found) {
goto done;
}
- oldEntries = SMB_MALLOC_ARRAY(char *, found );
+ oldEntries = talloc_array(ctx, char *, found );
if (!oldEntries) {
DEBUG(1,("ads_keytab_create_default: Failed to allocate space to store the old keytab entries (malloc failed?).\n"));
ret = -1;
@@ -615,7 +615,7 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
char *p;
/* This returns a malloc'ed string in ktprinc. */
- ret = smb_krb5_unparse_name(context, kt_entry.principal, &ktprinc);
+ ret = smb_krb5_unparse_name(oldEntries, context, kt_entry.principal, &ktprinc);
if (ret) {
DEBUG(1,("smb_krb5_unparse_name failed (%s)\n", error_message(ret)));
goto done;
@@ -640,12 +640,12 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
break;
}
if (!strcmp(oldEntries[i], ktprinc)) {
- SAFE_FREE(ktprinc);
+ TALLOC_FREE(ktprinc);
break;
}
}
if (i == found) {
- SAFE_FREE(ktprinc);
+ TALLOC_FREE(ktprinc);
}
}
smb_krb5_kt_free_entry(context, &kt_entry);
@@ -654,7 +654,7 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
ret = 0;
for (i = 0; oldEntries[i]; i++) {
ret |= ads_keytab_add_entry(ads, oldEntries[i]);
- SAFE_FREE(oldEntries[i]);
+ TALLOC_FREE(oldEntries[i]);
}
krb5_kt_end_seq_get(context, keytab, &cursor);
}
@@ -662,7 +662,8 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
done:
- SAFE_FREE(oldEntries);
+ TALLOC_FREE(oldEntries);
+ TALLOC_FREE(ctx);
{
krb5_keytab_entry zero_kt_entry;
@@ -728,7 +729,7 @@ int ads_keytab_list(const char *keytab_name)
char *etype_s = NULL;
krb5_enctype enctype = 0;
- ret = smb_krb5_unparse_name(context, kt_entry.principal, &princ_s);
+ ret = smb_krb5_unparse_name(talloc_tos(), context, kt_entry.principal, &princ_s);
if (ret) {
goto out;
}
@@ -739,14 +740,14 @@ int ads_keytab_list(const char *keytab_name)
if (ret) {
if (asprintf(&etype_s, "UNKNOWN: %d\n", enctype) == -1)
{
- SAFE_FREE(princ_s);
+ TALLOC_FREE(princ_s);
goto out;
}
}
printf("%3d %s\t\t %s\n", kt_entry.vno, etype_s, princ_s);
- SAFE_FREE(princ_s);
+ TALLOC_FREE(princ_s);
SAFE_FREE(etype_s);
ret = smb_krb5_kt_free_entry(context, &kt_entry);
diff --git a/source3/libads/kerberos_verify.c b/source3/libads/kerberos_verify.c
index b903b2a6eb..8502902963 100644
--- a/source3/libads/kerberos_verify.c
+++ b/source3/libads/kerberos_verify.c
@@ -192,7 +192,7 @@ static bool ads_keytab_verify_ticket(krb5_context context,
}
while (!auth_ok && (krb5_kt_next_entry(context, keytab, &kt_entry, &kt_cursor) == 0)) {
- ret = smb_krb5_unparse_name(context, kt_entry.principal, &entry_princ_s);
+ ret = smb_krb5_unparse_name(talloc_tos(), context, kt_entry.principal, &entry_princ_s);
if (ret) {
DEBUG(1, ("ads_keytab_verify_ticket: smb_krb5_unparse_name failed (%s)\n",
error_message(ret)));
@@ -242,7 +242,7 @@ static bool ads_keytab_verify_ticket(krb5_context context,
}
/* Free the name we parsed. */
- SAFE_FREE(entry_princ_s);
+ TALLOC_FREE(entry_princ_s);
/* Free the entry we just read. */
smb_krb5_kt_free_entry(context, &kt_entry);
@@ -636,7 +636,7 @@ NTSTATUS ads_verify_ticket(TALLOC_CTX *mem_ctx,
#endif
#endif
- if ((ret = smb_krb5_unparse_name(context, client_principal, principal))) {
+ if ((ret = smb_krb5_unparse_name(mem_ctx, context, client_principal, principal))) {
DEBUG(3,("ads_verify_ticket: smb_krb5_unparse_name failed (%s)\n",
error_message(ret)));
sret = NT_STATUS_LOGON_FAILURE;
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
index edbd69392c..841ea8caae 100644
--- a/source3/libads/ldap.c
+++ b/source3/libads/ldap.c
@@ -1267,22 +1267,12 @@ ADS_STATUS ads_do_search_all_fn(ADS_STRUCT *ads, const char *bind_path,
}
/**
- * Free up memory from various ads requests
- * @param ads connection to ads server
- * @param mem Area to free
- **/
-void ads_memfree(ADS_STRUCT *ads, void *mem)
-{
- SAFE_FREE(mem);
-}
-
-/**
* Get a dn from search results
* @param ads connection to ads server
* @param msg Search result
* @return dn string
**/
- char *ads_get_dn(ADS_STRUCT *ads, LDAPMessage *msg)
+ char *ads_get_dn(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, LDAPMessage *msg)
{
char *utf8_dn, *unix_dn;
size_t converted_size;
@@ -1294,7 +1284,7 @@ void ads_memfree(ADS_STRUCT *ads, void *mem)
return NULL;
}
- if (!pull_utf8_allocate(&unix_dn, utf8_dn, &converted_size)) {
+ if (!pull_utf8_talloc(mem_ctx, &unix_dn, utf8_dn, &converted_size)) {
DEBUG(0,("ads_get_dn: string conversion failure utf8 [%s]\n",
utf8_dn ));
return NULL;
@@ -1639,7 +1629,7 @@ char *ads_default_ou_string(ADS_STRUCT *ads, const char *wknguid)
}
/* substitute the bind-path from the well-known-guid-search result */
- wkn_dn = ads_get_dn(ads, res);
+ wkn_dn = ads_get_dn(ads, talloc_tos(), res);
if (!wkn_dn) {
goto out;
}
@@ -1685,7 +1675,7 @@ char *ads_default_ou_string(ADS_STRUCT *ads, const char *wknguid)
out:
SAFE_FREE(base);
ads_msgfree(ads, res);
- ads_memfree(ads, wkn_dn);
+ TALLOC_FREE(wkn_dn);
if (wkn_dn_exp) {
ldap_value_free(wkn_dn_exp);
}
@@ -1741,14 +1731,14 @@ uint32 ads_get_kvno(ADS_STRUCT *ads, const char *account_name)
return kvno;
}
- dn_string = ads_get_dn(ads, res);
+ dn_string = ads_get_dn(ads, talloc_tos(), res);
if (!dn_string) {
DEBUG(0,("ads_get_kvno: out of memory.\n"));
ads_msgfree(ads, res);
return kvno;
}
DEBUG(5,("ads_get_kvno: Using: %s\n", dn_string));
- ads_memfree(ads, dn_string);
+ TALLOC_FREE(dn_string);
/* ---------------------------------------------------------
* 0 is returned as a default KVNO from this point on...
@@ -1836,14 +1826,14 @@ ADS_STATUS ads_clear_service_principal_names(ADS_STRUCT *ads, const char *machin
talloc_destroy(ctx);
return ret;
}
- dn_string = ads_get_dn(ads, res);
+ dn_string = ads_get_dn(ads, talloc_tos(), res);
if (!dn_string) {
talloc_destroy(ctx);
ads_msgfree(ads, res);
return ADS_ERROR(LDAP_NO_MEMORY);
}
ret = ads_gen_mod(ads, dn_string, mods);
- ads_memfree(ads,dn_string);
+ TALLOC_FREE(dn_string);
if (!ADS_ERR_OK(ret)) {
DEBUG(1,("ads_clear_service_principal_names: Error: Updating Service Principals for machine %s in LDAP\n",
machine_name));
@@ -1933,13 +1923,12 @@ ADS_STATUS ads_add_service_principal_name(ADS_STRUCT *ads, const char *machine_n
goto out;
}
- if ( (dn_string = ads_get_dn(ads, res)) == NULL ) {
+ if ( (dn_string = ads_get_dn(ads, ctx, res)) == NULL ) {
ret = ADS_ERROR(LDAP_NO_MEMORY);
goto out;
}
ret = ads_gen_mod(ads, dn_string, mods);
- ads_memfree(ads,dn_string);
if (!ADS_ERR_OK(ret)) {
DEBUG(1,("ads_add_service_principal_name: Error: Updating Service Principals in LDAP\n"));
goto out;
@@ -2052,7 +2041,7 @@ ADS_STATUS ads_move_machine_acct(ADS_STRUCT *ads, const char *machine_name,
goto done;
}
- computer_dn = ads_get_dn(ads, res);
+ computer_dn = ads_get_dn(ads, talloc_tos(), res);
if (!computer_dn) {
rc = ADS_ERROR(LDAP_NO_MEMORY);
goto done;
@@ -3029,7 +3018,7 @@ ADS_STATUS ads_site_dn_for_machine(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, const c
return ADS_ERROR(LDAP_NO_SUCH_OBJECT);
}
- dn = ads_get_dn(ads, res);
+ dn = ads_get_dn(ads, mem_ctx, res);
if (dn == NULL) {
ads_msgfree(ads, res);
return ADS_ERROR(LDAP_NO_MEMORY);
@@ -3039,18 +3028,18 @@ ADS_STATUS ads_site_dn_for_machine(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, const c
parent = ads_parent_dn(ads_parent_dn(ads_parent_dn(dn)));
if (parent == NULL) {
ads_msgfree(ads, res);
- ads_memfree(ads, dn);
+ TALLOC_FREE(dn);
return ADS_ERROR(LDAP_NO_MEMORY);
}
*site_dn = talloc_strdup(mem_ctx, parent);
if (*site_dn == NULL) {
ads_msgfree(ads, res);
- ads_memfree(ads, dn);
+ TALLOC_FREE(dn);
return ADS_ERROR(LDAP_NO_MEMORY);
}
- ads_memfree(ads, dn);
+ TALLOC_FREE(dn);
ads_msgfree(ads, res);
return status;
@@ -3140,7 +3129,7 @@ ADS_STATUS ads_get_joinable_ous(ADS_STRUCT *ads,
char *dn = NULL;
- dn = ads_get_dn(ads, msg);
+ dn = ads_get_dn(ads, talloc_tos(), msg);
if (!dn) {
ads_msgfree(ads, res);
return ADS_ERROR(LDAP_NO_MEMORY);
@@ -3149,12 +3138,12 @@ ADS_STATUS ads_get_joinable_ous(ADS_STRUCT *ads,
if (!add_string_to_array(mem_ctx, dn,
(const char ***)ous,
(int *)num_ous)) {
- ads_memfree(ads, dn);
+ TALLOC_FREE(dn);
ads_msgfree(ads, res);
return ADS_ERROR(LDAP_NO_MEMORY);
}
- ads_memfree(ads, dn);
+ TALLOC_FREE(dn);
}
ads_msgfree(ads, res);
@@ -3494,7 +3483,7 @@ ADS_STATUS ads_leave_realm(ADS_STRUCT *ads, const char *hostname)
return ADS_ERROR_SYSTEM(ENOENT);
}
- hostnameDN = ads_get_dn(ads, (LDAPMessage *)msg);
+ hostnameDN = ads_get_dn(ads, talloc_tos(), (LDAPMessage *)msg);
rc = ldap_delete_ext_s(ads->ldap.ld, hostnameDN, pldap_control, NULL);
if (rc) {
@@ -3516,7 +3505,7 @@ ADS_STATUS ads_leave_realm(ADS_STRUCT *ads, const char *hostname)
if (!ADS_ERR_OK(status)) {
SAFE_FREE(host);
- ads_memfree(ads, hostnameDN);
+ TALLOC_FREE(hostnameDN);
return status;
}
@@ -3525,9 +3514,9 @@ ADS_STATUS ads_leave_realm(ADS_STRUCT *ads, const char *hostname)
char *dn = NULL;
- if ((dn = ads_get_dn(ads, msg_sub)) == NULL) {
+ if ((dn = ads_get_dn(ads, talloc_tos(), msg_sub)) == NULL) {
SAFE_FREE(host);
- ads_memfree(ads, hostnameDN);
+ TALLOC_FREE(hostnameDN);
return ADS_ERROR(LDAP_NO_MEMORY);
}
@@ -3535,12 +3524,12 @@ ADS_STATUS ads_leave_realm(ADS_STRUCT *ads, const char *hostname)
if (!ADS_ERR_OK(status)) {
DEBUG(3,("failed to delete dn %s: %s\n", dn, ads_errstr(status)));
SAFE_FREE(host);
- ads_memfree(ads, dn);
- ads_memfree(ads, hostnameDN);
+ TALLOC_FREE(dn);
+ TALLOC_FREE(hostnameDN);
return status;
}
- ads_memfree(ads, dn);
+ TALLOC_FREE(dn);
}
/* there should be no subordinate objects anymore */
@@ -3550,7 +3539,7 @@ ADS_STATUS ads_leave_realm(ADS_STRUCT *ads, const char *hostname)
if (!ADS_ERR_OK(status) || ( (ads_count_replies(ads, res)) > 0 ) ) {
SAFE_FREE(host);
- ads_memfree(ads, hostnameDN);
+ TALLOC_FREE(hostnameDN);
return status;
}
@@ -3559,12 +3548,12 @@ ADS_STATUS ads_leave_realm(ADS_STRUCT *ads, const char *hostname)
if (!ADS_ERR_OK(status)) {
SAFE_FREE(host);
DEBUG(3,("failed to delete dn %s: %s\n", hostnameDN, ads_errstr(status)));
- ads_memfree(ads, hostnameDN);
+ TALLOC_FREE(hostnameDN);
return status;
}
}
- ads_memfree(ads, hostnameDN);
+ TALLOC_FREE(hostnameDN);
status = ads_find_machine_acct(ads, &res, host);
if (ADS_ERR_OK(status) && ads_count_replies(ads, res) == 1) {
@@ -3723,7 +3712,7 @@ ADS_STATUS ads_find_samaccount(ADS_STRUCT *ads,
goto out;
}
- dn = ads_get_dn(ads, res);
+ dn = ads_get_dn(ads, talloc_tos(), res);
if (dn == NULL) {
status = ADS_ERROR(LDAP_NO_MEMORY);
goto out;
@@ -3746,7 +3735,7 @@ ADS_STATUS ads_find_samaccount(ADS_STRUCT *ads,
}
}
out:
- ads_memfree(ads, dn);
+ TALLOC_FREE(dn);
ads_msgfree(ads, res);
return status;
diff --git a/source3/libgpo/gpo_ldap.c b/source3/libgpo/gpo_ldap.c
index 26813864e5..716b8729c3 100644
--- a/source3/libgpo/gpo_ldap.c
+++ b/source3/libgpo/gpo_ldap.c
@@ -415,7 +415,7 @@ ADS_STATUS ads_delete_gpo_link(ADS_STRUCT *ads,
if (gpo_dn) {
gpo->ds_path = talloc_strdup(mem_ctx, gpo_dn);
} else {
- gpo->ds_path = ads_get_dn(ads, res);
+ gpo->ds_path = ads_get_dn(ads, mem_ctx, res);
}
ADS_ERROR_HAVE_NO_MEMORY(gpo->ds_path);
@@ -453,7 +453,7 @@ ADS_STATUS ads_delete_gpo_link(ADS_STRUCT *ads,
}
/****************************************************************
- get a GROUP_POLICY_OBJECT structure based on different input paramters
+ get a GROUP_POLICY_OBJECT structure based on different input parameters
****************************************************************/
ADS_STATUS ads_get_gpo(ADS_STRUCT *ads,
@@ -523,7 +523,7 @@ ADS_STATUS ads_get_gpo(ADS_STRUCT *ads,
return ADS_ERROR(LDAP_NO_SUCH_OBJECT);
}
- dn = ads_get_dn(ads, res);
+ dn = ads_get_dn(ads, mem_ctx, res);
if (dn == NULL) {
ads_msgfree(ads, res);
return ADS_ERROR(LDAP_NO_MEMORY);
@@ -531,7 +531,7 @@ ADS_STATUS ads_get_gpo(ADS_STRUCT *ads,
status = ads_parse_gpo(ads, mem_ctx, res, dn, gpo);
ads_msgfree(ads, res);
- ads_memfree(ads, dn);
+ TALLOC_FREE(dn);
return status;
}
diff --git a/source3/libnet/libnet_join.c b/source3/libnet/libnet_join.c
index ccfd943a8d..fe9fd66fdc 100644
--- a/source3/libnet/libnet_join.c
+++ b/source3/libnet/libnet_join.c
@@ -303,7 +303,7 @@ static ADS_STATUS libnet_join_find_machine_acct(TALLOC_CTX *mem_ctx,
goto done;
}
- dn = ads_get_dn(r->in.ads, res);
+ dn = ads_get_dn(r->in.ads, mem_ctx, res);
if (!dn) {
status = ADS_ERROR_LDAP(LDAP_NO_MEMORY);
goto done;
@@ -317,7 +317,7 @@ static ADS_STATUS libnet_join_find_machine_acct(TALLOC_CTX *mem_ctx,
done:
ads_msgfree(r->in.ads, res);
- ads_memfree(r->in.ads, dn);
+ TALLOC_FREE(dn);
return status;
}
diff --git a/source3/libnet/libnet_keytab.c b/source3/libnet/libnet_keytab.c
index 81956942ca..589d4c2525 100644
--- a/source3/libnet/libnet_keytab.c
+++ b/source3/libnet/libnet_keytab.c
@@ -144,7 +144,7 @@ static krb5_error_code libnet_keytab_remove_entries(krb5_context context,
goto cont;
}
- ret = smb_krb5_unparse_name(context, kt_entry.principal,
+ ret = smb_krb5_unparse_name(talloc_tos(), context, kt_entry.principal,
&princ_s);
if (ret) {
DEBUG(5, ("smb_krb5_unparse_name failed (%s)\n",
@@ -190,7 +190,7 @@ static krb5_error_code libnet_keytab_remove_entries(krb5_context context,
cont:
smb_krb5_kt_free_entry(context, &kt_entry);
- SAFE_FREE(princ_s);
+ TALLOC_FREE(princ_s);
}
ret = krb5_kt_end_seq_get(context, keytab, &cursor);
@@ -334,6 +334,8 @@ struct libnet_keytab_entry *libnet_keytab_search(struct libnet_keytab_context *c
krb5_keyblock *keyp;
char *princ_s = NULL;
+ entry = NULL;
+
if (kt_entry.vno != kvno) {
goto cont;
}
@@ -344,7 +346,13 @@ struct libnet_keytab_entry *libnet_keytab_search(struct libnet_keytab_context *c
goto cont;
}
- ret = smb_krb5_unparse_name(ctx->context, kt_entry.principal,
+ entry = talloc_zero(mem_ctx, struct libnet_keytab_entry);
+ if (!entry) {
+ DEBUG(3, ("talloc failed\n"));
+ goto fail;
+ }
+
+ ret = smb_krb5_unparse_name(entry, ctx->context, kt_entry.principal,
&princ_s);
if (ret) {
goto cont;
@@ -354,24 +362,14 @@ struct libnet_keytab_entry *libnet_keytab_search(struct libnet_keytab_context *c
goto cont;
}
- entry = talloc_zero(mem_ctx, struct libnet_keytab_entry);
- if (!entry) {
- DEBUG(3, ("talloc failed\n"));
- goto fail;
- }
-
- entry->name = talloc_strdup(entry, princ_s);
- if (!entry->name) {
- DEBUG(3, ("talloc_strdup_failed\n"));
- goto fail;
- }
-
entry->principal = talloc_strdup(entry, princ_s);
if (!entry->principal) {
DEBUG(3, ("talloc_strdup_failed\n"));
goto fail;
}
+ entry->name = talloc_move(entry, &princ_s);
+
entry->password = data_blob_talloc(entry, KRB5_KEY_DATA(keyp),
KRB5_KEY_LENGTH(keyp));
if (!entry->password.data) {
@@ -382,18 +380,16 @@ struct libnet_keytab_entry *libnet_keytab_search(struct libnet_keytab_context *c
DEBUG(10, ("found entry\n"));
smb_krb5_kt_free_entry(ctx->context, &kt_entry);
- SAFE_FREE(princ_s);
break;
fail:
smb_krb5_kt_free_entry(ctx->context, &kt_entry);
- SAFE_FREE(princ_s);
TALLOC_FREE(entry);
break;
cont:
smb_krb5_kt_free_entry(ctx->context, &kt_entry);
- SAFE_FREE(princ_s);
+ TALLOC_FREE(entry);
continue;
}
diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c
index 86fd5c8bef..6faf96c207 100644
--- a/source3/libsmb/async_smb.c
+++ b/source3/libsmb/async_smb.c
@@ -19,9 +19,6 @@
#include "includes.h"
-static void cli_state_handler(struct event_context *event_ctx,
- struct fd_event *event, uint16 flags, void *p);
-
/**
* Fetch an error out of a NBT packet
* @param[in] buf The SMB packet
@@ -69,89 +66,6 @@ void cli_set_error(struct cli_state *cli, NTSTATUS status)
}
/**
- * Allocate a new mid
- * @param[in] cli The client connection
- * @retval The new, unused mid
- */
-
-static uint16_t cli_new_mid(struct cli_state *cli)
-{
- uint16_t result;
- struct cli_request *req;
-
- while (true) {
- result = cli->mid++;
- if (result == 0) {
- continue;
- }
-
- for (req = cli->outstanding_requests; req; req = req->next) {
- if (result == req->mid) {
- break;
- }
- }
-
- if (req == NULL) {
- return result;
- }
- }
-}
-
-/**
- * Print an async req that happens to be a cli_request
- * @param[in] mem_ctx The TALLOC_CTX to put the result on
- * @param[in] req The request to print
- * @retval The string representation of "req"
- */
-
-static char *cli_request_print(TALLOC_CTX *mem_ctx, struct async_req *req)
-{
- char *result = async_req_print(mem_ctx, req);
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
-
- if (result == NULL) {
- return NULL;
- }
-
- return talloc_asprintf_append_buffer(
- result, "mid=%d\n", cli_req->mid);
-}
-
-/**
- * Destroy a cli_request
- * @param[in] req The cli_request to kill
- * @retval Can't fail
- */
-
-static int cli_request_destructor(struct cli_request *req)
-{
- if (req->enc_state != NULL) {
- common_free_enc_buffer(req->enc_state, (char *)req->outbuf);
- }
- DLIST_REMOVE(req->cli->outstanding_requests, req);
- if (req->cli->outstanding_requests == NULL) {
- TALLOC_FREE(req->cli->fd_event);
- }
- return 0;
-}
-
-/**
- * Are there already requests waiting in the chain_accumulator?
- * @param[in] cli The cli_state we want to check
- * @retval reply :-)
- */
-
-bool cli_in_chain(struct cli_state *cli)
-{
- if (cli->chain_accumulator == NULL) {
- return false;
- }
-
- return (cli->chain_accumulator->num_async != 0);
-}
-
-/**
* @brief Find the smb_cmd offset of the last command pushed
* @param[in] buf The buffer we're building up
* @retval Where can we put our next andx cmd?
@@ -326,417 +240,614 @@ bool smb_splice_chain(uint8_t **poutbuf, uint8_t smb_command,
}
/**
- * @brief Destroy an async_req that is the visible part of a cli_request
- * @param[in] req The request to kill
- * @retval Return 0 to make talloc happy
- *
- * This destructor is a bit tricky: Because a cli_request can host more than
- * one async_req for chained requests, we need to make sure that the
- * "cli_request" that we were part of is correctly destroyed at the right
- * time. This is done by NULLing out ourself from the "async" member of our
- * "cli_request". If there is none left, then also TALLOC_FREE() the
- * cli_request, which was a talloc child of the client connection cli_state.
+ * Figure out if there is an andx command behind the current one
+ * @param[in] buf The smb buffer to look at
+ * @param[in] ofs The offset to the wct field that is followed by the cmd
+ * @retval Is there a command following?
*/
-static int cli_async_req_destructor(struct async_req *req)
+static bool have_andx_command(const char *buf, uint16_t ofs)
{
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
- int i, pending;
- bool found = false;
+ uint8_t wct;
+ size_t buflen = talloc_get_size(buf);
- pending = 0;
+ if ((ofs == buflen-1) || (ofs == buflen)) {
+ return false;
+ }
- for (i=0; i<cli_req->num_async; i++) {
- if (cli_req->async[i] == req) {
- cli_req->async[i] = NULL;
- found = true;
- }
- if (cli_req->async[i] != NULL) {
- pending += 1;
- }
+ wct = CVAL(buf, ofs);
+ if (wct < 2) {
+ /*
+ * Not enough space for the command and a following pointer
+ */
+ return false;
}
+ return (CVAL(buf, ofs+1) != 0xff);
+}
- SMB_ASSERT(found);
+#define MAX_SMB_IOV 5
- if (pending == 0) {
- TALLOC_FREE(cli_req);
- }
+struct cli_smb_state {
+ struct tevent_context *ev;
+ struct cli_state *cli;
+ uint8_t header[smb_wct+1]; /* Space for the header including the wct */
- return 0;
-}
+ /*
+ * For normal requests, cli_smb_req_send chooses a mid. Secondary
+ * trans requests need to use the mid of the primary request, so we
+ * need a place to store it. Assume it's set if != 0.
+ */
+ uint16_t mid;
-/**
- * @brief Chain up a request
- * @param[in] mem_ctx The TALLOC_CTX for the result
- * @param[in] ev The event context that will call us back
- * @param[in] cli The cli_state we queue the request up for
- * @param[in] smb_command The command that we want to issue
- * @param[in] additional_flags open_and_x wants to add oplock header flags
- * @param[in] wct How many words?
- * @param[in] vwv The words, already in network order
- * @param[in] bytes_alignment How shall we align "bytes"?
- * @param[in] num_bytes How many bytes?
- * @param[in] bytes The data the request ships
- *
- * cli_request_chain() is the core of the SMB request marshalling routine. It
- * will create a new async_req structure in the cli->chain_accumulator->async
- * array and marshall the smb_cmd, the vwv array and the bytes into
- * cli->chain_accumulator->outbuf.
- */
+ uint16_t *vwv;
+ uint8_t bytecount_buf[2];
+
+ struct iovec iov[MAX_SMB_IOV+3];
+ int iov_count;
-static struct async_req *cli_request_chain(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- uint8_t smb_command,
- uint8_t additional_flags,
- uint8_t wct, const uint16_t *vwv,
- size_t bytes_alignment,
- uint32_t num_bytes,
- const uint8_t *bytes)
+ uint8_t *inbuf;
+ uint32_t seqnum;
+ int chain_num;
+ struct tevent_req **chained_requests;
+};
+
+static uint16_t cli_alloc_mid(struct cli_state *cli)
{
- struct async_req **tmp_reqs;
- struct cli_request *req;
+ int num_pending = talloc_array_length(cli->pending);
+ uint16_t result;
- req = cli->chain_accumulator;
+ while (true) {
+ int i;
- tmp_reqs = TALLOC_REALLOC_ARRAY(req, req->async, struct async_req *,
- req->num_async + 1);
- if (tmp_reqs == NULL) {
- DEBUG(0, ("talloc failed\n"));
- return NULL;
+ result = cli->mid++;
+ if ((result == 0) || (result == 0xffff)) {
+ continue;
+ }
+
+ for (i=0; i<num_pending; i++) {
+ if (result == cli_smb_req_mid(cli->pending[i])) {
+ break;
+ }
+ }
+
+ if (i == num_pending) {
+ return result;
+ }
}
- req->async = tmp_reqs;
- req->num_async += 1;
+}
- req->async[req->num_async-1] = async_req_new(mem_ctx);
- if (req->async[req->num_async-1] == NULL) {
- DEBUG(0, ("async_req_new failed\n"));
- req->num_async -= 1;
- return NULL;
+void cli_smb_req_unset_pending(struct tevent_req *req)
+{
+ struct cli_smb_state *state = tevent_req_data(
+ req, struct cli_smb_state);
+ struct cli_state *cli = state->cli;
+ int num_pending = talloc_array_length(cli->pending);
+ int i;
+
+ if (num_pending == 1) {
+ /*
+ * The pending read_smb tevent_req is a child of
+ * cli->pending. So if nothing is pending anymore, we need to
+ * delete the socket read fde.
+ */
+ TALLOC_FREE(cli->pending);
+ return;
}
- req->async[req->num_async-1]->private_data = req;
- req->async[req->num_async-1]->print = cli_request_print;
- talloc_set_destructor(req->async[req->num_async-1],
- cli_async_req_destructor);
- if (!smb_splice_chain(&req->outbuf, smb_command, wct, vwv,
- bytes_alignment, num_bytes, bytes)) {
- goto fail;
+ for (i=0; i<num_pending; i++) {
+ if (req == cli->pending[i]) {
+ break;
+ }
+ }
+ if (i == num_pending) {
+ /*
+ * Something's seriously broken. Just returning here is the
+ * right thing nevertheless, the point of this routine is to
+ * remove ourselves from cli->pending.
+ */
+ return;
+ }
+
+ /*
+ * Remove ourselves from the cli->pending array
+ */
+ if (num_pending > 1) {
+ cli->pending[i] = cli->pending[num_pending-1];
}
- return req->async[req->num_async-1];
+ /*
+ * No NULL check here, we're shrinking by sizeof(void *), and
+ * talloc_realloc just adjusts the size for this.
+ */
+ cli->pending = talloc_realloc(NULL, cli->pending, struct tevent_req *,
+ num_pending - 1);
+ return;
+}
- fail:
- TALLOC_FREE(req->async[req->num_async-1]);
- req->num_async -= 1;
- return NULL;
+static int cli_smb_req_destructor(struct tevent_req *req)
+{
+ cli_smb_req_unset_pending(req);
+ return 0;
}
-/**
- * @brief prepare a cli_state to accept a chain of requests
- * @param[in] cli The cli_state we want to queue up in
- * @param[in] ev The event_context that will call us back for the socket
- * @param[in] size_hint How many bytes are expected, just an optimization
- * @retval Did we have enough memory?
- *
- * cli_chain_cork() sets up a new cli_request in cli->chain_accumulator. If
- * cli is used in an async fashion, i.e. if we have outstanding requests, then
- * we do not have to create a fd event. If cli is used only with the sync
- * helpers, we need to create the fd_event here.
- *
- * If you want to issue a chained request to the server, do a
- * cli_chain_cork(), then do you cli_open_send(), cli_read_and_x_send(),
- * cli_close_send() and so on. The async requests that come out of
- * cli_xxx_send() are normal async requests with the difference that they
- * won't be shipped individually. But the event_context will still trigger the
- * req->async.fn to be called on every single request.
- *
- * You have to take care yourself that you only issue chainable requests in
- * the middle of the chain.
- */
+static void cli_smb_received(struct tevent_req *subreq);
-bool cli_chain_cork(struct cli_state *cli, struct event_context *ev,
- size_t size_hint)
+bool cli_smb_req_set_pending(struct tevent_req *req)
{
- struct cli_request *req = NULL;
+ struct cli_smb_state *state = tevent_req_data(
+ req, struct cli_smb_state);
+ struct cli_state *cli;
+ struct tevent_req **pending;
+ int num_pending;
+ struct tevent_req *subreq;
+
+ cli = state->cli;
+ num_pending = talloc_array_length(cli->pending);
+
+ pending = talloc_realloc(cli, cli->pending, struct tevent_req *,
+ num_pending+1);
+ if (pending == NULL) {
+ return false;
+ }
+ pending[num_pending] = req;
+ cli->pending = pending;
+ talloc_set_destructor(req, cli_smb_req_destructor);
- SMB_ASSERT(cli->chain_accumulator == NULL);
+ if (num_pending > 0) {
+ return true;
+ }
- if (cli->fd == -1) {
- DEBUG(10, ("cli->fd closed\n"));
+ /*
+ * We're the first ones, add the read_smb request that waits for the
+ * answer from the server
+ */
+ subreq = read_smb_send(cli->pending, state->ev, cli->fd);
+ if (subreq == NULL) {
+ cli_smb_req_unset_pending(req);
return false;
}
+ tevent_req_set_callback(subreq, cli_smb_received, cli);
+ return true;
+}
- if (cli->fd_event == NULL) {
- SMB_ASSERT(cli->outstanding_requests == NULL);
- cli->fd_event = event_add_fd(ev, cli, cli->fd,
- EVENT_FD_READ,
- cli_state_handler, cli);
- if (cli->fd_event == NULL) {
- return false;
- }
- }
+/*
+ * Fetch a smb request's mid. Only valid after the request has been sent by
+ * cli_smb_req_send().
+ */
+uint16_t cli_smb_req_mid(struct tevent_req *req)
+{
+ struct cli_smb_state *state = tevent_req_data(
+ req, struct cli_smb_state);
+ return SVAL(state->header, smb_mid);
+}
- req = talloc(cli, struct cli_request);
- if (req == NULL) {
- goto fail;
+void cli_smb_req_set_mid(struct tevent_req *req, uint16_t mid)
+{
+ struct cli_smb_state *state = tevent_req_data(
+ req, struct cli_smb_state);
+ state->mid = mid;
+}
+
+static size_t iov_len(const struct iovec *iov, int count)
+{
+ size_t result = 0;
+ int i;
+ for (i=0; i<count; i++) {
+ result += iov[i].iov_len;
}
- req->cli = cli;
+ return result;
+}
- if (size_hint == 0) {
- size_hint = 100;
+static uint8_t *iov_concat(TALLOC_CTX *mem_ctx, const struct iovec *iov,
+ int count)
+{
+ size_t len = iov_len(iov, count);
+ size_t copied;
+ uint8_t *buf;
+ int i;
+
+ buf = talloc_array(mem_ctx, uint8_t, len);
+ if (buf == NULL) {
+ return NULL;
}
- req->outbuf = talloc_array(req, uint8_t, smb_wct + size_hint);
- if (req->outbuf == NULL) {
- goto fail;
+ copied = 0;
+ for (i=0; i<count; i++) {
+ memcpy(buf+copied, iov[i].iov_base, iov[i].iov_len);
+ copied += iov[i].iov_len;
}
- req->outbuf = TALLOC_REALLOC_ARRAY(NULL, req->outbuf, uint8_t,
- smb_wct);
+ return buf;
+}
- req->num_async = 0;
- req->async = NULL;
+struct tevent_req *cli_smb_req_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ uint8_t smb_command,
+ uint8_t additional_flags,
+ uint8_t wct, uint16_t *vwv,
+ int iov_count,
+ struct iovec *bytes_iov)
+{
+ struct tevent_req *result;
+ struct cli_smb_state *state;
- req->enc_state = NULL;
- req->recv_helper.fn = NULL;
+ if (iov_count > MAX_SMB_IOV) {
+ /*
+ * Should not happen :-)
+ */
+ return NULL;
+ }
- SSVAL(req->outbuf, smb_tid, cli->cnum);
- cli_setup_packet_buf(cli, (char *)req->outbuf);
+ result = tevent_req_create(mem_ctx, &state, struct cli_smb_state);
+ if (result == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+ state->cli = cli;
+ state->mid = 0; /* Set to auto-choose in cli_smb_req_send */
+ state->chain_num = 0;
+ state->chained_requests = NULL;
+
+ cli_setup_packet_buf(cli, (char *)state->header);
+ SCVAL(state->header, smb_com, smb_command);
+ SSVAL(state->header, smb_tid, cli->cnum);
+ SCVAL(state->header, smb_wct, wct);
+
+ state->vwv = vwv;
+
+ SSVAL(state->bytecount_buf, 0, iov_len(bytes_iov, iov_count));
+
+ state->iov[0].iov_base = state->header;
+ state->iov[0].iov_len = sizeof(state->header);
+ state->iov[1].iov_base = state->vwv;
+ state->iov[1].iov_len = wct * sizeof(uint16_t);
+ state->iov[2].iov_base = state->bytecount_buf;
+ state->iov[2].iov_len = sizeof(uint16_t);
+
+ if (iov_count != 0) {
+ memcpy(&state->iov[3], bytes_iov,
+ iov_count * sizeof(*bytes_iov));
+ }
+ state->iov_count = iov_count + 3;
- req->mid = cli_new_mid(cli);
+ return result;
+}
- cli->chain_accumulator = req;
+static bool cli_signv(struct cli_state *cli, struct iovec *iov, int count,
+ uint32_t *seqnum)
+{
+ uint8_t *buf;
- DEBUG(10, ("cli_chain_cork: mid=%d\n", req->mid));
+ /*
+ * Obvious optimization: Make cli_calculate_sign_mac work with struct
+ * iovec directly. MD5Update would do that just fine.
+ */
- return true;
- fail:
- TALLOC_FREE(req);
- if (cli->outstanding_requests == NULL) {
- TALLOC_FREE(cli->fd_event);
+ if ((count <= 0) || (iov[0].iov_len < smb_wct)) {
+ return false;
}
- return false;
-}
-/**
- * Ship a request queued up via cli_request_chain()
- * @param[in] cl The connection
- */
+ buf = iov_concat(talloc_tos(), iov, count);
+ if (buf == NULL) {
+ return false;
+ }
-void cli_chain_uncork(struct cli_state *cli)
-{
- struct cli_request *req = cli->chain_accumulator;
- size_t smblen;
+ cli_calculate_sign_mac(cli, (char *)buf, seqnum);
+ memcpy(iov[0].iov_base, buf, iov[0].iov_len);
- SMB_ASSERT(req != NULL);
+ TALLOC_FREE(buf);
+ return true;
+}
- DLIST_ADD_END(cli->outstanding_requests, req, struct cli_request *);
- talloc_set_destructor(req, cli_request_destructor);
+static void cli_smb_sent(struct tevent_req *subreq);
- cli->chain_accumulator = NULL;
+static bool cli_smb_req_iov_send(struct tevent_req *req,
+ struct cli_smb_state *state,
+ struct iovec *iov, int iov_count)
+{
+ struct tevent_req *subreq;
- SSVAL(req->outbuf, smb_mid, req->mid);
+ if (iov[0].iov_len < smb_wct) {
+ return false;
+ }
- smblen = talloc_get_size(req->outbuf) - 4;
+ if (state->mid != 0) {
+ SSVAL(iov[0].iov_base, smb_mid, state->mid);
+ } else {
+ SSVAL(iov[0].iov_base, smb_mid, cli_alloc_mid(state->cli));
+ }
- smb_setlen((char *)req->outbuf, smblen);
+ smb_setlen((char *)iov[0].iov_base, iov_len(iov, iov_count) - 4);
- if (smblen > 0x1ffff) {
- /*
- * This is a POSIX 14 word large write. Overwrite just the
- * size field, the '0xFFSMB' has been set by smb_setlen which
- * _smb_setlen_large does not do.
- */
- _smb_setlen_large(((char *)req->outbuf), smblen);
+ if (!cli_signv(state->cli, iov, iov_count, &state->seqnum)) {
+ return false;
}
- cli_calculate_sign_mac(cli, (char *)req->outbuf, &req->seqnum);
-
- if (cli_encryption_on(cli)) {
+ if (cli_encryption_on(state->cli)) {
NTSTATUS status;
- char *enc_buf;
+ char *buf, *enc_buf;
- status = cli_encrypt_message(cli, (char *)req->outbuf,
+ buf = (char *)iov_concat(talloc_tos(), iov, iov_count);
+ if (buf == NULL) {
+ return false;
+ }
+ status = cli_encrypt_message(state->cli, (char *)buf,
&enc_buf);
+ TALLOC_FREE(buf);
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(0, ("Error in encrypting client message. "
- "Error %s\n", nt_errstr(status)));
- TALLOC_FREE(req);
- return;
+ DEBUG(0, ("Error in encrypting client message: %s\n",
+ nt_errstr(status)));
+ return false;
}
- req->outbuf = (uint8_t *)enc_buf;
- req->enc_state = cli->trans_enc_state;
+ buf = (char *)talloc_memdup(state, enc_buf,
+ smb_len(enc_buf)+4);
+ SAFE_FREE(enc_buf);
+ if (buf == NULL) {
+ return false;
+ }
+ iov[0].iov_base = buf;
+ iov[0].iov_len = talloc_get_size(buf);
+ subreq = writev_send(state, state->ev, state->cli->outgoing,
+ state->cli->fd, iov, 1);
+ } else {
+ subreq = writev_send(state, state->ev, state->cli->outgoing,
+ state->cli->fd, iov, iov_count);
+ }
+ if (subreq == NULL) {
+ return false;
}
+ tevent_req_set_callback(subreq, cli_smb_sent, req);
+ return true;
+}
- req->sent = 0;
+bool cli_smb_req_send(struct tevent_req *req)
+{
+ struct cli_smb_state *state = tevent_req_data(
+ req, struct cli_smb_state);
- event_fd_set_writeable(cli->fd_event);
+ return cli_smb_req_iov_send(req, state, state->iov, state->iov_count);
}
-/**
- * @brief Send a request to the server
- * @param[in] mem_ctx The TALLOC_CTX for the result
- * @param[in] ev The event context that will call us back
- * @param[in] cli The cli_state we queue the request up for
- * @param[in] smb_command The command that we want to issue
- * @param[in] additional_flags open_and_x wants to add oplock header flags
- * @param[in] wct How many words?
- * @param[in] vwv The words, already in network order
- * @param[in] bytes_alignment How shall we align "bytes"?
- * @param[in] num_bytes How many bytes?
- * @param[in] bytes The data the request ships
- *
- * This is the generic routine to be used by the cli_xxx_send routines.
- */
-
-struct async_req *cli_request_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- uint8_t smb_command,
- uint8_t additional_flags,
- uint8_t wct, const uint16_t *vwv,
- size_t bytes_alignment,
- uint32_t num_bytes, const uint8_t *bytes)
+struct tevent_req *cli_smb_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ uint8_t smb_command,
+ uint8_t additional_flags,
+ uint8_t wct, uint16_t *vwv,
+ uint32_t num_bytes,
+ const uint8_t *bytes)
{
- struct async_req *result;
- bool uncork = false;
-
- if (cli->chain_accumulator == NULL) {
- if (!cli_chain_cork(cli, ev,
- wct * sizeof(uint16_t) + num_bytes + 3)) {
- DEBUG(1, ("cli_chain_cork failed\n"));
- return NULL;
- }
- uncork = true;
- }
+ struct tevent_req *req;
+ struct iovec iov;
- result = cli_request_chain(mem_ctx, ev, cli, smb_command,
- additional_flags, wct, vwv, bytes_alignment,
- num_bytes, bytes);
+ iov.iov_base = CONST_DISCARD(char *, bytes);
+ iov.iov_len = num_bytes;
- if (result == NULL) {
- DEBUG(1, ("cli_request_chain failed\n"));
+ req = cli_smb_req_create(mem_ctx, ev, cli, smb_command,
+ additional_flags, wct, vwv, 1, &iov);
+ if (req == NULL) {
+ return NULL;
}
+ if (!cli_smb_req_send(req)) {
+ TALLOC_FREE(req);
+ }
+ return req;
+}
- if (uncork) {
- cli_chain_uncork(cli);
+static void cli_smb_sent(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_smb_state *state = tevent_req_data(
+ req, struct cli_smb_state);
+ ssize_t nwritten;
+ int err;
+
+ nwritten = writev_recv(subreq, &err);
+ TALLOC_FREE(subreq);
+ if (nwritten == -1) {
+ tevent_req_nterror(req, map_nt_error_from_unix(err));
+ return;
}
- return result;
-}
+ switch (CVAL(state->header, smb_com)) {
+ case SMBtranss:
+ case SMBtranss2:
+ case SMBnttranss:
+ case SMBntcancel:
+ state->inbuf = NULL;
+ tevent_req_done(req);
+ return;
+ case SMBlockingX:
+ if ((CVAL(state->header, smb_wct) == 8) &&
+ (CVAL(state->vwv+3, 0) == LOCKING_ANDX_OPLOCK_RELEASE)) {
+ state->inbuf = NULL;
+ tevent_req_done(req);
+ return;
+ }
+ }
-/**
- * Calculate the current ofs to wct for requests like write&x
- * @param[in] req The smb request we're currently building
- * @retval how many bytes offset have we accumulated?
- */
+ if (!cli_smb_req_set_pending(req)) {
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return;
+ }
+}
-uint16_t cli_wct_ofs(const struct cli_state *cli)
+static void cli_smb_received(struct tevent_req *subreq)
{
- size_t buf_size;
+ struct cli_state *cli = tevent_req_callback_data(
+ subreq, struct cli_state);
+ struct tevent_req *req;
+ struct cli_smb_state *state;
+ struct tevent_context *ev;
+ NTSTATUS status;
+ uint8_t *inbuf;
+ ssize_t received;
+ int num_pending;
+ int i, err;
+ uint16_t mid;
+ bool oplock_break;
+
+ received = read_smb_recv(subreq, talloc_tos(), &inbuf, &err);
+ TALLOC_FREE(subreq);
+ if (received == -1) {
+ status = map_nt_error_from_unix(err);
+ goto fail;
+ }
- if (cli->chain_accumulator == NULL) {
- return smb_wct - 4;
+ if ((IVAL(inbuf, 4) != 0x424d53ff) /* 0xFF"SMB" */
+ && (SVAL(inbuf, 4) != 0x45ff)) /* 0xFF"E" */ {
+ DEBUG(10, ("Got non-SMB PDU\n"));
+ status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+ goto fail;
}
- buf_size = talloc_get_size(cli->chain_accumulator->outbuf);
+ if (cli_encryption_on(cli) && (CVAL(inbuf, 0) == 0)) {
+ uint16_t enc_ctx_num;
+
+ status = get_enc_ctx_num(inbuf, &enc_ctx_num);
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(10, ("get_enc_ctx_num returned %s\n",
+ nt_errstr(status)));
+ goto fail;
+ }
+
+ if (enc_ctx_num != cli->trans_enc_state->enc_ctx_num) {
+ DEBUG(10, ("wrong enc_ctx %d, expected %d\n",
+ enc_ctx_num,
+ cli->trans_enc_state->enc_ctx_num));
+ status = NT_STATUS_INVALID_HANDLE;
+ goto fail;
+ }
- if (buf_size == smb_wct) {
- return smb_wct - 4;
+ status = common_decrypt_buffer(cli->trans_enc_state,
+ (char *)inbuf);
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(10, ("common_decrypt_buffer returned %s\n",
+ nt_errstr(status)));
+ goto fail;
+ }
}
- /*
- * Add alignment for subsequent requests
- */
+ mid = SVAL(inbuf, smb_mid);
+ num_pending = talloc_array_length(cli->pending);
- if ((buf_size % 4) != 0) {
- buf_size += (4 - (buf_size % 4));
+ for (i=0; i<num_pending; i++) {
+ if (mid == cli_smb_req_mid(cli->pending[i])) {
+ break;
+ }
+ }
+ if (i == num_pending) {
+ /* Dump unexpected reply */
+ TALLOC_FREE(inbuf);
+ goto done;
}
- return buf_size - 4;
-}
+ oplock_break = false;
-/**
- * Figure out if there is an andx command behind the current one
- * @param[in] buf The smb buffer to look at
- * @param[in] ofs The offset to the wct field that is followed by the cmd
- * @retval Is there a command following?
- */
+ if (mid == 0xffff) {
+ /*
+ * Paranoia checks that this is really an oplock break request.
+ */
+ oplock_break = (smb_len(inbuf) == 51); /* hdr + 8 words */
+ oplock_break &= ((CVAL(inbuf, smb_flg) & FLAG_REPLY) == 0);
+ oplock_break &= (CVAL(inbuf, smb_com) == SMBlockingX);
+ oplock_break &= (SVAL(inbuf, smb_vwv6) == 0);
+ oplock_break &= (SVAL(inbuf, smb_vwv7) == 0);
+
+ if (!oplock_break) {
+ /* Dump unexpected reply */
+ TALLOC_FREE(inbuf);
+ goto done;
+ }
+ }
-static bool have_andx_command(const char *buf, uint16_t ofs)
-{
- uint8_t wct;
- size_t buflen = talloc_get_size(buf);
+ req = cli->pending[i];
+ state = tevent_req_data(req, struct cli_smb_state);
+ ev = state->ev;
- if ((ofs == buflen-1) || (ofs == buflen)) {
- return false;
+ if (!oplock_break /* oplock breaks are not signed */
+ && !cli_check_sign_mac(cli, (char *)inbuf, state->seqnum+1)) {
+ DEBUG(10, ("cli_check_sign_mac failed\n"));
+ TALLOC_FREE(inbuf);
+ status = NT_STATUS_ACCESS_DENIED;
+ goto fail;
}
- wct = CVAL(buf, ofs);
- if (wct < 2) {
+ if (state->chained_requests == NULL) {
+ state->inbuf = talloc_move(state, &inbuf);
+ talloc_set_destructor(req, NULL);
+ cli_smb_req_destructor(req);
+ tevent_req_done(req);
+ } else {
+ struct tevent_req **chain = talloc_move(
+ talloc_tos(), &state->chained_requests);
+ int num_chained = talloc_array_length(chain);
+
+ for (i=0; i<num_chained; i++) {
+ state = tevent_req_data(chain[i], struct
+ cli_smb_state);
+ state->inbuf = inbuf;
+ state->chain_num = i;
+ tevent_req_done(chain[i]);
+ }
+ TALLOC_FREE(inbuf);
+ TALLOC_FREE(chain);
+ }
+ done:
+ if (talloc_array_length(cli->pending) > 0) {
/*
- * Not enough space for the command and a following pointer
+ * Set up another read request for the other pending cli_smb
+ * requests
*/
- return false;
+ state = tevent_req_data(cli->pending[0], struct cli_smb_state);
+ subreq = read_smb_send(cli->pending, state->ev, cli->fd);
+ if (subreq == NULL) {
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
+ }
+ tevent_req_set_callback(subreq, cli_smb_received, cli);
+ }
+ return;
+ fail:
+ /*
+ * Cancel all pending requests. We don't do a for-loop walking
+ * cli->pending because that array changes in
+ * cli_smb_req_destructor().
+ */
+ while (talloc_array_length(cli->pending) > 0) {
+ req = cli->pending[0];
+ talloc_set_destructor(req, NULL);
+ cli_smb_req_destructor(req);
+ tevent_req_nterror(req, status);
}
- return (CVAL(buf, ofs+1) != 0xff);
}
-/**
- * @brief Pull reply data out of a request
- * @param[in] req The request that we just received a reply for
- * @param[out] pwct How many words did the server send?
- * @param[out] pvwv The words themselves
- * @param[out] pnum_bytes How many bytes did the server send?
- * @param[out] pbytes The bytes themselves
- * @retval Was the reply formally correct?
- */
-
-NTSTATUS cli_pull_reply(struct async_req *req,
- uint8_t *pwct, uint16_t **pvwv,
- uint16_t *pnum_bytes, uint8_t **pbytes)
+NTSTATUS cli_smb_recv(struct tevent_req *req, uint8_t min_wct,
+ uint8_t *pwct, uint16_t **pvwv,
+ uint32_t *pnum_bytes, uint8_t **pbytes)
{
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
- uint8_t wct, cmd;
+ struct cli_smb_state *state = tevent_req_data(
+ req, struct cli_smb_state);
+ NTSTATUS status = NT_STATUS_OK;
+ uint8_t cmd, wct;
uint16_t num_bytes;
size_t wct_ofs, bytes_offset;
- int i, j;
- NTSTATUS status;
-
- for (i = 0; i < cli_req->num_async; i++) {
- if (req == cli_req->async[i]) {
- break;
- }
- }
+ int i;
- if (i == cli_req->num_async) {
- cli_set_error(cli_req->cli, NT_STATUS_INVALID_PARAMETER);
- return NT_STATUS_INVALID_PARAMETER;
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
}
- /**
- * The status we pull here is only relevant for the last reply in the
- * chain.
- */
-
- status = cli_pull_error(cli_req->inbuf);
-
- if (i == 0) {
- if (NT_STATUS_IS_ERR(status)
- && !have_andx_command(cli_req->inbuf, smb_wct)) {
- cli_set_error(cli_req->cli, status);
- return status;
- }
- wct_ofs = smb_wct;
- goto done;
+ if (state->inbuf == NULL) {
+ /* This was a request without a reply */
+ return NT_STATUS_OK;
}
- cmd = CVAL(cli_req->inbuf, smb_com);
wct_ofs = smb_wct;
+ cmd = CVAL(state->inbuf, smb_com);
- for (j = 0; j < i; j++) {
- if (j < i-1) {
+ for (i=0; i<state->chain_num; i++) {
+ if (i < state->chain_num-1) {
if (cmd == 0xff) {
return NT_STATUS_REQUEST_ABORTED;
}
@@ -745,7 +856,7 @@ NTSTATUS cli_pull_reply(struct async_req *req,
}
}
- if (!have_andx_command(cli_req->inbuf, wct_ofs)) {
+ if (!have_andx_command((char *)state->inbuf, wct_ofs)) {
/*
* This request was not completed because a previous
* request in the chain had received an error.
@@ -753,7 +864,7 @@ NTSTATUS cli_pull_reply(struct async_req *req,
return NT_STATUS_REQUEST_ABORTED;
}
- wct_ofs = SVAL(cli_req->inbuf, wct_ofs + 3);
+ wct_ofs = SVAL(state->inbuf, wct_ofs + 3);
/*
* Skip the all-present length field. No overflow, we've just
@@ -761,14 +872,16 @@ NTSTATUS cli_pull_reply(struct async_req *req,
*/
wct_ofs += 4;
- if (wct_ofs+2 > talloc_get_size(cli_req->inbuf)) {
+ if (wct_ofs+2 > talloc_get_size(state->inbuf)) {
return NT_STATUS_INVALID_NETWORK_RESPONSE;
}
- cmd = CVAL(cli_req->inbuf, wct_ofs + 1);
+ cmd = CVAL(state->inbuf, wct_ofs + 1);
}
- if (!have_andx_command(cli_req->inbuf, wct_ofs)
+ status = cli_pull_error((char *)state->inbuf);
+
+ if (!have_andx_command((char *)state->inbuf, wct_ofs)
&& NT_STATUS_IS_ERR(status)) {
/*
* The last command takes the error code. All further commands
@@ -778,358 +891,241 @@ NTSTATUS cli_pull_reply(struct async_req *req,
return status;
}
- done:
- wct = CVAL(cli_req->inbuf, wct_ofs);
-
+ wct = CVAL(state->inbuf, wct_ofs);
bytes_offset = wct_ofs + 1 + wct * sizeof(uint16_t);
- num_bytes = SVAL(cli_req->inbuf, bytes_offset);
+ num_bytes = SVAL(state->inbuf, bytes_offset);
+
+ if (wct < min_wct) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
/*
* wct_ofs is a 16-bit value plus 4, wct is a 8-bit value, num_bytes
* is a 16-bit value. So bytes_offset being size_t should be far from
* wrapping.
*/
-
- if ((bytes_offset + 2 > talloc_get_size(cli_req->inbuf))
+ if ((bytes_offset + 2 > talloc_get_size(state->inbuf))
|| (bytes_offset > 0xffff)) {
return NT_STATUS_INVALID_NETWORK_RESPONSE;
}
- *pwct = wct;
- *pvwv = (uint16_t *)(cli_req->inbuf + wct_ofs + 1);
- *pnum_bytes = num_bytes;
- *pbytes = (uint8_t *)cli_req->inbuf + bytes_offset + 2;
-
- return NT_STATUS_OK;
-}
-
-/**
- * Decrypt a PDU, check the signature
- * @param[in] cli The cli_state that received something
- * @param[in] pdu The incoming bytes
- * @retval error code
- */
-
-
-static NTSTATUS validate_smb_crypto(struct cli_state *cli, char *pdu,
- struct cli_request **_req,
- uint16_t *_mid)
-{
- NTSTATUS status;
- struct cli_request *req = NULL;
- uint16_t mid;
-
- *_req = NULL;
- *_mid = 0;
-
- if ((IVAL(pdu, 4) != 0x424d53ff) /* 0xFF"SMB" */
- && (SVAL(pdu, 4) != 0x45ff)) /* 0xFF"E" */ {
- DEBUG(10, ("Got non-SMB PDU\n"));
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
- }
-
- if (cli_encryption_on(cli) && CVAL(pdu, 0) == 0) {
- uint16_t enc_ctx_num;
-
- status = get_enc_ctx_num((uint8_t *)pdu, &enc_ctx_num);
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(10, ("get_enc_ctx_num returned %s\n",
- nt_errstr(status)));
- return status;
- }
-
- if (enc_ctx_num != cli->trans_enc_state->enc_ctx_num) {
- DEBUG(10, ("wrong enc_ctx %d, expected %d\n",
- enc_ctx_num,
- cli->trans_enc_state->enc_ctx_num));
- return NT_STATUS_INVALID_HANDLE;
- }
-
- status = common_decrypt_buffer(cli->trans_enc_state, pdu);
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(10, ("common_decrypt_buffer returned %s\n",
- nt_errstr(status)));
- return status;
- }
+ if (pwct != NULL) {
+ *pwct = wct;
}
-
- mid = SVAL(pdu, smb_mid);
-
- for (req = cli->outstanding_requests; req; req = req->next) {
- if (req->mid == mid) {
- break;
- }
+ if (pvwv != NULL) {
+ *pvwv = (uint16_t *)(state->inbuf + wct_ofs + 1);
}
-
- if (!req) {
- /* oplock breaks are not signed */
- goto done;
+ if (pnum_bytes != NULL) {
+ *pnum_bytes = num_bytes;
}
-
- if (!cli_check_sign_mac(cli, pdu, req->seqnum+1)) {
- DEBUG(10, ("cli_check_sign_mac failed\n"));
- return NT_STATUS_ACCESS_DENIED;
+ if (pbytes != NULL) {
+ *pbytes = (uint8_t *)state->inbuf + bytes_offset + 2;
}
-done:
- *_req = req;
- *_mid = mid;
return NT_STATUS_OK;
}
-/**
- * A PDU has arrived on cli->evt_inbuf
- * @param[in] cli The cli_state that received something
- */
-
-static void handle_incoming_pdu(struct cli_state *cli)
+size_t cli_smb_wct_ofs(struct tevent_req **reqs, int num_reqs)
{
- struct cli_request *req, *next;
- uint16_t mid;
- size_t raw_pdu_len, buf_len, rest_len;
- char *pdu;
+ size_t wct_ofs;
int i;
- NTSTATUS status;
-
- int num_async;
- /*
- * The encrypted PDU len might differ from the unencrypted one
- */
- raw_pdu_len = smb_len(cli->evt_inbuf) + 4;
- buf_len = talloc_get_size(cli->evt_inbuf);
- rest_len = buf_len - raw_pdu_len;
+ wct_ofs = smb_wct - 4;
- if (buf_len == raw_pdu_len) {
- /*
- * Optimal case: Exactly one PDU was in the socket buffer
- */
- pdu = cli->evt_inbuf;
- cli->evt_inbuf = NULL;
+ for (i=0; i<num_reqs; i++) {
+ struct cli_smb_state *state;
+ state = tevent_req_data(reqs[i], struct cli_smb_state);
+ wct_ofs += iov_len(state->iov+1, state->iov_count-1);
+ wct_ofs = (wct_ofs + 3) & ~3;
}
- else {
- DEBUG(11, ("buf_len = %d, raw_pdu_len = %d, splitting "
- "buffer\n", (int)buf_len, (int)raw_pdu_len));
-
- if (raw_pdu_len < rest_len) {
- /*
- * The PDU is shorter, talloc_memdup that one.
- */
- pdu = (char *)talloc_memdup(
- cli, cli->evt_inbuf, raw_pdu_len);
-
- memmove(cli->evt_inbuf, cli->evt_inbuf + raw_pdu_len,
- buf_len - raw_pdu_len);
-
- cli->evt_inbuf = TALLOC_REALLOC_ARRAY(
- NULL, cli->evt_inbuf, char, rest_len);
-
- if (pdu == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto invalidate_requests;
- }
- }
- else {
- /*
- * The PDU is larger than the rest, talloc_memdup the
- * rest
- */
- pdu = cli->evt_inbuf;
-
- cli->evt_inbuf = (char *)talloc_memdup(
- cli, pdu + raw_pdu_len, rest_len);
+ return wct_ofs;
+}
- if (cli->evt_inbuf == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto invalidate_requests;
- }
- }
+bool cli_smb_chain_send(struct tevent_req **reqs, int num_reqs)
+{
+ struct cli_smb_state *first_state = tevent_req_data(
+ reqs[0], struct cli_smb_state);
+ struct cli_smb_state *last_state = tevent_req_data(
+ reqs[num_reqs-1], struct cli_smb_state);
+ struct cli_smb_state *state;
+ size_t wct_offset;
+ size_t chain_padding = 0;
+ int i, iovlen;
+ struct iovec *iov = NULL;
+ struct iovec *this_iov;
+
+ iovlen = 0;
+ for (i=0; i<num_reqs; i++) {
+ state = tevent_req_data(reqs[i], struct cli_smb_state);
+ iovlen += state->iov_count;
}
- status = validate_smb_crypto(cli, pdu, &req, &mid);
- if (!NT_STATUS_IS_OK(status)) {
- goto invalidate_requests;
+ iov = talloc_array(last_state, struct iovec, iovlen);
+ if (iov == NULL) {
+ goto fail;
}
- DEBUG(10, ("handle_incoming_pdu: got mid %d\n", mid));
-
- if (req == NULL) {
- DEBUG(3, ("Request for mid %d not found, dumping PDU\n", mid));
-
- TALLOC_FREE(pdu);
- return;
+ first_state->chained_requests = (struct tevent_req **)talloc_memdup(
+ last_state, reqs, sizeof(*reqs) * num_reqs);
+ if (first_state->chained_requests == NULL) {
+ goto fail;
}
- req->inbuf = talloc_move(req, &pdu);
+ wct_offset = smb_wct - 4;
+ this_iov = iov;
- /*
- * Freeing the last async_req will free the req (see
- * cli_async_req_destructor). So make a copy of req->num_async, we
- * can't reference it in the last round.
- */
+ for (i=0; i<num_reqs; i++) {
+ size_t next_padding = 0;
+ uint16_t *vwv;
- num_async = req->num_async;
+ state = tevent_req_data(reqs[i], struct cli_smb_state);
- for (i=0; i<num_async; i++) {
- /**
- * A request might have been talloc_free()'ed before we arrive
- * here. It will have removed itself from req->async via its
- * destructor cli_async_req_destructor().
- */
- if (req->async[i] != NULL) {
- if (req->recv_helper.fn != NULL) {
- req->recv_helper.fn(req->async[i]);
- } else {
- async_req_done(req->async[i]);
+ if (i < num_reqs-1) {
+ if (!is_andx_req(CVAL(state->header, smb_com))
+ || CVAL(state->header, smb_wct) < 2) {
+ goto fail;
}
}
- }
- return;
- invalidate_requests:
-
- DEBUG(10, ("handle_incoming_pdu: Aborting with %s\n",
- nt_errstr(status)));
-
- for (req = cli->outstanding_requests; req; req = next) {
- next = req->next;
- if (req->num_async) {
- async_req_nterror(req->async[0], status);
+ wct_offset += iov_len(state->iov+1, state->iov_count-1) + 1;
+ if ((wct_offset % 4) != 0) {
+ next_padding = 4 - (wct_offset % 4);
}
- }
- return;
-}
-
-/**
- * fd event callback. This is the basic connection to the socket
- * @param[in] event_ctx The event context that called us
- * @param[in] event The event that fired
- * @param[in] flags EVENT_FD_READ | EVENT_FD_WRITE
- * @param[in] p private_data, in this case the cli_state
- */
-
-static void cli_state_handler(struct event_context *event_ctx,
- struct fd_event *event, uint16 flags, void *p)
-{
- struct cli_state *cli = (struct cli_state *)p;
- struct cli_request *req, *next;
- NTSTATUS status;
-
- DEBUG(11, ("cli_state_handler called with flags %d\n", flags));
-
- if (flags & EVENT_FD_WRITE) {
- size_t to_send;
- ssize_t sent;
-
- for (req = cli->outstanding_requests; req; req = req->next) {
- to_send = smb_len(req->outbuf)+4;
- if (to_send > req->sent) {
- break;
- }
+ wct_offset += next_padding;
+ vwv = state->vwv;
+
+ if (i < num_reqs-1) {
+ struct cli_smb_state *next_state = tevent_req_data(
+ reqs[i+1], struct cli_smb_state);
+ SCVAL(vwv+0, 0, CVAL(next_state->header, smb_com));
+ SCVAL(vwv+0, 1, 0);
+ SSVAL(vwv+1, 0, wct_offset);
+ } else if (is_andx_req(CVAL(state->header, smb_com))) {
+ /* properly end the chain */
+ SCVAL(vwv+0, 0, 0xff);
+ SCVAL(vwv+0, 1, 0xff);
+ SSVAL(vwv+1, 0, 0);
}
- if (req == NULL) {
- if (cli->fd_event != NULL) {
- event_fd_set_not_writeable(cli->fd_event);
- }
- return;
- }
-
- sent = sys_send(cli->fd, req->outbuf + req->sent,
- to_send - req->sent, 0);
-
- if (sent < 0) {
- status = map_nt_error_from_unix(errno);
- goto sock_error;
- }
-
- req->sent += sent;
-
- if (req->sent == to_send) {
- return;
+ if (i == 0) {
+ this_iov[0] = state->iov[0];
+ } else {
+ /*
+ * This one is a bit subtle. We have to add
+ * chain_padding bytes between the requests, and we
+ * have to also include the wct field of the
+ * subsequent requests. We use the subsequent header
+ * for the padding, it contains the wct field in its
+ * last byte.
+ */
+ this_iov[0].iov_len = chain_padding+1;
+ this_iov[0].iov_base = &state->header[
+ sizeof(state->header) - this_iov[0].iov_len];
+ memset(this_iov[0].iov_base, 0, this_iov[0].iov_len-1);
}
+ memcpy(this_iov+1, state->iov+1,
+ sizeof(struct iovec) * (state->iov_count-1));
+ this_iov += state->iov_count;
+ chain_padding = next_padding;
}
- if (flags & EVENT_FD_READ) {
- int res, available;
- size_t old_size, new_size;
- char *tmp;
-
- res = ioctl(cli->fd, FIONREAD, &available);
- if (res == -1) {
- DEBUG(10, ("ioctl(FIONREAD) failed: %s\n",
- strerror(errno)));
- status = map_nt_error_from_unix(errno);
- goto sock_error;
- }
-
- if (available == 0) {
- /* EOF */
- status = NT_STATUS_END_OF_FILE;
- goto sock_error;
- }
-
- old_size = talloc_get_size(cli->evt_inbuf);
- new_size = old_size + available;
+ if (!cli_smb_req_iov_send(reqs[0], last_state, iov, iovlen)) {
+ goto fail;
+ }
+ return true;
+ fail:
+ TALLOC_FREE(iov);
+ return false;
+}
- if (new_size < old_size) {
- /* wrap */
- status = NT_STATUS_UNEXPECTED_IO_ERROR;
- goto sock_error;
- }
+uint8_t *cli_smb_inbuf(struct tevent_req *req)
+{
+ struct cli_smb_state *state = tevent_req_data(
+ req, struct cli_smb_state);
+ return state->inbuf;
+}
- tmp = TALLOC_REALLOC_ARRAY(cli, cli->evt_inbuf, char,
- new_size);
- if (tmp == NULL) {
- /* nomem */
- status = NT_STATUS_NO_MEMORY;
- goto sock_error;
- }
- cli->evt_inbuf = tmp;
+bool cli_has_async_calls(struct cli_state *cli)
+{
+ return ((tevent_queue_length(cli->outgoing) != 0)
+ || (talloc_array_length(cli->pending) != 0));
+}
- res = sys_recv(cli->fd, cli->evt_inbuf + old_size, available, 0);
- if (res == -1) {
- DEBUG(10, ("recv failed: %s\n", strerror(errno)));
- status = map_nt_error_from_unix(errno);
- goto sock_error;
- }
+struct cli_smb_oplock_break_waiter_state {
+ uint16_t fnum;
+ uint8_t level;
+};
- DEBUG(11, ("cli_state_handler: received %d bytes, "
- "smb_len(evt_inbuf) = %d\n", (int)res,
- smb_len(cli->evt_inbuf)));
+static void cli_smb_oplock_break_waiter_done(struct tevent_req *subreq);
- /* recv *might* have returned less than announced */
- new_size = old_size + res;
+struct tevent_req *cli_smb_oplock_break_waiter_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli)
+{
+ struct tevent_req *req, *subreq;
+ struct cli_smb_oplock_break_waiter_state *state;
+ struct cli_smb_state *smb_state;
- /* shrink, so I don't expect errors here */
- cli->evt_inbuf = TALLOC_REALLOC_ARRAY(cli, cli->evt_inbuf,
- char, new_size);
+ req = tevent_req_create(mem_ctx, &state,
+ struct cli_smb_oplock_break_waiter_state);
+ if (req == NULL) {
+ return NULL;
+ }
- while ((cli->evt_inbuf != NULL)
- && ((smb_len(cli->evt_inbuf) + 4) <= new_size)) {
- /*
- * we've got a complete NBT level PDU in evt_inbuf
- */
- handle_incoming_pdu(cli);
- new_size = talloc_get_size(cli->evt_inbuf);
- }
+ /*
+ * Create a fake SMB request that we will never send out. This is only
+ * used to be set into the pending queue with the right mid.
+ */
+ subreq = cli_smb_req_create(mem_ctx, ev, cli, 0, 0, 0, NULL, 0, NULL);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
}
+ smb_state = tevent_req_data(subreq, struct cli_smb_state);
+ SSVAL(smb_state->header, smb_mid, 0xffff);
- return;
+ if (!cli_smb_req_set_pending(subreq)) {
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, cli_smb_oplock_break_waiter_done, req);
+ return req;
+}
- sock_error:
+static void cli_smb_oplock_break_waiter_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_smb_oplock_break_waiter_state *state = tevent_req_data(
+ req, struct cli_smb_oplock_break_waiter_state);
+ uint8_t wct;
+ uint16_t *vwv;
+ uint32_t num_bytes;
+ uint8_t *bytes;
+ NTSTATUS status;
- for (req = cli->outstanding_requests; req; req = next) {
- int i, num_async;
+ status = cli_smb_recv(subreq, 8, &wct, &vwv, &num_bytes, &bytes);
+ if (!NT_STATUS_IS_OK(status)) {
+ TALLOC_FREE(subreq);
+ tevent_req_nterror(req, status);
+ return;
+ }
+ state->fnum = SVAL(vwv+2, 0);
+ state->level = CVAL(vwv+3, 1);
+ tevent_req_done(req);
+}
- next = req->next;
- num_async = req->num_async;
+NTSTATUS cli_smb_oplock_break_waiter_recv(struct tevent_req *req,
+ uint16_t *pfnum,
+ uint8_t *plevel)
+{
+ struct cli_smb_oplock_break_waiter_state *state = tevent_req_data(
+ req, struct cli_smb_oplock_break_waiter_state);
+ NTSTATUS status;
- for (i=0; i<num_async; i++) {
- async_req_nterror(req->async[i], status);
- }
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
}
- TALLOC_FREE(cli->fd_event);
- close(cli->fd);
- cli->fd = -1;
+ *pfnum = state->fnum;
+ *plevel = state->level;
+ return NT_STATUS_OK;
}
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index aa1ca595a7..53a812d222 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -165,14 +165,30 @@ static uint32 cli_session_setup_capabilities(struct cli_state *cli)
Do a NT1 guest session setup.
****************************************************************************/
-struct async_req *cli_session_setup_guest_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli)
+struct cli_session_setup_guest_state {
+ struct cli_state *cli;
+ uint16_t vwv[16];
+};
+
+static void cli_session_setup_guest_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_session_setup_guest_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli)
{
- struct async_req *result;
- uint16_t vwv[13];
+ struct tevent_req *req, *subreq;
+ struct cli_session_setup_guest_state *state;
+ uint16_t *vwv;
uint8_t *bytes;
+ req = tevent_req_create(mem_ctx, &state,
+ struct cli_session_setup_guest_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->cli = cli;
+ vwv = state->vwv;
+
SCVAL(vwv+0, 0, 0xFF);
SCVAL(vwv+0, 1, 0);
SSVAL(vwv+1, 0, 0);
@@ -186,7 +202,7 @@ struct async_req *cli_session_setup_guest_send(TALLOC_CTX *mem_ctx,
SSVAL(vwv+10, 0, 0);
SIVAL(vwv+11, 0, cli_session_setup_capabilities(cli));
- bytes = talloc_array(talloc_tos(), uint8_t, 0);
+ bytes = talloc_array(state, uint8_t, 0);
bytes = smb_bytes_push_str(bytes, cli_ucs2(cli), "", 1, /* username */
NULL);
@@ -195,68 +211,78 @@ struct async_req *cli_session_setup_guest_send(TALLOC_CTX *mem_ctx,
bytes = smb_bytes_push_str(bytes, cli_ucs2(cli), "Unix", 5, NULL);
bytes = smb_bytes_push_str(bytes, cli_ucs2(cli), "Samba", 6, NULL);
- if (bytes == NULL) {
- return NULL;
+ if (tevent_req_nomem(bytes, req)) {
+ return tevent_req_post(req, ev);
}
- result = cli_request_send(mem_ctx, ev, cli, SMBsesssetupX, 0,
- 13, vwv, 0, talloc_get_size(bytes), bytes);
- TALLOC_FREE(bytes);
- return result;
+ subreq = cli_smb_send(state, ev, cli, SMBsesssetupX, 0, 13, vwv,
+ talloc_get_size(bytes), bytes);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, cli_session_setup_guest_done, req);
+ return req;
}
-NTSTATUS cli_session_setup_guest_recv(struct async_req *req)
+static void cli_session_setup_guest_done(struct tevent_req *subreq)
{
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
- struct cli_state *cli = cli_req->cli;
- uint8_t wct;
- uint16_t *vwv;
- uint16_t num_bytes;
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_session_setup_guest_state *state = tevent_req_data(
+ req, struct cli_session_setup_guest_state);
+ struct cli_state *cli = state->cli;
+ uint32_t num_bytes;
+ char *inbuf;
uint8_t *bytes;
uint8_t *p;
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
- return status;
- }
-
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
+ status = cli_smb_recv(subreq, 0, NULL, NULL, &num_bytes, &bytes);
if (!NT_STATUS_IS_OK(status)) {
- return status;
+ TALLOC_FREE(subreq);
+ tevent_req_nterror(req, status);
+ return;
}
+ inbuf = (char *)cli_smb_inbuf(subreq);
p = bytes;
- cli->vuid = SVAL(cli_req->inbuf, smb_uid);
+ cli->vuid = SVAL(inbuf, smb_uid);
- p += clistr_pull(cli_req->inbuf, cli->server_os, (char *)p,
- sizeof(fstring), bytes+num_bytes-p, STR_TERMINATE);
- p += clistr_pull(cli_req->inbuf, cli->server_type, (char *)p,
- sizeof(fstring), bytes+num_bytes-p, STR_TERMINATE);
- p += clistr_pull(cli_req->inbuf, cli->server_domain, (char *)p,
- sizeof(fstring), bytes+num_bytes-p, STR_TERMINATE);
+ p += clistr_pull(inbuf, cli->server_os, (char *)p, sizeof(fstring),
+ bytes+num_bytes-p, STR_TERMINATE);
+ p += clistr_pull(inbuf, cli->server_type, (char *)p, sizeof(fstring),
+ bytes+num_bytes-p, STR_TERMINATE);
+ p += clistr_pull(inbuf, cli->server_domain, (char *)p, sizeof(fstring),
+ bytes+num_bytes-p, STR_TERMINATE);
if (strstr(cli->server_type, "Samba")) {
cli->is_samba = True;
}
+ TALLOC_FREE(subreq);
+
status = cli_set_username(cli, "");
if (!NT_STATUS_IS_OK(status)) {
- return status;
+ tevent_req_nterror(req, status);
+ return;
}
+ tevent_req_done(req);
+}
- return NT_STATUS_OK;
+NTSTATUS cli_session_setup_guest_recv(struct tevent_req *req)
+{
+ return tevent_req_simple_recv_ntstatus(req);
}
static NTSTATUS cli_session_setup_guest(struct cli_state *cli)
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS status;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
@@ -276,13 +302,17 @@ static NTSTATUS cli_session_setup_guest(struct cli_state *cli)
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = cli_session_setup_guest_recv(req);
fail:
TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
return status;
}
@@ -1189,18 +1219,33 @@ bool cli_ulogoff(struct cli_state *cli)
Send a tconX.
****************************************************************************/
-struct async_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- const char *share, const char *dev,
- const char *pass, int passlen)
+struct cli_tcon_andx_state {
+ struct cli_state *cli;
+ uint16_t vwv[4];
+};
+
+static void cli_tcon_andx_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const char *share, const char *dev,
+ const char *pass, int passlen)
{
+ struct tevent_req *req, *subreq;
+ struct cli_tcon_andx_state *state;
fstring pword;
+ uint16_t *vwv;
char *tmp = NULL;
- struct async_req *result;
- uint16_t vwv[4];
uint8_t *bytes;
+ req = tevent_req_create(mem_ctx, &state, struct cli_tcon_andx_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->cli = cli;
+ vwv = state->vwv;
+
fstrcpy(cli->share, share);
/* in user level security don't send a password now */
@@ -1263,9 +1308,9 @@ struct async_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx,
SSVAL(vwv+3, 0, passlen);
if (passlen) {
- bytes = (uint8_t *)talloc_memdup(talloc_tos(), pword, passlen);
+ bytes = (uint8_t *)talloc_memdup(state, pword, passlen);
} else {
- bytes = talloc_array(talloc_tos(), uint8_t, 0);
+ bytes = talloc_array(state, uint8_t, 0);
}
/*
@@ -1273,9 +1318,8 @@ struct async_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx,
*/
tmp = talloc_asprintf_strupper_m(talloc_tos(), "\\\\%s\\%s",
cli->desthost, share);
- if (tmp == NULL) {
- TALLOC_FREE(bytes);
- return NULL;
+ if (tevent_req_nomem(tmp, req)) {
+ return tevent_req_post(req, ev);
}
bytes = smb_bytes_push_str(bytes, cli_ucs2(cli), tmp, strlen(tmp)+1,
NULL);
@@ -1285,60 +1329,52 @@ struct async_req *cli_tcon_andx_send(TALLOC_CTX *mem_ctx,
* Add the devicetype
*/
tmp = talloc_strdup_upper(talloc_tos(), dev);
- if (tmp == NULL) {
- TALLOC_FREE(bytes);
- return NULL;
+ if (tevent_req_nomem(tmp, req)) {
+ return tevent_req_post(req, ev);
}
bytes = smb_bytes_push_str(bytes, false, tmp, strlen(tmp)+1, NULL);
TALLOC_FREE(tmp);
- if (bytes == NULL) {
- return NULL;
+ if (tevent_req_nomem(bytes, req)) {
+ return tevent_req_post(req, ev);
}
- result = cli_request_send(mem_ctx, ev, cli, SMBtconX, 0,
- 4, vwv, 0, talloc_get_size(bytes), bytes);
- TALLOC_FREE(bytes);
- return result;
+ subreq = cli_smb_send(state, ev, cli, SMBtconX, 0, 4, vwv,
+ talloc_get_size(bytes), bytes);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, cli_tcon_andx_done, req);
+ return req;
access_denied:
- {
- struct cli_request *state;
- if (!async_req_setup(mem_ctx, &result, &state,
- struct cli_request)) {
- goto fail;
- }
- if (async_post_ntstatus(result, ev, NT_STATUS_ACCESS_DENIED)) {
- return result;
- }
- }
- fail:
- TALLOC_FREE(result);
- return NULL;
+ tevent_req_nterror(req, NT_STATUS_ACCESS_DENIED);
+ return tevent_req_post(req, ev);
}
-NTSTATUS cli_tcon_andx_recv(struct async_req *req)
+static void cli_tcon_andx_done(struct tevent_req *subreq)
{
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
- struct cli_state *cli = cli_req->cli;
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_tcon_andx_state *state = tevent_req_data(
+ req, struct cli_tcon_andx_state);
+ struct cli_state *cli = state->cli;
+ char *inbuf = (char *)cli_smb_inbuf(subreq);
uint8_t wct;
uint16_t *vwv;
- uint16_t num_bytes;
+ uint32_t num_bytes;
uint8_t *bytes;
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
- return status;
- }
-
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
+ status = cli_smb_recv(subreq, 0, &wct, &vwv, &num_bytes, &bytes);
if (!NT_STATUS_IS_OK(status)) {
- return status;
+ TALLOC_FREE(subreq);
+ tevent_req_nterror(req, status);
+ return;
}
- clistr_pull(cli_req->inbuf, cli->dev, bytes, sizeof(fstring),
- num_bytes, STR_TERMINATE|STR_ASCII);
+ clistr_pull(inbuf, cli->dev, bytes, sizeof(fstring), num_bytes,
+ STR_TERMINATE|STR_ASCII);
if ((cli->protocol >= PROTOCOL_NT1) && (num_bytes == 3)) {
/* almost certainly win95 - enable bug fixes */
@@ -1356,8 +1392,13 @@ NTSTATUS cli_tcon_andx_recv(struct async_req *req)
cli->dfsroot = ((SVAL(vwv+2, 0) & SMB_SHARE_IN_DFS) != 0);
}
- cli->cnum = SVAL(cli_req->inbuf,smb_tid);
- return NT_STATUS_OK;
+ cli->cnum = SVAL(inbuf,smb_tid);
+ tevent_req_done(req);
+}
+
+NTSTATUS cli_tcon_andx_recv(struct tevent_req *req)
+{
+ return tevent_req_simple_recv_ntstatus(req);
}
NTSTATUS cli_tcon_andx(struct cli_state *cli, const char *share,
@@ -1365,10 +1406,10 @@ NTSTATUS cli_tcon_andx(struct cli_state *cli, const char *share,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS status;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
@@ -1388,13 +1429,17 @@ NTSTATUS cli_tcon_andx(struct cli_state *cli, const char *share,
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = cli_tcon_andx_recv(req);
fail:
TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
return status;
}
@@ -1461,14 +1506,27 @@ void cli_negprot_sendsync(struct cli_state *cli)
Send a negprot command.
****************************************************************************/
-struct async_req *cli_negprot_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli)
+struct cli_negprot_state {
+ struct cli_state *cli;
+};
+
+static void cli_negprot_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_negprot_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli)
{
- struct async_req *result;
+ struct tevent_req *req, *subreq;
+ struct cli_negprot_state *state;
uint8_t *bytes = NULL;
int numprots;
+ req = tevent_req_create(mem_ctx, &state, struct cli_negprot_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->cli = cli;
+
if (cli->protocol < PROTOCOL_NT1)
cli->use_spnego = False;
@@ -1479,51 +1537,54 @@ struct async_req *cli_negprot_send(TALLOC_CTX *mem_ctx,
break;
}
bytes = (uint8_t *)talloc_append_blob(
- talloc_tos(), bytes, data_blob_const(&c, sizeof(c)));
- if (bytes == NULL) {
- return NULL;
+ state, bytes, data_blob_const(&c, sizeof(c)));
+ if (tevent_req_nomem(bytes, req)) {
+ return tevent_req_post(req, ev);
}
bytes = smb_bytes_push_str(bytes, false,
prots[numprots].name,
strlen(prots[numprots].name)+1,
NULL);
- if (bytes == NULL) {
- return NULL;
+ if (tevent_req_nomem(bytes, req)) {
+ return tevent_req_post(req, ev);
}
}
- result = cli_request_send(mem_ctx, ev, cli, SMBnegprot, 0, 0, NULL, 0,
- talloc_get_size(bytes), bytes);
- TALLOC_FREE(bytes);
- return result;
+ subreq = cli_smb_send(state, ev, cli, SMBnegprot, 0, 0, NULL,
+ talloc_get_size(bytes), bytes);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, cli_negprot_done, req);
+ return req;
}
-NTSTATUS cli_negprot_recv(struct async_req *req)
+static void cli_negprot_done(struct tevent_req *subreq)
{
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
- struct cli_state *cli = cli_req->cli;
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_negprot_state *state = tevent_req_data(
+ req, struct cli_negprot_state);
+ struct cli_state *cli = state->cli;
uint8_t wct;
uint16_t *vwv;
- uint16_t num_bytes;
+ uint32_t num_bytes;
uint8_t *bytes;
NTSTATUS status;
uint16_t protnum;
- if (async_req_is_nterror(req, &status)) {
- return status;
- }
-
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
+ status = cli_smb_recv(subreq, 1, &wct, &vwv, &num_bytes, &bytes);
if (!NT_STATUS_IS_OK(status)) {
- return status;
+ TALLOC_FREE(subreq);
+ return;
}
protnum = SVAL(vwv, 0);
if ((protnum >= ARRAY_SIZE(prots))
- || (prots[protnum].prot > cli_req->cli->protocol)) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ || (prots[protnum].prot > cli->protocol)) {
+ tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
+ return;
}
cli->protocol = prots[protnum].prot;
@@ -1531,7 +1592,8 @@ NTSTATUS cli_negprot_recv(struct async_req *req)
if ((cli->protocol < PROTOCOL_NT1) &&
client_is_signing_mandatory(cli)) {
DEBUG(0,("cli_negprot: SMB signing is mandatory and the selected protocol level doesn't support it.\n"));
- return NT_STATUS_ACCESS_DENIED;
+ tevent_req_nterror(req, NT_STATUS_ACCESS_DENIED);
+ return;
}
if (cli->protocol >= PROTOCOL_NT1) {
@@ -1572,14 +1634,18 @@ NTSTATUS cli_negprot_recv(struct async_req *req)
/* Fail if server says signing is mandatory and we don't want to support it. */
if (!client_is_signing_allowed(cli)) {
DEBUG(0,("cli_negprot: SMB signing is mandatory and we have disabled it.\n"));
- return NT_STATUS_ACCESS_DENIED;
+ tevent_req_nterror(req,
+ NT_STATUS_ACCESS_DENIED);
+ return;
}
negotiated_smb_signing = true;
} else if (client_is_signing_mandatory(cli) && client_is_signing_allowed(cli)) {
/* Fail if client says signing is mandatory and the server doesn't support it. */
if (!(cli->sec_mode & NEGOTIATE_SECURITY_SIGNATURES_ENABLED)) {
DEBUG(1,("cli_negprot: SMB signing is mandatory and the server doesn't support it.\n"));
- return NT_STATUS_ACCESS_DENIED;
+ tevent_req_nterror(req,
+ NT_STATUS_ACCESS_DENIED);
+ return;
}
negotiated_smb_signing = true;
} else if (cli->sec_mode & NEGOTIATE_SECURITY_SIGNATURES_ENABLED) {
@@ -1625,41 +1691,52 @@ NTSTATUS cli_negprot_recv(struct async_req *req)
if (getenv("CLI_FORCE_ASCII"))
cli->capabilities &= ~CAP_UNICODE;
- return NT_STATUS_OK;
+ tevent_req_done(req);
+}
+
+NTSTATUS cli_negprot_recv(struct tevent_req *req)
+{
+ return tevent_req_simple_recv_ntstatus(req);
}
NTSTATUS cli_negprot(struct cli_state *cli)
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS status = NT_STATUS_NO_MEMORY;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
- cli_set_error(cli, NT_STATUS_INVALID_PARAMETER);
+ status = NT_STATUS_INVALID_PARAMETER;
goto fail;
}
ev = event_context_init(frame);
if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
req = cli_negprot_send(frame, ev, cli);
if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = cli_negprot_recv(req);
fail:
TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
return status;
}
@@ -2092,6 +2169,10 @@ NTSTATUS cli_full_connection(struct cli_state **output_cli,
return nt_status;
}
+ cli->use_oplocks = ((flags & CLI_FULL_CONNECTION_OPLOCKS) != 0);
+ cli->use_level_II_oplocks =
+ ((flags & CLI_FULL_CONNECTION_LEVEL_II_OPLOCKS) != 0);
+
nt_status = cli_session_setup(cli, user, password, pw_len, password,
pw_len, domain);
if (!NT_STATUS_IS_OK(nt_status)) {
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
index 6186387076..45addc2163 100644
--- a/source3/libsmb/clientgen.c
+++ b/source3/libsmb/clientgen.c
@@ -650,6 +650,12 @@ struct cli_state *cli_initialise_ex(int signing_state)
goto error;
}
+ cli->outgoing = tevent_queue_create(cli, "cli_outgoing");
+ if (cli->outgoing == NULL) {
+ goto error;
+ }
+ cli->pending = NULL;
+
cli->initialised = 1;
return cli;
@@ -740,6 +746,12 @@ void cli_shutdown(struct cli_state *cli)
cli->fd = -1;
cli->smb_rw_error = SMB_READ_OK;
+ /*
+ * Need to free pending first, they remove themselves
+ */
+ while (cli->pending) {
+ talloc_free(cli->pending[0]);
+ }
TALLOC_FREE(cli);
}
@@ -793,90 +805,72 @@ bool cli_send_keepalive(struct cli_state *cli)
return true;
}
-/**
- * @brief: Collect a echo reply
- * @param[in] req The corresponding async request
- *
- * There might be more than one echo reply. This helper pulls the reply out of
- * the data stream. If all expected replies have arrived, declare the
- * async_req done.
- */
-
-static void cli_echo_recv_helper(struct async_req *req)
-{
- struct cli_request *cli_req;
- uint8_t wct;
- uint16_t *vwv;
- uint16_t num_bytes;
- uint8_t *bytes;
- NTSTATUS status;
+struct cli_echo_state {
+ uint16_t vwv[1];
+ DATA_BLOB data;
+ int num_echos;
+};
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
- if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
- return;
- }
+static void cli_echo_done(struct tevent_req *subreq);
- cli_req = talloc_get_type_abort(req->private_data, struct cli_request);
+struct tevent_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli, uint16_t num_echos,
+ DATA_BLOB data)
+{
+ struct tevent_req *req, *subreq;
+ struct cli_echo_state *state;
- if ((num_bytes != cli_req->data.echo.data.length)
- || (memcmp(cli_req->data.echo.data.data, bytes,
- num_bytes) != 0)) {
- async_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
- return;
+ req = tevent_req_create(mem_ctx, &state, struct cli_echo_state);
+ if (req == NULL) {
+ return NULL;
}
+ SSVAL(state->vwv, 0, num_echos);
+ state->data = data;
+ state->num_echos = num_echos;
- cli_req->data.echo.num_echos -= 1;
-
- if (cli_req->data.echo.num_echos == 0) {
- async_req_done(req);
- return;
+ subreq = cli_smb_send(state, ev, cli, SMBecho, 0, 1, state->vwv,
+ data.length, data.data);
+ if (subreq == NULL) {
+ goto fail;
}
-
- return;
+ tevent_req_set_callback(subreq, cli_echo_done, req);
+ return req;
+ fail:
+ TALLOC_FREE(req);
+ return NULL;
}
-/**
- * @brief Send SMBEcho requests
- * @param[in] mem_ctx The memory context to put the async_req on
- * @param[in] ev The event context that will call us back
- * @param[in] cli The connection to send the echo to
- * @param[in] num_echos How many times do we want to get the reply?
- * @param[in] data The data we want to get back
- * @retval The async request
- */
-
-struct async_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli, uint16_t num_echos,
- DATA_BLOB data)
+static void cli_echo_done(struct tevent_req *subreq)
{
- uint16_t vwv[1];
- uint8_t *data_copy;
- struct async_req *result;
- struct cli_request *req;
-
- SSVAL(vwv, 0, num_echos);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_echo_state *state = tevent_req_data(
+ req, struct cli_echo_state);
+ NTSTATUS status;
+ uint32_t num_bytes;
+ uint8_t *bytes;
- data_copy = (uint8_t *)talloc_memdup(mem_ctx, data.data, data.length);
- if (data_copy == NULL) {
- return NULL;
+ status = cli_smb_recv(subreq, 0, NULL, NULL, &num_bytes, &bytes);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
}
-
- result = cli_request_send(mem_ctx, ev, cli, SMBecho, 0, 1, vwv, 0,
- data.length, data.data);
- if (result == NULL) {
- TALLOC_FREE(data_copy);
- return NULL;
+ if ((num_bytes != state->data.length)
+ || (memcmp(bytes, state->data.data, num_bytes) != 0)) {
+ tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
+ return;
}
- req = talloc_get_type_abort(result->private_data, struct cli_request);
- req->data.echo.num_echos = num_echos;
- req->data.echo.data.data = talloc_move(req, &data_copy);
- req->data.echo.data.length = data.length;
-
- req->recv_helper.fn = cli_echo_recv_helper;
+ state->num_echos -=1;
+ if (state->num_echos == 0) {
+ tevent_req_done(req);
+ return;
+ }
- return result;
+ if (!cli_smb_req_set_pending(subreq)) {
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return;
+ }
}
/**
@@ -885,9 +879,9 @@ struct async_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
* @retval Did the server reply correctly?
*/
-NTSTATUS cli_echo_recv(struct async_req *req)
+NTSTATUS cli_echo_recv(struct tevent_req *req)
{
- return async_req_simple_recv_ntstatus(req);
+ return tevent_req_simple_recv_ntstatus(req);
}
/**
@@ -904,35 +898,40 @@ NTSTATUS cli_echo(struct cli_state *cli, uint16_t num_echos, DATA_BLOB data)
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS status = NT_STATUS_NO_MEMORY;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
- cli_set_error(cli, NT_STATUS_INVALID_PARAMETER);
+ status = NT_STATUS_INVALID_PARAMETER;
goto fail;
}
ev = event_context_init(frame);
if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
req = cli_echo_send(frame, ev, cli, num_echos, data);
if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = cli_echo_recv(req);
-
fail:
TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
return status;
}
diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c
index 0703f04c5f..4293828214 100644
--- a/source3/libsmb/clifile.c
+++ b/source3/libsmb/clifile.c
@@ -771,22 +771,36 @@ int cli_nt_create_full(struct cli_state *cli, const char *fname,
return SVAL(cli->inbuf,smb_vwv2 + 1);
}
-struct async_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- const char *fname,
- uint32_t CreatFlags,
- uint32_t DesiredAccess,
- uint32_t FileAttributes,
- uint32_t ShareAccess,
- uint32_t CreateDisposition,
- uint32_t CreateOptions,
- uint8_t SecurityFlags)
-{
- struct async_req *result;
+struct cli_ntcreate_state {
+ uint16_t vwv[24];
+ uint16_t fnum;
+};
+
+static void cli_ntcreate_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const char *fname,
+ uint32_t CreatFlags,
+ uint32_t DesiredAccess,
+ uint32_t FileAttributes,
+ uint32_t ShareAccess,
+ uint32_t CreateDisposition,
+ uint32_t CreateOptions,
+ uint8_t SecurityFlags)
+{
+ struct tevent_req *req, *subreq;
+ struct cli_ntcreate_state *state;
+ uint16_t *vwv;
uint8_t *bytes;
size_t converted_len;
- uint16_t vwv[24];
+
+ req = tevent_req_create(mem_ctx, &state, struct cli_ntcreate_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ vwv = state->vwv;
SCVAL(vwv+0, 0, 0xFF);
SCVAL(vwv+0, 1, 0);
@@ -808,7 +822,7 @@ struct async_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx,
SIVAL(vwv+21, 1, 0x02); /* ImpersonationLevel */
SCVAL(vwv+23, 1, SecurityFlags);
- bytes = talloc_array(talloc_tos(), uint8_t, 0);
+ bytes = talloc_array(state, uint8_t, 0);
bytes = smb_bytes_push_str(bytes, cli_ucs2(cli),
fname, strlen(fname)+1,
&converted_len);
@@ -816,41 +830,53 @@ struct async_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx,
/* sigh. this copes with broken netapp filer behaviour */
bytes = smb_bytes_push_str(bytes, cli_ucs2(cli), "", 1, NULL);
- if (bytes == NULL) {
- return NULL;
+ if (tevent_req_nomem(bytes, req)) {
+ return tevent_req_post(req, ev);
}
SIVAL(vwv+2, 1, converted_len);
- result = cli_request_send(mem_ctx, ev, cli, SMBntcreateX, 0,
- 24, vwv, 0, talloc_get_size(bytes), bytes);
- TALLOC_FREE(bytes);
- return result;
+ subreq = cli_smb_send(state, ev, cli, SMBntcreateX, 0, 24, vwv,
+ talloc_get_size(bytes), bytes);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, cli_ntcreate_done, req);
+ return req;
}
-NTSTATUS cli_ntcreate_recv(struct async_req *req, uint16_t *pfnum)
+static void cli_ntcreate_done(struct tevent_req *subreq)
{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_ntcreate_state *state = tevent_req_data(
+ req, struct cli_ntcreate_state);
uint8_t wct;
uint16_t *vwv;
- uint16_t num_bytes;
+ uint32_t num_bytes;
uint8_t *bytes;
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
- return status;
- }
-
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
+ status = cli_smb_recv(subreq, 3, &wct, &vwv, &num_bytes, &bytes);
if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- if (wct < 3) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ TALLOC_FREE(subreq);
+ tevent_req_nterror(req, status);
+ return;
}
+ state->fnum = SVAL(vwv+2, 1);
+ tevent_req_done(req);
+}
- *pfnum = SVAL(vwv+2, 1);
+NTSTATUS cli_ntcreate_recv(struct tevent_req *req, uint16_t *pfnum)
+{
+ struct cli_ntcreate_state *state = tevent_req_data(
+ req, struct cli_ntcreate_state);
+ NTSTATUS status;
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *pfnum = state->fnum;
return NT_STATUS_OK;
}
@@ -867,10 +893,10 @@ NTSTATUS cli_ntcreate(struct cli_state *cli,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS status;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
@@ -893,13 +919,17 @@ NTSTATUS cli_ntcreate(struct cli_state *cli,
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = cli_ntcreate_recv(req, pfid);
fail:
TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
return status;
}
@@ -968,17 +998,33 @@ uint8_t *smb_bytes_push_str(uint8_t *buf, bool ucs2,
WARNING: if you open with O_WRONLY then getattrE won't work!
****************************************************************************/
-struct async_req *cli_open_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli,
- const char *fname, int flags, int share_mode)
+struct cli_open_state {
+ uint16_t vwv[15];
+ int fnum;
+ struct iovec bytes;
+};
+
+static void cli_open_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_open_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, const char *fname,
+ int flags, int share_mode,
+ struct tevent_req **psmbreq)
{
- unsigned openfn = 0;
- unsigned accessmode = 0;
- uint8_t additional_flags = 0;
+ struct tevent_req *req, *subreq;
+ struct cli_open_state *state;
+ unsigned openfn;
+ unsigned accessmode;
+ uint8_t additional_flags;
uint8_t *bytes;
- uint16_t vwv[15];
- struct async_req *result;
+ req = tevent_req_create(mem_ctx, &state, struct cli_open_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ openfn = 0;
if (flags & O_CREAT) {
openfn |= (1<<4);
}
@@ -1007,63 +1053,96 @@ struct async_req *cli_open_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
accessmode = 0xFF;
}
- SCVAL(vwv + 0, 0, 0xFF);
- SCVAL(vwv + 0, 1, 0);
- SSVAL(vwv + 1, 0, 0);
- SSVAL(vwv + 2, 0, 0); /* no additional info */
- SSVAL(vwv + 3, 0, accessmode);
- SSVAL(vwv + 4, 0, aSYSTEM | aHIDDEN);
- SSVAL(vwv + 5, 0, 0);
- SIVAL(vwv + 6, 0, 0);
- SSVAL(vwv + 8, 0, openfn);
- SIVAL(vwv + 9, 0, 0);
- SIVAL(vwv + 11, 0, 0);
- SIVAL(vwv + 13, 0, 0);
+ SCVAL(state->vwv + 0, 0, 0xFF);
+ SCVAL(state->vwv + 0, 1, 0);
+ SSVAL(state->vwv + 1, 0, 0);
+ SSVAL(state->vwv + 2, 0, 0); /* no additional info */
+ SSVAL(state->vwv + 3, 0, accessmode);
+ SSVAL(state->vwv + 4, 0, aSYSTEM | aHIDDEN);
+ SSVAL(state->vwv + 5, 0, 0);
+ SIVAL(state->vwv + 6, 0, 0);
+ SSVAL(state->vwv + 8, 0, openfn);
+ SIVAL(state->vwv + 9, 0, 0);
+ SIVAL(state->vwv + 11, 0, 0);
+ SIVAL(state->vwv + 13, 0, 0);
+
+ additional_flags = 0;
if (cli->use_oplocks) {
/* if using oplocks then ask for a batch oplock via
core and extended methods */
additional_flags =
FLAG_REQUEST_OPLOCK|FLAG_REQUEST_BATCH_OPLOCK;
- SSVAL(vwv+2, 0, SVAL(vwv+2, 0) | 6);
+ SSVAL(state->vwv+2, 0, SVAL(state->vwv+2, 0) | 6);
}
- bytes = talloc_array(talloc_tos(), uint8_t, 0);
+ bytes = talloc_array(state, uint8_t, 0);
bytes = smb_bytes_push_str(bytes, cli_ucs2(cli), fname,
strlen(fname)+1, NULL);
- if (bytes == NULL) {
+
+ if (tevent_req_nomem(bytes, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ state->bytes.iov_base = bytes;
+ state->bytes.iov_len = talloc_get_size(bytes);
+
+ subreq = cli_smb_req_create(state, ev, cli, SMBopenX, additional_flags,
+ 15, state->vwv, 1, &state->bytes);
+ if (subreq == NULL) {
+ TALLOC_FREE(req);
return NULL;
}
+ tevent_req_set_callback(subreq, cli_open_done, req);
+ *psmbreq = subreq;
+ return req;
+}
- result = cli_request_send(mem_ctx, ev, cli, SMBopenX, additional_flags,
- 15, vwv, 0, talloc_get_size(bytes), bytes);
- TALLOC_FREE(bytes);
- return result;
+struct tevent_req *cli_open_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli, const char *fname,
+ int flags, int share_mode)
+{
+ struct tevent_req *req, *subreq;
+
+ req = cli_open_create(mem_ctx, ev, cli, fname, flags, share_mode,
+ &subreq);
+ if ((req == NULL) || !cli_smb_req_send(subreq)) {
+ TALLOC_FREE(req);
+ return NULL;
+ }
+ return req;
}
-NTSTATUS cli_open_recv(struct async_req *req, int *fnum)
+static void cli_open_done(struct tevent_req *subreq)
{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_open_state *state = tevent_req_data(
+ req, struct cli_open_state);
uint8_t wct;
uint16_t *vwv;
- uint16_t num_bytes;
- uint8_t *bytes;
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
- return status;
- }
-
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
+ status = cli_smb_recv(subreq, 3, &wct, &vwv, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- if (wct < 3) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ TALLOC_FREE(subreq);
+ tevent_req_nterror(req, status);
+ return;
}
+ state->fnum = SVAL(vwv+2, 0);
+ tevent_req_done(req);
+}
- *fnum = SVAL(vwv+2, 0);
+NTSTATUS cli_open_recv(struct tevent_req *req, int *fnum)
+{
+ struct cli_open_state *state = tevent_req_data(
+ req, struct cli_open_state);
+ NTSTATUS status;
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *fnum = state->fnum;
return NT_STATUS_OK;
}
@@ -1072,34 +1151,41 @@ int cli_open(struct cli_state *cli, const char *fname, int flags,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
int result = -1;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
- cli_set_error(cli, NT_STATUS_INVALID_PARAMETER);
+ status = NT_STATUS_INVALID_PARAMETER;
goto fail;
}
ev = event_context_init(frame);
if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
req = cli_open_send(frame, ev, cli, fname, flags, share_mode);
if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
cli_open_recv(req, &result);
fail:
TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
return result;
}
@@ -1107,65 +1193,111 @@ int cli_open(struct cli_state *cli, const char *fname, int flags,
Close a file.
****************************************************************************/
-struct async_req *cli_close_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli, int fnum)
-{
+struct cli_close_state {
uint16_t vwv[3];
+};
+
+static void cli_close_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_close_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, int fnum,
+ struct tevent_req **psubreq)
+{
+ struct tevent_req *req, *subreq;
+ struct cli_close_state *state;
+
+ req = tevent_req_create(mem_ctx, &state, struct cli_close_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ SSVAL(state->vwv+0, 0, fnum);
+ SIVALS(state->vwv+1, 0, -1);
+
+ subreq = cli_smb_req_create(state, ev, cli, SMBclose, 0, 3, state->vwv,
+ 0, NULL);
+ if (subreq == NULL) {
+ TALLOC_FREE(req);
+ return NULL;
+ }
+ tevent_req_set_callback(subreq, cli_close_done, req);
+ *psubreq = subreq;
+ return req;
+}
- SSVAL(vwv+0, 0, fnum);
- SIVALS(vwv+1, 0, -1);
+struct tevent_req *cli_close_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, int fnum)
+{
+ struct tevent_req *req, *subreq;
- return cli_request_send(mem_ctx, ev, cli, SMBclose, 0, 3, vwv, 0,
- 0, NULL);
+ req = cli_close_create(mem_ctx, ev, cli, fnum, &subreq);
+ if ((req == NULL) || !cli_smb_req_send(subreq)) {
+ TALLOC_FREE(req);
+ return NULL;
+ }
+ return req;
}
-NTSTATUS cli_close_recv(struct async_req *req)
+static void cli_close_done(struct tevent_req *subreq)
{
- uint8_t wct;
- uint16_t *vwv;
- uint16_t num_bytes;
- uint8_t *bytes;
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
- return status;
+ status = cli_smb_recv(subreq, 0, NULL, NULL, NULL, NULL);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
}
+ tevent_req_done(req);
+}
- return cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
+NTSTATUS cli_close_recv(struct tevent_req *req)
+{
+ return tevent_req_simple_recv_ntstatus(req);
}
bool cli_close(struct cli_state *cli, int fnum)
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
bool result = false;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
- cli_set_error(cli, NT_STATUS_INVALID_PARAMETER);
+ status = NT_STATUS_INVALID_PARAMETER;
goto fail;
}
ev = event_context_init(frame);
if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
req = cli_close_send(frame, ev, cli, fnum);
if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
result = NT_STATUS_IS_OK(cli_close_recv(req));
fail:
TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
return result;
}
diff --git a/source3/libsmb/clikrb5.c b/source3/libsmb/clikrb5.c
index 4ab31374e2..aa98d7668f 100644
--- a/source3/libsmb/clikrb5.c
+++ b/source3/libsmb/clikrb5.c
@@ -56,12 +56,12 @@ static krb5_error_code ads_krb5_get_fwd_ticket( krb5_context context,
char *utf8_name;
size_t converted_size;
- if (!push_utf8_allocate(&utf8_name, name, &converted_size)) {
+ if (!push_utf8_talloc(talloc_tos(), &utf8_name, name, &converted_size)) {
return ENOMEM;
}
ret = krb5_parse_name(context, utf8_name, principal);
- SAFE_FREE(utf8_name);
+ TALLOC_FREE(utf8_name);
return ret;
}
@@ -79,24 +79,25 @@ static krb5_error_code smb_krb5_parse_name_norealm_conv(krb5_context context,
size_t converted_size;
*principal = NULL;
- if (!push_utf8_allocate(&utf8_name, name, &converted_size)) {
+ if (!push_utf8_talloc(talloc_tos(), &utf8_name, name, &converted_size)) {
return ENOMEM;
}
ret = krb5_parse_name_norealm(context, utf8_name, principal);
- SAFE_FREE(utf8_name);
+ TALLOC_FREE(utf8_name);
return ret;
}
#endif
/**************************************************************
krb5_parse_name that returns a UNIX charset name. Must
- be freed with normal free() call.
+ be freed with talloc_free() call.
**************************************************************/
- krb5_error_code smb_krb5_unparse_name(krb5_context context,
- krb5_const_principal principal,
- char **unix_name)
+krb5_error_code smb_krb5_unparse_name(TALLOC_CTX *mem_ctx,
+ krb5_context context,
+ krb5_const_principal principal,
+ char **unix_name)
{
krb5_error_code ret;
char *utf8_name;
@@ -108,7 +109,7 @@ static krb5_error_code smb_krb5_parse_name_norealm_conv(krb5_context context,
return ret;
}
- if (!pull_utf8_allocate(unix_name, utf8_name, &converted_size)) {
+ if (!pull_utf8_talloc(mem_ctx, unix_name, utf8_name, &converted_size)) {
krb5_free_unparsed_name(context, utf8_name);
return ENOMEM;
}
@@ -1081,10 +1082,10 @@ get_key_from_keytab(krb5_context context,
}
if ( DEBUGLEVEL >= 10 ) {
- if (smb_krb5_unparse_name(context, server, &name) == 0) {
+ if (smb_krb5_unparse_name(talloc_tos(), context, server, &name) == 0) {
DEBUG(10,("get_key_from_keytab: will look for kvno %d, enctype %d and name: %s\n",
kvno, enctype, name));
- SAFE_FREE(name);
+ TALLOC_FREE(name);
}
}
diff --git a/source3/libsmb/clioplock.c b/source3/libsmb/clioplock.c
index ef8b396461..e3fb66aba0 100644
--- a/source3/libsmb/clioplock.c
+++ b/source3/libsmb/clioplock.c
@@ -23,38 +23,103 @@
send an ack for an oplock break request
****************************************************************************/
-bool cli_oplock_ack(struct cli_state *cli, int fnum, unsigned char level)
+struct cli_oplock_ack_state {
+ uint16_t vwv[8];
+};
+
+static void cli_oplock_ack_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_oplock_ack_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct cli_state *cli,
+ uint16_t fnum, uint8_t level)
+{
+ struct tevent_req *req, *subreq;
+ struct cli_oplock_ack_state *state;
+
+ req = tevent_req_create(mem_ctx, &state, struct cli_oplock_ack_state);;
+ if (req == NULL) {
+ return NULL;
+ }
+ SCVAL(state->vwv+0, 0, 0xff);
+ SCVAL(state->vwv+0, 1, 0);
+ SSVAL(state->vwv+1, 0, 0);
+ SSVAL(state->vwv+2, 0, fnum);
+ SCVAL(state->vwv+3, 0, LOCKING_ANDX_OPLOCK_RELEASE);
+ SCVAL(state->vwv+3, 1, level);
+ SIVAL(state->vwv+4, 0, 0); /* timeout */
+ SSVAL(state->vwv+6, 0, 0); /* unlockcount */
+ SSVAL(state->vwv+7, 0, 0); /* lockcount */
+
+ subreq = cli_smb_send(state, ev, cli, SMBlockingX, 0, 8, state->vwv,
+ 0, NULL);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, cli_oplock_ack_done, req);
+ return req;
+}
+
+static void cli_oplock_ack_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ NTSTATUS status;
+
+ status = cli_smb_recv(subreq, 0, NULL, NULL, NULL, NULL);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS cli_oplock_ack_recv(struct tevent_req *req)
{
- char *oldbuf = cli->outbuf;
- char buf[smb_size+16];
- bool ret;
-
- cli->outbuf = buf;
-
- memset(buf,'\0',smb_size);
- cli_set_message(buf,8,0,True);
-
- SCVAL(buf,smb_com,SMBlockingX);
- SSVAL(buf,smb_tid, cli->cnum);
- cli_setup_packet(cli);
- SSVAL(buf,smb_vwv0,0xFF);
- SSVAL(buf,smb_vwv1,0);
- SSVAL(buf,smb_vwv2,fnum);
- if (level == 1)
- SSVAL(buf,smb_vwv3,0x102); /* levelII oplock break ack */
- else
- SSVAL(buf,smb_vwv3,2); /* exclusive oplock break ack */
- SIVAL(buf,smb_vwv4,0); /* timoeut */
- SSVAL(buf,smb_vwv6,0); /* unlockcount */
- SSVAL(buf,smb_vwv7,0); /* lockcount */
-
- ret = cli_send_smb(cli);
-
- cli->outbuf = oldbuf;
-
- return ret;
+ return tevent_req_simple_recv_ntstatus(req);
}
+bool cli_oplock_ack(struct cli_state *cli, int fnum, unsigned char level)
+{
+ TALLOC_CTX *frame = talloc_stackframe();
+ struct event_context *ev;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
+
+ if (cli_has_async_calls(cli)) {
+ /*
+ * Can't use sync call while an async call is in flight
+ */
+ status = NT_STATUS_INVALID_PARAMETER;
+ goto fail;
+ }
+
+ ev = event_context_init(frame);
+ if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
+ }
+
+ req = cli_oplock_ack_send(frame, ev, cli, fnum, level);
+ if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
+ }
+
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
+ }
+
+ status = cli_oplock_ack_recv(req);
+ fail:
+ TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
+ return NT_STATUS_IS_OK(status);
+}
/****************************************************************************
set the oplock handler for a connection
diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c
index f2f447b4c9..1d2f5f79ec 100644
--- a/source3/libsmb/clireadwrite.c
+++ b/source3/libsmb/clireadwrite.c
@@ -70,21 +70,25 @@ static size_t cli_write_max_bufsize(struct cli_state *cli, uint16_t write_mode)
return CLI_WINDOWS_MAX_LARGE_WRITEX_SIZE;
}
+struct cli_read_andx_state {
+ size_t size;
+ uint16_t vwv[12];
+ NTSTATUS status;
+ size_t received;
+ uint8_t *buf;
+};
-/*
- * Send a read&x request
- */
+static void cli_read_andx_done(struct tevent_req *subreq);
-struct async_req *cli_read_andx_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli, int fnum,
- off_t offset, size_t size)
+struct tevent_req *cli_read_andx_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, int fnum,
+ off_t offset, size_t size,
+ struct tevent_req **psmbreq)
{
- struct async_req *result;
- struct cli_request *req;
+ struct tevent_req *req, *subreq;
+ struct cli_read_andx_state *state;
bool bigoffset = False;
-
- uint16_t vwv[12];
uint8_t wct = 10;
if (size > cli_read_max_bufsize(cli)) {
@@ -94,82 +98,85 @@ struct async_req *cli_read_andx_send(TALLOC_CTX *mem_ctx,
return NULL;
}
- SCVAL(vwv + 0, 0, 0xFF);
- SCVAL(vwv + 0, 1, 0);
- SSVAL(vwv + 1, 0, 0);
- SSVAL(vwv + 2, 0, fnum);
- SIVAL(vwv + 3, 0, offset);
- SSVAL(vwv + 5, 0, size);
- SSVAL(vwv + 6, 0, size);
- SSVAL(vwv + 7, 0, (size >> 16));
- SSVAL(vwv + 8, 0, 0);
- SSVAL(vwv + 9, 0, 0);
+ req = tevent_req_create(mem_ctx, &state, struct cli_read_andx_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->size = size;
+
+ SCVAL(state->vwv + 0, 0, 0xFF);
+ SCVAL(state->vwv + 0, 1, 0);
+ SSVAL(state->vwv + 1, 0, 0);
+ SSVAL(state->vwv + 2, 0, fnum);
+ SIVAL(state->vwv + 3, 0, offset);
+ SSVAL(state->vwv + 5, 0, size);
+ SSVAL(state->vwv + 6, 0, size);
+ SSVAL(state->vwv + 7, 0, (size >> 16));
+ SSVAL(state->vwv + 8, 0, 0);
+ SSVAL(state->vwv + 9, 0, 0);
if ((uint64_t)offset >> 32) {
- bigoffset = True;
- SIVAL(vwv + 10, 0,
+ bigoffset = true;
+ SIVAL(state->vwv + 10, 0,
(((uint64_t)offset)>>32) & 0xffffffff);
wct += 2;
}
- result = cli_request_send(mem_ctx, ev, cli, SMBreadX, 0, wct, vwv, 0,
- 0, NULL);
- if (result == NULL) {
+ subreq = cli_smb_req_create(state, ev, cli, SMBreadX, 0, wct,
+ state->vwv, 0, NULL);
+ if (subreq == NULL) {
+ TALLOC_FREE(req);
return NULL;
}
+ tevent_req_set_callback(subreq, cli_read_andx_done, req);
+ *psmbreq = subreq;
+ return req;
+}
- req = talloc_get_type_abort(result->private_data, struct cli_request);
-
- req->data.read.ofs = offset;
- req->data.read.size = size;
- req->data.read.received = 0;
- req->data.read.rcvbuf = NULL;
+struct tevent_req *cli_read_andx_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, int fnum,
+ off_t offset, size_t size)
+{
+ struct tevent_req *req, *subreq;
- return result;
+ req = cli_read_andx_create(mem_ctx, ev, cli, fnum, offset, size,
+ &subreq);
+ if ((req == NULL) || !cli_smb_req_send(subreq)) {
+ TALLOC_FREE(req);
+ return NULL;
+ }
+ return req;
}
-/*
- * Pull the data out of a finished async read_and_x request. rcvbuf is
- * talloced from the request, so better make sure that you copy it away before
- * you talloc_free(req). "rcvbuf" is NOT a talloc_ctx of its own, so do not
- * talloc_move it!
- */
-
-NTSTATUS cli_read_andx_recv(struct async_req *req, ssize_t *received,
- uint8_t **rcvbuf)
+static void cli_read_andx_done(struct tevent_req *subreq)
{
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_read_andx_state *state = tevent_req_data(
+ req, struct cli_read_andx_state);
+ uint8_t *inbuf;
uint8_t wct;
uint16_t *vwv;
- uint16_t num_bytes;
+ uint32_t num_bytes;
uint8_t *bytes;
- uint8_t *buf;
- NTSTATUS status;
- size_t size;
-
- if (async_req_is_nterror(req, &status)) {
- return status;
- }
-
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
-
- if (NT_STATUS_IS_ERR(status)) {
- return status;
- }
- if (wct < 12) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ state->status = cli_smb_recv(subreq, 12, &wct, &vwv, &num_bytes,
+ &bytes);
+ if (NT_STATUS_IS_ERR(state->status)) {
+ tevent_req_nterror(req, state->status);
+ return;
}
/* size is the number of bytes the server returned.
* Might be zero. */
- size = SVAL(vwv + 5, 0);
- size |= (((unsigned int)SVAL(vwv + 7, 0)) << 16);
+ state->received = SVAL(vwv + 5, 0);
+ state->received |= (((unsigned int)SVAL(vwv + 7, 0)) << 16);
- if (size > cli_req->data.read.size) {
+ if (state->received > state->size) {
DEBUG(5,("server returned more than we wanted!\n"));
- return NT_STATUS_UNEXPECTED_IO_ERROR;
+ tevent_req_nterror(req, NT_STATUS_UNEXPECTED_IO_ERROR);
+ return;
}
/*
@@ -177,24 +184,52 @@ NTSTATUS cli_read_andx_recv(struct async_req *req, ssize_t *received,
* bcc field can't be correct.
*/
- if ((size < 0xffff) && (size > num_bytes)) {
+ if ((state->received < 0xffff) && (state->received > num_bytes)) {
DEBUG(5, ("server announced more bytes than sent\n"));
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
+ return;
}
- buf = (uint8_t *)smb_base(cli_req->inbuf) + SVAL(vwv+6, 0);
+ inbuf = cli_smb_inbuf(subreq);
+ state->buf = (uint8_t *)smb_base(inbuf) + SVAL(vwv+6, 0);
- if (trans_oob(smb_len(cli_req->inbuf), SVAL(vwv+6, 0), size)
- || (buf < bytes)) {
+ if (trans_oob(smb_len(inbuf), SVAL(vwv+6, 0), state->received)
+ || (state->buf < bytes)) {
DEBUG(5, ("server returned invalid read&x data offset\n"));
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
+ return;
}
+ tevent_req_done(req);
+}
+
+/*
+ * Pull the data out of a finished async read_and_x request. rcvbuf is
+ * talloced from the request, so better make sure that you copy it away before
+ * you talloc_free(req). "rcvbuf" is NOT a talloc_ctx of its own, so do not
+ * talloc_move it!
+ */
+
+NTSTATUS cli_read_andx_recv(struct tevent_req *req, ssize_t *received,
+ uint8_t **rcvbuf)
+{
+ struct cli_read_andx_state *state = tevent_req_data(
+ req, struct cli_read_andx_state);
+ NTSTATUS status;
- *rcvbuf = (uint8_t *)(smb_base(cli_req->inbuf) + SVAL(vwv + 6, 0));
- *received = size;
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *received = state->received;
+ *rcvbuf = state->buf;
return NT_STATUS_OK;
}
+struct cli_pull_subreq {
+ struct tevent_req *req;
+ ssize_t received;
+ uint8_t *buf;
+};
+
/*
* Parallel read support.
*
@@ -204,7 +239,7 @@ NTSTATUS cli_read_andx_recv(struct async_req *req, ssize_t *received,
*/
struct cli_pull_state {
- struct async_req *req;
+ struct tevent_req *req;
struct event_context *ev;
struct cli_state *cli;
@@ -221,7 +256,7 @@ struct cli_pull_state {
* Outstanding requests
*/
int num_reqs;
- struct async_req **reqs;
+ struct cli_pull_subreq *reqs;
/*
* For how many bytes did we send requests already?
@@ -243,13 +278,13 @@ struct cli_pull_state {
SMB_OFF_T pushed;
};
-static char *cli_pull_print(TALLOC_CTX *mem_ctx, struct async_req *req)
+static char *cli_pull_print(struct tevent_req *req, TALLOC_CTX *mem_ctx)
{
- struct cli_pull_state *state = talloc_get_type_abort(
- req->private_data, struct cli_pull_state);
+ struct cli_pull_state *state = tevent_req_data(
+ req, struct cli_pull_state);
char *result;
- result = async_req_print(mem_ctx, req);
+ result = tevent_req_print(mem_ctx, req);
if (result == NULL) {
return NULL;
}
@@ -259,31 +294,31 @@ static char *cli_pull_print(TALLOC_CTX *mem_ctx, struct async_req *req)
state->num_reqs, state->top_req);
}
-static void cli_pull_read_done(struct async_req *read_req);
+static void cli_pull_read_done(struct tevent_req *read_req);
/*
* Prepare an async pull request
*/
-struct async_req *cli_pull_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- uint16_t fnum, off_t start_offset,
- SMB_OFF_T size, size_t window_size,
- NTSTATUS (*sink)(char *buf, size_t n,
- void *priv),
- void *priv)
+struct tevent_req *cli_pull_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ uint16_t fnum, off_t start_offset,
+ SMB_OFF_T size, size_t window_size,
+ NTSTATUS (*sink)(char *buf, size_t n,
+ void *priv),
+ void *priv)
{
- struct async_req *result;
+ struct tevent_req *req;
struct cli_pull_state *state;
int i;
- if (!async_req_setup(mem_ctx, &result, &state,
- struct cli_pull_state)) {
+ req = tevent_req_create(mem_ctx, &state, struct cli_pull_state);
+ if (req == NULL) {
return NULL;
}
- result->print = cli_pull_print;
- state->req = result;
+ tevent_req_set_print_fn(req, cli_pull_print);
+ state->req = req;
state->cli = cli;
state->ev = ev;
@@ -297,10 +332,8 @@ struct async_req *cli_pull_send(TALLOC_CTX *mem_ctx,
state->top_req = 0;
if (size == 0) {
- if (!async_post_ntstatus(result, ev, NT_STATUS_OK)) {
- goto failed;
- }
- return result;
+ tevent_req_done(req);
+ return tevent_req_post(req, ev);
}
state->chunk_size = cli_read_max_bufsize(cli);
@@ -308,7 +341,7 @@ struct async_req *cli_pull_send(TALLOC_CTX *mem_ctx,
state->num_reqs = MAX(window_size/state->chunk_size, 1);
state->num_reqs = MIN(state->num_reqs, cli->max_mux);
- state->reqs = TALLOC_ZERO_ARRAY(state, struct async_req *,
+ state->reqs = TALLOC_ZERO_ARRAY(state, struct cli_pull_subreq,
state->num_reqs);
if (state->reqs == NULL) {
goto failed;
@@ -317,6 +350,7 @@ struct async_req *cli_pull_send(TALLOC_CTX *mem_ctx,
state->requested = 0;
for (i=0; i<state->num_reqs; i++) {
+ struct cli_pull_subreq *subreq = &state->reqs[i];
SMB_OFF_T size_left;
size_t request_thistime;
@@ -328,24 +362,21 @@ struct async_req *cli_pull_send(TALLOC_CTX *mem_ctx,
size_left = size - state->requested;
request_thistime = MIN(size_left, state->chunk_size);
- state->reqs[i] = cli_read_andx_send(
+ subreq->req = cli_read_andx_send(
state->reqs, ev, cli, fnum,
state->start_offset + state->requested,
request_thistime);
- if (state->reqs[i] == NULL) {
+ if (subreq->req == NULL) {
goto failed;
}
-
- state->reqs[i]->async.fn = cli_pull_read_done;
- state->reqs[i]->async.priv = result;
-
+ tevent_req_set_callback(subreq->req, cli_pull_read_done, req);
state->requested += request_thistime;
}
- return result;
+ return req;
failed:
- TALLOC_FREE(result);
+ TALLOC_FREE(req);
return NULL;
}
@@ -354,20 +385,32 @@ failed:
* requests if necessary.
*/
-static void cli_pull_read_done(struct async_req *read_req)
+static void cli_pull_read_done(struct tevent_req *subreq)
{
- struct async_req *pull_req = talloc_get_type_abort(
- read_req->async.priv, struct async_req);
- struct cli_pull_state *state = talloc_get_type_abort(
- pull_req->private_data, struct cli_pull_state);
- struct cli_request *read_state = talloc_get_type_abort(
- read_req->private_data, struct cli_request);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_pull_state *state = tevent_req_data(
+ req, struct cli_pull_state);
+ struct cli_pull_subreq *pull_subreq = NULL;
NTSTATUS status;
+ int i;
- status = cli_read_andx_recv(read_req, &read_state->data.read.received,
- &read_state->data.read.rcvbuf);
+ for (i = 0; i < state->num_reqs; i++) {
+ pull_subreq = &state->reqs[i];
+ if (subreq == pull_subreq->req) {
+ break;
+ }
+ }
+ if (i == state->num_reqs) {
+ /* Huh -- received something we did not send?? */
+ tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR);
+ return;
+ }
+
+ status = cli_read_andx_recv(subreq, &pull_subreq->received,
+ &pull_subreq->buf);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(state->req, status);
+ tevent_req_nterror(state->req, status);
return;
}
@@ -380,39 +423,36 @@ static void cli_pull_read_done(struct async_req *read_req)
* requests.
*/
- while (state->reqs[state->top_req] != NULL) {
- struct cli_request *top_read;
+ while (state->reqs[state->top_req].req != NULL) {
+ struct cli_pull_subreq *top_subreq;
DEBUG(11, ("cli_pull_read_done: top_req = %d\n",
state->top_req));
- if (state->reqs[state->top_req]->state < ASYNC_REQ_DONE) {
+ top_subreq = &state->reqs[state->top_req];
+
+ if (tevent_req_is_in_progress(top_subreq->req)) {
DEBUG(11, ("cli_pull_read_done: top request not yet "
"done\n"));
return;
}
- top_read = talloc_get_type_abort(
- state->reqs[state->top_req]->private_data,
- struct cli_request);
-
DEBUG(10, ("cli_pull_read_done: Pushing %d bytes, %d already "
- "pushed\n", (int)top_read->data.read.received,
+ "pushed\n", (int)top_subreq->received,
(int)state->pushed));
- status = state->sink((char *)top_read->data.read.rcvbuf,
- top_read->data.read.received,
- state->priv);
+ status = state->sink((char *)top_subreq->buf,
+ top_subreq->received, state->priv);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(state->req, status);
+ tevent_req_nterror(state->req, status);
return;
}
- state->pushed += top_read->data.read.received;
+ state->pushed += top_subreq->received;
- TALLOC_FREE(state->reqs[state->top_req]);
+ TALLOC_FREE(state->reqs[state->top_req].req);
if (state->requested < state->size) {
- struct async_req *new_req;
+ struct tevent_req *new_req;
SMB_OFF_T size_left;
size_t request_thistime;
@@ -432,30 +472,29 @@ static void cli_pull_read_done(struct async_req *read_req)
state->start_offset + state->requested,
request_thistime);
- if (async_req_nomem(new_req, state->req)) {
+ if (tevent_req_nomem(new_req, state->req)) {
return;
}
+ tevent_req_set_callback(new_req, cli_pull_read_done,
+ req);
- new_req->async.fn = cli_pull_read_done;
- new_req->async.priv = pull_req;
-
- state->reqs[state->top_req] = new_req;
+ state->reqs[state->top_req].req = new_req;
state->requested += request_thistime;
}
state->top_req = (state->top_req+1) % state->num_reqs;
}
- async_req_done(pull_req);
+ tevent_req_done(req);
}
-NTSTATUS cli_pull_recv(struct async_req *req, SMB_OFF_T *received)
+NTSTATUS cli_pull_recv(struct tevent_req *req, SMB_OFF_T *received)
{
- struct cli_pull_state *state = talloc_get_type_abort(
- req->private_data, struct cli_pull_state);
+ struct cli_pull_state *state = tevent_req_data(
+ req, struct cli_pull_state);
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
+ if (tevent_req_is_nterror(req, &status)) {
return status;
}
*received = state->pushed;
@@ -469,35 +508,42 @@ NTSTATUS cli_pull(struct cli_state *cli, uint16_t fnum,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS result = NT_STATUS_NO_MEMORY;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
- return NT_STATUS_INVALID_PARAMETER;
+ status = NT_STATUS_INVALID_PARAMETER;
+ goto fail;
}
ev = event_context_init(frame);
if (ev == NULL) {
- goto nomem;
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
}
req = cli_pull_send(frame, ev, cli, fnum, start_offset, size,
window_size, sink, priv);
if (req == NULL) {
- goto nomem;
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
- result = cli_pull_recv(req, received);
- nomem:
+ status = cli_pull_recv(req, received);
+ fail:
TALLOC_FREE(frame);
- return result;
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
+ return status;
}
static NTSTATUS cli_read_sink(char *buf, size_t n, void *priv)
@@ -744,19 +790,41 @@ ssize_t cli_smbwrite(struct cli_state *cli,
* Send a write&x request
*/
-struct async_req *cli_write_andx_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli, uint16_t fnum,
- uint16_t mode, const uint8_t *buf,
- off_t offset, size_t size)
+struct cli_write_andx_state {
+ size_t size;
+ uint16_t vwv[14];
+ size_t written;
+ uint8_t pad;
+ struct iovec iov[2];
+};
+
+static void cli_write_andx_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_write_andx_create(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, uint16_t fnum,
+ uint16_t mode, const uint8_t *buf,
+ off_t offset, size_t size,
+ struct tevent_req **reqs_before,
+ int num_reqs_before,
+ struct tevent_req **psmbreq)
{
+ struct tevent_req *req, *subreq;
+ struct cli_write_andx_state *state;
bool bigoffset = ((cli->capabilities & CAP_LARGE_FILES) != 0);
uint8_t wct = bigoffset ? 14 : 12;
size_t max_write = cli_write_max_bufsize(cli, mode);
- uint16_t vwv[14];
+ uint16_t *vwv;
+
+ req = tevent_req_create(mem_ctx, &state, struct cli_write_andx_state);
+ if (req == NULL) {
+ return NULL;
+ }
size = MIN(size, max_write);
+ vwv = state->vwv;
+
SCVAL(vwv+0, 0, 0xFF);
SCVAL(vwv+0, 1, 0);
SSVAL(vwv+1, 0, 0);
@@ -769,7 +837,7 @@ struct async_req *cli_write_andx_send(TALLOC_CTX *mem_ctx,
SSVAL(vwv+10, 0, size);
SSVAL(vwv+11, 0,
- cli_wct_ofs(cli)
+ cli_smb_wct_ofs(reqs_before, num_reqs_before)
+ 1 /* the wct field */
+ wct * 2 /* vwv */
+ 2 /* num_bytes field */
@@ -779,37 +847,70 @@ struct async_req *cli_write_andx_send(TALLOC_CTX *mem_ctx,
SIVAL(vwv+12, 0, (((uint64_t)offset)>>32) & 0xffffffff);
}
- return cli_request_send(mem_ctx, ev, cli, SMBwriteX, 0, wct, vwv,
- 2, size, buf);
+ state->pad = 0;
+ state->iov[0].iov_base = &state->pad;
+ state->iov[0].iov_len = 1;
+ state->iov[1].iov_base = CONST_DISCARD(uint8_t *, buf);
+ state->iov[1].iov_len = size;
+
+ subreq = cli_smb_req_create(state, ev, cli, SMBwriteX, 0, wct, vwv,
+ 2, state->iov);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, cli_write_andx_done, req);
+ *psmbreq = subreq;
+ return req;
}
-NTSTATUS cli_write_andx_recv(struct async_req *req, size_t *pwritten)
+struct tevent_req *cli_write_andx_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli, uint16_t fnum,
+ uint16_t mode, const uint8_t *buf,
+ off_t offset, size_t size)
{
+ struct tevent_req *req, *subreq;
+
+ req = cli_write_andx_create(mem_ctx, ev, cli, fnum, mode, buf, offset,
+ size, NULL, 0, &subreq);
+ if ((req == NULL) || !cli_smb_req_send(subreq)) {
+ TALLOC_FREE(req);
+ return NULL;
+ }
+ return req;
+}
+
+static void cli_write_andx_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_write_andx_state *state = tevent_req_data(
+ req, struct cli_write_andx_state);
uint8_t wct;
uint16_t *vwv;
- uint16_t num_bytes;
- uint8_t *bytes;
NTSTATUS status;
- size_t written;
- if (async_req_is_nterror(req, &status)) {
- return status;
+ status = cli_smb_recv(subreq, 6, &wct, &vwv, NULL, NULL);
+ if (NT_STATUS_IS_ERR(status)) {
+ TALLOC_FREE(subreq);
+ tevent_req_nterror(req, status);
+ return;
}
+ state->written = SVAL(vwv+2, 0);
+ state->written |= SVAL(vwv+4, 0)<<16;
+ tevent_req_done(req);
+}
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
+NTSTATUS cli_write_andx_recv(struct tevent_req *req, size_t *pwritten)
+{
+ struct cli_write_andx_state *state = tevent_req_data(
+ req, struct cli_write_andx_state);
+ NTSTATUS status;
- if (NT_STATUS_IS_ERR(status)) {
+ if (tevent_req_is_nterror(req, &status)) {
return status;
}
-
- if (wct < 6) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
- }
-
- written = SVAL(vwv+2, 0);
- written |= SVAL(vwv+4, 0)<<16;
- *pwritten = written;
-
+ *pwritten = state->written;
return NT_STATUS_OK;
}
@@ -824,22 +925,21 @@ struct cli_writeall_state {
size_t written;
};
-static void cli_writeall_written(struct async_req *req);
+static void cli_writeall_written(struct tevent_req *req);
-static struct async_req *cli_writeall_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- uint16_t fnum,
- uint16_t mode,
- const uint8_t *buf,
- off_t offset, size_t size)
+static struct tevent_req *cli_writeall_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ uint16_t fnum,
+ uint16_t mode,
+ const uint8_t *buf,
+ off_t offset, size_t size)
{
- struct async_req *result;
- struct async_req *subreq;
+ struct tevent_req *req, *subreq;
struct cli_writeall_state *state;
- if (!async_req_setup(mem_ctx, &result, &state,
- struct cli_writeall_state)) {
+ req = tevent_req_create(mem_ctx, &state, struct cli_writeall_state);
+ if (req == NULL) {
return NULL;
}
state->ev = ev;
@@ -854,46 +954,40 @@ static struct async_req *cli_writeall_send(TALLOC_CTX *mem_ctx,
subreq = cli_write_andx_send(state, state->ev, state->cli, state->fnum,
state->mode, state->buf, state->offset,
state->size);
- if (subreq == NULL) {
- goto fail;
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
}
-
- subreq->async.fn = cli_writeall_written;
- subreq->async.priv = result;
- return result;
-
- fail:
- TALLOC_FREE(result);
- return NULL;
+ tevent_req_set_callback(subreq, cli_writeall_written, req);
+ return req;
}
-static void cli_writeall_written(struct async_req *subreq)
+static void cli_writeall_written(struct tevent_req *subreq)
{
- struct async_req *req = talloc_get_type_abort(
- subreq->async.priv, struct async_req);
- struct cli_writeall_state *state = talloc_get_type_abort(
- req->private_data, struct cli_writeall_state);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_writeall_state *state = tevent_req_data(
+ req, struct cli_writeall_state);
NTSTATUS status;
size_t written, to_write;
status = cli_write_andx_recv(subreq, &written);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
+ tevent_req_nterror(req, status);
return;
}
state->written += written;
if (state->written > state->size) {
- async_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
+ tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
return;
}
to_write = state->size - state->written;
if (to_write == 0) {
- async_req_done(req);
+ tevent_req_done(req);
return;
}
@@ -901,22 +995,19 @@ static void cli_writeall_written(struct async_req *subreq)
state->mode,
state->buf + state->written,
state->offset + state->written, to_write);
- if (subreq == NULL) {
- async_req_nterror(req, NT_STATUS_NO_MEMORY);
+ if (tevent_req_nomem(subreq, req)) {
return;
}
-
- subreq->async.fn = cli_writeall_written;
- subreq->async.priv = req;
+ tevent_req_set_callback(subreq, cli_writeall_written, req);
}
-static NTSTATUS cli_writeall_recv(struct async_req *req)
+static NTSTATUS cli_writeall_recv(struct tevent_req *req)
{
- return async_req_simple_recv_ntstatus(req);
+ return tevent_req_simple_recv_ntstatus(req);
}
struct cli_push_write_state {
- struct async_req *req;/* This is the main request! Not the subreq */
+ struct tevent_req *req;/* This is the main request! Not the subreq */
uint32_t idx;
off_t ofs;
uint8_t *buf;
@@ -947,14 +1038,14 @@ struct cli_push_state {
struct cli_push_write_state **reqs;
};
-static void cli_push_written(struct async_req *req);
+static void cli_push_written(struct tevent_req *req);
-static bool cli_push_write_setup(struct async_req *req,
+static bool cli_push_write_setup(struct tevent_req *req,
struct cli_push_state *state,
uint32_t idx)
{
struct cli_push_write_state *substate;
- struct async_req *subreq;
+ struct tevent_req *subreq;
substate = talloc(state->reqs, struct cli_push_write_state);
if (!substate) {
@@ -988,8 +1079,7 @@ static bool cli_push_write_setup(struct async_req *req,
talloc_free(substate);
return false;
}
- subreq->async.fn = cli_push_written;
- subreq->async.priv = substate;
+ tevent_req_set_callback(subreq, cli_push_written, substate);
state->reqs[idx] = substate;
state->pending += 1;
@@ -998,20 +1088,20 @@ static bool cli_push_write_setup(struct async_req *req,
return true;
}
-struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli,
- uint16_t fnum, uint16_t mode,
- off_t start_offset, size_t window_size,
- size_t (*source)(uint8_t *buf, size_t n,
- void *priv),
- void *priv)
+struct tevent_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli,
+ uint16_t fnum, uint16_t mode,
+ off_t start_offset, size_t window_size,
+ size_t (*source)(uint8_t *buf, size_t n,
+ void *priv),
+ void *priv)
{
- struct async_req *req;
+ struct tevent_req *req;
struct cli_push_state *state;
uint32_t i;
- if (!async_req_setup(mem_ctx, &req, &state,
- struct cli_push_state)) {
+ req = tevent_req_create(mem_ctx, &state, struct cli_push_state);
+ if (req == NULL) {
return NULL;
}
state->cli = cli;
@@ -1054,26 +1144,24 @@ struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
}
if (state->pending == 0) {
- if (!async_post_ntstatus(req, ev, NT_STATUS_OK)) {
- goto failed;
- }
- return req;
+ tevent_req_done(req);
+ return tevent_req_post(req, ev);
}
return req;
failed:
- TALLOC_FREE(req);
- return NULL;
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return tevent_req_post(req, ev);
}
-static void cli_push_written(struct async_req *subreq)
+static void cli_push_written(struct tevent_req *subreq)
{
- struct cli_push_write_state *substate = talloc_get_type_abort(
- subreq->async.priv, struct cli_push_write_state);
- struct async_req *req = substate->req;
- struct cli_push_state *state = talloc_get_type_abort(
- req->private_data, struct cli_push_state);
+ struct cli_push_write_state *substate = tevent_req_callback_data(
+ subreq, struct cli_push_write_state);
+ struct tevent_req *req = substate->req;
+ struct cli_push_state *state = tevent_req_data(
+ req, struct cli_push_state);
NTSTATUS status;
uint32_t idx = substate->idx;
@@ -1084,26 +1172,26 @@ static void cli_push_written(struct async_req *subreq)
TALLOC_FREE(subreq);
TALLOC_FREE(substate);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
+ tevent_req_nterror(req, status);
return;
}
if (!state->eof) {
if (!cli_push_write_setup(req, state, idx)) {
- async_req_nomem(NULL, req);
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
return;
}
}
if (state->pending == 0) {
- async_req_done(req);
+ tevent_req_done(req);
return;
}
}
-NTSTATUS cli_push_recv(struct async_req *req)
+NTSTATUS cli_push_recv(struct tevent_req *req)
{
- return async_req_simple_recv_ntstatus(req);
+ return tevent_req_simple_recv_ntstatus(req);
}
NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
@@ -1113,33 +1201,40 @@ NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS result = NT_STATUS_NO_MEMORY;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
- return NT_STATUS_INVALID_PARAMETER;
+ status = NT_STATUS_INVALID_PARAMETER;
+ goto fail;
}
ev = event_context_init(frame);
if (ev == NULL) {
- goto nomem;
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
}
req = cli_push_send(frame, ev, cli, fnum, mode, start_offset,
window_size, source, priv);
if (req == NULL) {
- goto nomem;
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
- result = cli_push_recv(req);
- nomem:
+ status = cli_push_recv(req);
+ fail:
TALLOC_FREE(frame);
- return result;
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
+ return status;
}
diff --git a/source3/libsmb/clitrans.c b/source3/libsmb/clitrans.c
index 91fb6e6296..3a6aa9e72c 100644
--- a/source3/libsmb/clitrans.c
+++ b/source3/libsmb/clitrans.c
@@ -704,6 +704,8 @@ struct cli_trans_state {
uint16_t mid;
uint32_t seqnum;
const char *pipe_name;
+ uint8_t *pipe_name_conv;
+ size_t pipe_name_conv_len;
uint16_t fid;
uint16_t function;
int flags;
@@ -720,27 +722,131 @@ struct cli_trans_state {
struct trans_recvblob rdata;
TALLOC_CTX *secondary_request_ctx;
+
+ struct iovec iov[4];
+ uint8_t pad[4];
+ uint16_t vwv[32];
};
-static void cli_trans_recv_helper(struct async_req *req);
+static NTSTATUS cli_pull_trans(uint8_t *inbuf,
+ uint8_t wct, uint16_t *vwv,
+ uint16_t num_bytes, uint8_t *bytes,
+ uint8_t smb_cmd, bool expect_first_reply,
+ uint8_t *pnum_setup, uint16_t **psetup,
+ uint32_t *ptotal_param, uint32_t *pnum_param,
+ uint32_t *pparam_disp, uint8_t **pparam,
+ uint32_t *ptotal_data, uint32_t *pnum_data,
+ uint32_t *pdata_disp, uint8_t **pdata)
+{
+ uint32_t param_ofs, data_ofs;
+
+ if (expect_first_reply) {
+ if ((wct != 0) || (num_bytes != 0)) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+ return NT_STATUS_OK;
+ }
+
+ switch (smb_cmd) {
+ case SMBtrans:
+ case SMBtrans2:
+ if (wct < 10) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+ *ptotal_param = SVAL(vwv + 0, 0);
+ *ptotal_data = SVAL(vwv + 1, 0);
+ *pnum_param = SVAL(vwv + 3, 0);
+ param_ofs = SVAL(vwv + 4, 0);
+ *pparam_disp = SVAL(vwv + 5, 0);
+ *pnum_data = SVAL(vwv + 6, 0);
+ data_ofs = SVAL(vwv + 7, 0);
+ *pdata_disp = SVAL(vwv + 8, 0);
+ *pnum_setup = CVAL(vwv + 9, 0);
+ if (wct < 10 + (*pnum_setup)) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+ *psetup = vwv + 10;
-static struct async_req *cli_ship_trans(TALLOC_CTX *mem_ctx,
- struct cli_trans_state *state)
+ break;
+ case SMBnttrans:
+ if (wct < 18) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+ *ptotal_param = IVAL(vwv, 3);
+ *ptotal_data = IVAL(vwv, 7);
+ *pnum_param = IVAL(vwv, 11);
+ param_ofs = IVAL(vwv, 15);
+ *pparam_disp = IVAL(vwv, 19);
+ *pnum_data = IVAL(vwv, 23);
+ data_ofs = IVAL(vwv, 27);
+ *pdata_disp = IVAL(vwv, 31);
+ *pnum_setup = CVAL(vwv, 35);
+ *psetup = vwv + 18;
+ break;
+
+ default:
+ return NT_STATUS_INTERNAL_ERROR;
+ }
+
+ /*
+ * Check for buffer overflows. data_ofs needs to be checked against
+ * the incoming buffer length, data_disp against the total
+ * length. Likewise for param_ofs/param_disp.
+ */
+
+ if (trans_oob(smb_len(inbuf), param_ofs, *pnum_param)
+ || trans_oob(*ptotal_param, *pparam_disp, *pnum_param)
+ || trans_oob(smb_len(inbuf), data_ofs, *pnum_data)
+ || trans_oob(*ptotal_data, *pdata_disp, *pnum_data)) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+
+ *pparam = (uint8_t *)inbuf + 4 + param_ofs;
+ *pdata = (uint8_t *)inbuf + 4 + data_ofs;
+
+ return NT_STATUS_OK;
+}
+
+static NTSTATUS cli_trans_pull_blob(TALLOC_CTX *mem_ctx,
+ struct trans_recvblob *blob,
+ uint32_t total, uint32_t thistime,
+ uint8_t *buf, uint32_t displacement)
{
- TALLOC_CTX *frame;
- struct async_req *result = NULL;
- struct cli_request *cli_req;
- uint8_t wct;
- uint16_t *vwv;
- uint8_t *bytes = NULL;
+ if (blob->data == NULL) {
+ if (total > blob->max) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+ blob->total = total;
+ blob->data = TALLOC_ARRAY(mem_ctx, uint8_t, total);
+ if (blob->data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ }
+
+ if (total > blob->total) {
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+
+ if (thistime) {
+ memcpy(blob->data + displacement, buf, thistime);
+ blob->received += thistime;
+ }
+
+ return NT_STATUS_OK;
+}
+
+static void cli_trans_format(struct cli_trans_state *state, uint8_t *pwct,
+ int *piov_count)
+{
+ uint8_t wct = 0;
+ struct iovec *iov = state->iov;
+ uint8_t *pad = state->pad;
+ uint16_t *vwv = state->vwv;
uint16_t param_offset;
uint16_t this_param = 0;
uint16_t this_data = 0;
uint32_t useable_space;
uint8_t cmd;
- uint8_t pad[3];
-
- frame = talloc_stackframe();
cmd = state->cmd;
@@ -751,39 +857,26 @@ static struct async_req *cli_ship_trans(TALLOC_CTX *mem_ctx,
param_offset = smb_size - 4;
- bytes = TALLOC_ARRAY(talloc_tos(), uint8_t, 0); /* padding */
- if (bytes == NULL) {
- goto fail;
- }
-
switch (cmd) {
case SMBtrans:
pad[0] = 0;
- bytes = (uint8_t *)talloc_append_blob(talloc_tos(), bytes,
- data_blob_const(pad, 1));
- if (bytes == NULL) {
- goto fail;
- }
- bytes = smb_bytes_push_str(bytes, cli_ucs2(state->cli),
- state->pipe_name,
- strlen(state->pipe_name)+1, NULL);
- if (bytes == NULL) {
- goto fail;
- }
+ iov[0].iov_base = pad;
+ iov[0].iov_len = 1;
+ iov[1].iov_base = state->pipe_name_conv;
+ iov[1].iov_len = state->pipe_name_conv_len;
wct = 14 + state->num_setup;
- param_offset += talloc_get_size(bytes);
+ param_offset += iov[0].iov_len + iov[1].iov_len;
+ iov += 2;
break;
case SMBtrans2:
pad[0] = 0;
pad[1] = 'D'; /* Copy this from "old" 3.0 behaviour */
pad[2] = ' ';
- bytes = (uint8_t *)talloc_append_blob(talloc_tos(), bytes,
- data_blob_const(pad, 3));
- if (bytes == NULL) {
- goto fail;
- }
+ iov[0].iov_base = pad;
+ iov[0].iov_len = 3;
wct = 14 + state->num_setup;
- param_offset += talloc_get_size(bytes);
+ param_offset += 3;
+ iov += 1;
break;
case SMBtranss:
wct = 8;
@@ -797,8 +890,6 @@ static struct async_req *cli_ship_trans(TALLOC_CTX *mem_ctx,
case SMBnttranss:
wct = 18;
break;
- default:
- goto fail;
}
useable_space = state->cli->max_xmit - smb_size - sizeof(uint16_t)*wct;
@@ -806,17 +897,19 @@ static struct async_req *cli_ship_trans(TALLOC_CTX *mem_ctx,
if (state->param_sent < state->num_param) {
this_param = MIN(state->num_param - state->param_sent,
useable_space);
+ iov[0].iov_base = state->param + state->param_sent;
+ iov[0].iov_len = this_param;
+ iov += 1;
}
if (state->data_sent < state->num_data) {
this_data = MIN(state->num_data - state->data_sent,
useable_space - this_param);
+ iov[0].iov_base = state->data + state->data_sent;
+ iov[0].iov_len = this_data;
+ iov += 1;
}
- vwv = TALLOC_ARRAY(talloc_tos(), uint16_t, wct);
- if (vwv == NULL) {
- goto fail;
- }
param_offset += wct * sizeof(uint16_t);
DEBUG(10, ("num_setup=%u, max_setup=%u, "
@@ -897,221 +990,120 @@ static struct async_req *cli_ship_trans(TALLOC_CTX *mem_ctx,
break;
}
- bytes = (uint8_t *)talloc_append_blob(
- talloc_tos(), bytes,
- data_blob_const(state->param + state->param_sent, this_param));
- if (bytes == NULL) {
- goto fail;
- }
state->param_sent += this_param;
-
- bytes = (uint8_t *)talloc_append_blob(
- talloc_tos(), bytes,
- data_blob_const(state->data + state->data_sent, this_data));
- if (bytes == NULL) {
- goto fail;
- }
state->data_sent += this_data;
- if ((cmd == SMBtrans) || (cmd == SMBtrans2) || (cmd == SMBnttrans)) {
- /*
- * Primary request, retrieve our mid
- */
- result = cli_request_send(mem_ctx, state->ev, state->cli,
- cmd, 0, wct, vwv, 0,
- talloc_get_size(bytes), bytes);
- if (result == NULL) {
- goto fail;
- }
- cli_req = talloc_get_type_abort(result->private_data,
- struct cli_request);
- state->mid = cli_req->mid;
- state->seqnum = cli_req->seqnum;
- } else {
- uint16_t num_bytes = talloc_get_size(bytes);
- /*
- * Secondary request, we have to fix up the mid. Thus we do
- * the chain_cork/chain/uncork ourselves.
- */
- if (!cli_chain_cork(state->cli, state->ev,
- wct * sizeof(uint16_t) + num_bytes + 3)) {
- goto fail;
- }
- result = cli_request_send(mem_ctx, state->ev, state->cli, cmd,
- 0, wct, vwv, 0, num_bytes, bytes);
- if (result == NULL) {
- goto fail;
- }
- cli_req = talloc_get_type_abort(result->private_data,
- struct cli_request);
- cli_req->recv_helper.fn = cli_trans_recv_helper;
- cli_req->recv_helper.priv = state;
- cli_req->mid = state->mid;
- cli_chain_uncork(state->cli);
- state->seqnum = cli_req->seqnum;
- }
-
- fail:
- TALLOC_FREE(frame);
- return result;
+ *pwct = wct;
+ *piov_count = iov - state->iov;
}
-static void cli_trans_ship_rest(struct async_req *req,
- struct cli_trans_state *state)
+static void cli_trans_done(struct tevent_req *subreq);
+
+struct tevent_req *cli_trans_send(
+ TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct cli_state *cli, uint8_t cmd,
+ const char *pipe_name, uint16_t fid, uint16_t function, int flags,
+ uint16_t *setup, uint8_t num_setup, uint8_t max_setup,
+ uint8_t *param, uint32_t num_param, uint32_t max_param,
+ uint8_t *data, uint32_t num_data, uint32_t max_data)
{
- struct cli_request *cli_req;
+ struct tevent_req *req, *subreq;
+ struct cli_trans_state *state;
+ int iov_count;
+ uint8_t wct;
- state->secondary_request_ctx = talloc_new(state);
- if (state->secondary_request_ctx == NULL) {
- async_req_nterror(req, NT_STATUS_NO_MEMORY);
- return;
+ req = tevent_req_create(mem_ctx, &state, struct cli_trans_state);
+ if (req == NULL) {
+ return NULL;
}
- while ((state->param_sent < state->num_param)
- || (state->data_sent < state->num_data)) {
- struct async_req *subreq;
-
- subreq = cli_ship_trans(state->secondary_request_ctx, state);
- if (subreq == NULL) {
- async_req_nterror(req, NT_STATUS_NO_MEMORY);
- return;
+ if ((cmd == SMBtrans) || (cmd == SMBtrans2)) {
+ if ((num_param > 0xffff) || (max_param > 0xffff)
+ || (num_data > 0xffff) || (max_data > 0xffff)) {
+ DEBUG(3, ("Attempt to send invalid trans2 request "
+ "(setup %u, params %u/%u, data %u/%u)\n",
+ (unsigned)num_setup,
+ (unsigned)num_param, (unsigned)max_param,
+ (unsigned)num_data, (unsigned)max_data));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
}
}
- cli_req = talloc_get_type_abort(req->private_data,
- struct cli_request);
-
- cli_req->seqnum = state->seqnum;
-}
-
-static NTSTATUS cli_pull_trans(struct async_req *req,
- struct cli_request *cli_req,
- uint8_t smb_cmd, bool expect_first_reply,
- uint8_t *pnum_setup, uint16_t **psetup,
- uint32_t *ptotal_param, uint32_t *pnum_param,
- uint32_t *pparam_disp, uint8_t **pparam,
- uint32_t *ptotal_data, uint32_t *pnum_data,
- uint32_t *pdata_disp, uint8_t **pdata)
-{
- uint32_t param_ofs, data_ofs;
- uint8_t wct;
- uint16_t *vwv;
- uint16_t num_bytes;
- uint8_t *bytes;
- NTSTATUS status;
-
- status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
-
/*
- * We can receive something like STATUS_MORE_ENTRIES, so don't use
- * !NT_STATUS_IS_OK(status) here.
+ * The largest wct will be for nttrans (19+num_setup). Make sure we
+ * don't overflow state->vwv in cli_trans_format.
*/
- if (NT_STATUS_IS_ERR(status)) {
- return status;
+ if ((num_setup + 19) > ARRAY_SIZE(state->vwv)) {
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
}
- if (expect_first_reply) {
- if ((wct != 0) || (num_bytes != 0)) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
- }
- return NT_STATUS_OK;
- }
-
- switch (smb_cmd) {
- case SMBtrans:
- case SMBtrans2:
- if (wct < 10) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
- }
- *ptotal_param = SVAL(vwv + 0, 0);
- *ptotal_data = SVAL(vwv + 1, 0);
- *pnum_param = SVAL(vwv + 3, 0);
- param_ofs = SVAL(vwv + 4, 0);
- *pparam_disp = SVAL(vwv + 5, 0);
- *pnum_data = SVAL(vwv + 6, 0);
- data_ofs = SVAL(vwv + 7, 0);
- *pdata_disp = SVAL(vwv + 8, 0);
- *pnum_setup = CVAL(vwv + 9, 0);
- if (wct < 10 + (*pnum_setup)) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
- }
- *psetup = vwv + 10;
-
- break;
- case SMBnttrans:
- if (wct < 18) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
- }
- *ptotal_param = IVAL(vwv, 3);
- *ptotal_data = IVAL(vwv, 7);
- *pnum_param = IVAL(vwv, 11);
- param_ofs = IVAL(vwv, 15);
- *pparam_disp = IVAL(vwv, 19);
- *pnum_data = IVAL(vwv, 23);
- data_ofs = IVAL(vwv, 27);
- *pdata_disp = IVAL(vwv, 31);
- *pnum_setup = CVAL(vwv, 35);
- *psetup = vwv + 18;
- break;
+ state->cli = cli;
+ state->ev = ev;
+ state->cmd = cmd;
+ state->flags = flags;
+ state->num_rsetup = 0;
+ state->rsetup = NULL;
+ ZERO_STRUCT(state->rparam);
+ ZERO_STRUCT(state->rdata);
- default:
- return NT_STATUS_INTERNAL_ERROR;
+ if ((pipe_name != NULL)
+ && (!convert_string_allocate(state, CH_UNIX,
+ cli_ucs2(cli) ? CH_UTF16LE : CH_DOS,
+ pipe_name, strlen(pipe_name) + 1,
+ &state->pipe_name_conv,
+ &state->pipe_name_conv_len, true))) {
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return tevent_req_post(req, ev);
}
+ state->fid = fid; /* trans2 */
+ state->function = function; /* nttrans */
- /*
- * Check for buffer overflows. data_ofs needs to be checked against
- * the incoming buffer length, data_disp against the total
- * length. Likewise for param_ofs/param_disp.
- */
-
- if (trans_oob(smb_len(cli_req->inbuf), param_ofs, *pnum_param)
- || trans_oob(*ptotal_param, *pparam_disp, *pnum_param)
- || trans_oob(smb_len(cli_req->inbuf), data_ofs, *pnum_data)
- || trans_oob(*ptotal_data, *pdata_disp, *pnum_data)) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
- }
+ state->setup = setup;
+ state->num_setup = num_setup;
+ state->max_setup = max_setup;
- *pparam = (uint8_t *)cli_req->inbuf + 4 + param_ofs;
- *pdata = (uint8_t *)cli_req->inbuf + 4 + data_ofs;
+ state->param = param;
+ state->num_param = num_param;
+ state->param_sent = 0;
+ state->rparam.max = max_param;
- return NT_STATUS_OK;
-}
+ state->data = data;
+ state->num_data = num_data;
+ state->data_sent = 0;
+ state->rdata.max = max_data;
-static NTSTATUS cli_trans_pull_blob(TALLOC_CTX *mem_ctx,
- struct trans_recvblob *blob,
- uint32_t total, uint32_t thistime,
- uint8_t *buf, uint32_t displacement)
-{
- if (blob->data == NULL) {
- if (total > blob->max) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
- }
- blob->total = total;
- blob->data = TALLOC_ARRAY(mem_ctx, uint8_t, total);
- if (blob->data == NULL) {
- return NT_STATUS_NO_MEMORY;
- }
- }
+ cli_trans_format(state, &wct, &iov_count);
- if (total > blob->total) {
- return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ subreq = cli_smb_req_create(state, ev, cli, cmd, 0, wct, state->vwv,
+ iov_count, state->iov);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
}
-
- if (thistime) {
- memcpy(blob->data + displacement, buf, thistime);
- blob->received += thistime;
+ state->mid = cli_smb_req_mid(subreq);
+ if (!cli_smb_req_send(subreq)) {
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return tevent_req_post(req, state->ev);
}
-
- return NT_STATUS_OK;
+ cli_state_seqnum_persistent(cli, state->mid);
+ tevent_req_set_callback(subreq, cli_trans_done, req);
+ return req;
}
-static void cli_trans_recv_helper(struct async_req *req)
+static void cli_trans_done(struct tevent_req *subreq)
{
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
- struct cli_trans_state *state = talloc_get_type_abort(
- cli_req->recv_helper.priv, struct cli_trans_state);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct cli_trans_state *state = tevent_req_data(
+ req, struct cli_trans_state);
+ NTSTATUS status;
+ bool sent_all;
+ uint8_t wct;
+ uint16_t *vwv;
+ uint32_t num_bytes;
+ uint8_t *bytes;
uint8_t num_setup = 0;
uint16_t *setup = NULL;
uint32_t total_param = 0;
@@ -1122,16 +1114,8 @@ static void cli_trans_recv_helper(struct async_req *req)
uint32_t data_disp = 0;
uint8_t *param = NULL;
uint8_t *data = NULL;
- bool sent_all;
- NTSTATUS status;
- sent_all = (state->param_sent == state->num_param)
- && (state->data_sent == state->num_data);
-
- status = cli_pull_trans(
- req, cli_req, state->cmd, !sent_all, &num_setup, &setup,
- &total_param, &num_param, &param_disp, &param,
- &total_data, &num_data, &data_disp, &data);
+ status = cli_smb_recv(subreq, 0, &wct, &vwv, &num_bytes, &bytes);
/*
* We can receive something like STATUS_MORE_ENTRIES, so don't use
@@ -1139,30 +1123,43 @@ static void cli_trans_recv_helper(struct async_req *req)
*/
if (NT_STATUS_IS_ERR(status)) {
- async_req_nterror(req, status);
- return;
+ goto fail;
}
- if (!sent_all) {
- cli_trans_ship_rest(req, state);
- return;
+ sent_all = ((state->param_sent == state->num_param)
+ && (state->data_sent == state->num_data));
+
+ status = cli_pull_trans(
+ cli_smb_inbuf(subreq), wct, vwv, num_bytes, bytes,
+ state->cmd, !sent_all, &num_setup, &setup,
+ &total_param, &num_param, &param_disp, &param,
+ &total_data, &num_data, &data_disp, &data);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
}
- /*
- * We've just received a real response. This means that we don't need
- * the secondary cli_request structures anymore, they have all been
- * shipped to the server.
- */
- TALLOC_FREE(state->secondary_request_ctx);
+ if (!sent_all) {
+ int iov_count;
- if (num_setup != 0) {
- TALLOC_FREE(state->rsetup);
- state->rsetup = (uint16_t *)TALLOC_MEMDUP(
- state, setup, sizeof(uint16_t) * num_setup);
- if (state->rsetup == NULL) {
- async_req_nterror(req, NT_STATUS_NO_MEMORY);
+ TALLOC_FREE(subreq);
+
+ cli_trans_format(state, &wct, &iov_count);
+
+ subreq = cli_smb_req_create(state, state->ev, state->cli,
+ state->cmd + 1, 0, wct, state->vwv,
+ iov_count, state->iov);
+ if (tevent_req_nomem(subreq, req)) {
return;
}
+ cli_smb_req_set_mid(subreq, state->mid);
+
+ if (!cli_smb_req_send(subreq)) {
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
+ }
+ tevent_req_set_callback(subreq, cli_trans_done, req);
+ return;
}
status = cli_trans_pull_blob(
@@ -1171,8 +1168,7 @@ static void cli_trans_recv_helper(struct async_req *req)
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10, ("Pulling params failed: %s\n", nt_errstr(status)));
- async_req_nterror(req, status);
- return;
+ goto fail;
}
status = cli_trans_pull_blob(
@@ -1181,149 +1177,39 @@ static void cli_trans_recv_helper(struct async_req *req)
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10, ("Pulling data failed: %s\n", nt_errstr(status)));
- async_req_nterror(req, status);
- return;
+ goto fail;
}
if ((state->rparam.total == state->rparam.received)
&& (state->rdata.total == state->rdata.received)) {
- async_req_done(req);
- }
-}
-
-struct async_req *cli_trans_send(
- TALLOC_CTX *mem_ctx, struct event_context *ev,
- struct cli_state *cli, uint8_t trans_cmd,
- const char *pipe_name, uint16_t fid, uint16_t function, int flags,
- uint16_t *setup, uint8_t num_setup, uint8_t max_setup,
- uint8_t *param, uint32_t num_param, uint32_t max_param,
- uint8_t *data, uint32_t num_data, uint32_t max_data)
-{
- struct async_req *req;
- struct cli_request *cli_req;
- struct cli_trans_state *state;
-
- /*
- * We can't use it in a chained request chain, we'd get the offset
- * calculations wrong.
- */
-
- if (cli_in_chain(cli)) {
- return NULL;
- }
-
- if ((trans_cmd == SMBtrans) || (trans_cmd == SMBtrans2)) {
- if ((num_param > 0xffff) || (max_param > 0xffff)
- || (num_data > 0xffff) || (max_data > 0xffff)) {
- DEBUG(3, ("Attempt to send invalid trans2 request "
- "(setup %u, params %u/%u, data %u/%u)\n",
- (unsigned)num_setup,
- (unsigned)num_param, (unsigned)max_param,
- (unsigned)num_data, (unsigned)max_data));
- return NULL;
- }
- }
-
- state = talloc(mem_ctx, struct cli_trans_state);
- if (state == NULL) {
- goto nomem;
- }
-
- state->cli = cli;
- state->ev = ev;
- state->cmd = trans_cmd;
- state->num_rsetup = 0;
- state->rsetup = NULL;
- ZERO_STRUCT(state->rparam);
- ZERO_STRUCT(state->rdata);
- state->secondary_request_ctx = NULL;
-
- if (trans_cmd == SMBtrans) {
- state->pipe_name = talloc_strdup(state, pipe_name);
- if (state->pipe_name == NULL) {
- goto nomem;
- }
- }
- if (trans_cmd == SMBtrans2) {
- state->fid = fid;
- }
- if (trans_cmd == SMBnttrans) {
- state->function = function;
- }
-
- state->flags = flags;
-
- if (setup != NULL) {
- state->setup = (uint16_t *)TALLOC_MEMDUP(
- state, setup, sizeof(*setup) * num_setup);
- if (state->setup == NULL) {
- goto nomem;
- }
- state->num_setup = num_setup;
- } else {
- state->setup = NULL;
- state->num_setup = 0;
- }
-
- state->max_setup = max_setup;
-
- if (param != NULL) {
- state->param = (uint8_t *)TALLOC_MEMDUP(state, param,
- num_param);
- if (state->param == NULL) {
- goto nomem;
- }
- state->num_param = num_param;
- } else {
- state->param = NULL;
- state->num_param = 0;
- }
-
- state->param_sent = 0;
- state->rparam.max = max_param;
-
- if (data != NULL) {
- state->data = (uint8_t *)TALLOC_MEMDUP(state, data, num_data);
- if (state->data == NULL) {
- goto nomem;
- }
- state->num_data = num_data;
- } else {
- state->data = NULL;
- state->num_data = 0;
+ TALLOC_FREE(subreq);
+ cli_state_seqnum_remove(state->cli, state->mid);
+ tevent_req_done(req);
+ return;
}
- state->data_sent = 0;
- state->rdata.max = max_data;
-
- req = cli_ship_trans(state, state);
- if (req == NULL) {
- goto nomem;
+ if (!cli_smb_req_set_pending(subreq)) {
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
}
+ return;
- cli_req = talloc_get_type_abort(req->private_data, struct cli_request);
- cli_req->recv_helper.fn = cli_trans_recv_helper;
- cli_req->recv_helper.priv = state;
-
- return req;
-
- nomem:
- TALLOC_FREE(state);
- return NULL;
+ fail:
+ cli_state_seqnum_remove(state->cli, state->mid);
+ TALLOC_FREE(subreq);
+ tevent_req_nterror(req, status);
}
-NTSTATUS cli_trans_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+NTSTATUS cli_trans_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
uint16_t **setup, uint8_t *num_setup,
uint8_t **param, uint32_t *num_param,
uint8_t **data, uint32_t *num_data)
{
- struct cli_request *cli_req = talloc_get_type_abort(
- req->private_data, struct cli_request);
- struct cli_trans_state *state = talloc_get_type_abort(
- cli_req->recv_helper.priv, struct cli_trans_state);
+ struct cli_trans_state *state = tevent_req_data(
+ req, struct cli_trans_state);
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
+ if (tevent_req_is_nterror(req, &status)) {
return status;
}
@@ -1364,19 +1250,20 @@ NTSTATUS cli_trans(TALLOC_CTX *mem_ctx, struct cli_state *cli,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS status = NT_STATUS_NO_MEMORY;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
- if (cli->fd_event != NULL) {
+ if (cli_has_async_calls(cli)) {
/*
* Can't use sync call while an async call is in flight
*/
- cli_set_error(cli, NT_STATUS_INVALID_PARAMETER);
+ status = NT_STATUS_INVALID_PARAMETER;
goto fail;
}
ev = event_context_init(frame);
if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
@@ -1386,16 +1273,21 @@ NTSTATUS cli_trans(TALLOC_CTX *mem_ctx, struct cli_state *cli,
param, num_param, max_param,
data, num_data, max_data);
if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = cli_trans_recv(req, mem_ctx, rsetup, num_rsetup,
rparam, num_rparam, rdata, num_rdata);
fail:
TALLOC_FREE(frame);
+ if (!NT_STATUS_IS_OK(status)) {
+ cli_set_error(cli, status);
+ }
return status;
}
diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c
index aa522ac780..be2948c531 100644
--- a/source3/locking/brlock.c
+++ b/source3/locking/brlock.c
@@ -41,11 +41,11 @@ static struct db_context *brlock_db;
static void print_lock_struct(unsigned int i, struct lock_struct *pls)
{
- DEBUG(10,("[%u]: smbpid = %u, tid = %u, pid = %u, ",
+ DEBUG(10,("[%u]: smbpid = %u, tid = %u, pid = %s, ",
i,
(unsigned int)pls->context.smbpid,
(unsigned int)pls->context.tid,
- (unsigned int)procid_to_pid(&pls->context.pid) ));
+ procid_str(debug_ctx(), &pls->context.pid) ));
DEBUG(10,("start = %.0f, size = %.0f, fnum = %d, %s %s\n",
(double)pls->start,
diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c
index 3c061ece79..b304d8bdc2 100644
--- a/source3/modules/vfs_gpfs.c
+++ b/source3/modules/vfs_gpfs.c
@@ -341,7 +341,7 @@ static bool gpfsacl_process_smbacl(files_struct *fsp, SMB4ACL_T *smbacl)
gacl_len = sizeof(struct gpfs_acl) +
(smb_get_naces(smbacl)-1)*sizeof(gpfs_ace_v4_t);
- gacl = TALLOC_SIZE(mem_ctx, gacl_len);
+ gacl = (struct gpfs_acl *)TALLOC_SIZE(mem_ctx, gacl_len);
if (gacl == NULL) {
DEBUG(0, ("talloc failed\n"));
errno = ENOMEM;
@@ -556,9 +556,9 @@ static SMB_ACL_T gpfsacl_get_posix_acl(const char *path, gpfs_aclType_t type)
return result;
}
-SMB_ACL_T gpfsacl_sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p,
- SMB_ACL_TYPE_T type)
+static SMB_ACL_T gpfsacl_sys_acl_get_file(vfs_handle_struct *handle,
+ const char *path_p,
+ SMB_ACL_TYPE_T type)
{
gpfs_aclType_t gpfs_type;
@@ -577,8 +577,8 @@ SMB_ACL_T gpfsacl_sys_acl_get_file(vfs_handle_struct *handle,
return gpfsacl_get_posix_acl(path_p, gpfs_type);
}
-SMB_ACL_T gpfsacl_sys_acl_get_fd(vfs_handle_struct *handle,
- files_struct *fsp)
+static SMB_ACL_T gpfsacl_sys_acl_get_fd(vfs_handle_struct *handle,
+ files_struct *fsp)
{
return gpfsacl_get_posix_acl(fsp->fsp_name, GPFS_ACL_TYPE_ACCESS);
}
@@ -600,7 +600,7 @@ static struct gpfs_acl *smb2gpfs_acl(const SMB_ACL_T pacl,
len = sizeof(struct gpfs_acl) - sizeof(union gpfs_ace_union) +
(pacl->count)*sizeof(gpfs_ace_v1_t);
- result = SMB_MALLOC(len);
+ result = (struct gpfs_acl *)SMB_MALLOC(len);
if (result == NULL) {
errno = ENOMEM;
return result;
@@ -670,10 +670,10 @@ static struct gpfs_acl *smb2gpfs_acl(const SMB_ACL_T pacl,
return result;
}
-int gpfsacl_sys_acl_set_file(vfs_handle_struct *handle,
- const char *name,
- SMB_ACL_TYPE_T type,
- SMB_ACL_T theacl)
+static int gpfsacl_sys_acl_set_file(vfs_handle_struct *handle,
+ const char *name,
+ SMB_ACL_TYPE_T type,
+ SMB_ACL_T theacl)
{
struct gpfs_acl *gpfs_acl;
int result;
@@ -689,15 +689,15 @@ int gpfsacl_sys_acl_set_file(vfs_handle_struct *handle,
return result;
}
-int gpfsacl_sys_acl_set_fd(vfs_handle_struct *handle,
- files_struct *fsp,
- SMB_ACL_T theacl)
+static int gpfsacl_sys_acl_set_fd(vfs_handle_struct *handle,
+ files_struct *fsp,
+ SMB_ACL_T theacl)
{
return gpfsacl_sys_acl_set_file(handle, fsp->fsp_name, SMB_ACL_TYPE_ACCESS, theacl);
}
-int gpfsacl_sys_acl_delete_def_file(vfs_handle_struct *handle,
- const char *path)
+static int gpfsacl_sys_acl_delete_def_file(vfs_handle_struct *handle,
+ const char *path)
{
errno = ENOTSUP;
return -1;
diff --git a/source3/modules/vfs_gpfs.h b/source3/modules/vfs_gpfs.h
index 3c499b0850..efca5603aa 100644
--- a/source3/modules/vfs_gpfs.h
+++ b/source3/modules/vfs_gpfs.h
@@ -29,4 +29,6 @@ bool set_gpfs_sharemode(files_struct *fsp, uint32 access_mask,
int set_gpfs_lease(int fd, int leasetype);
int smbd_gpfs_getacl(char *pathname, int flags, void *acl);
int smbd_gpfs_putacl(char *pathname, int flags, void *acl);
+int smbd_gpfs_get_realfilename_path(char *pathname, char *filenamep,
+ int *buflen);
void init_gpfs(void);
diff --git a/source3/modules/vfs_onefs.c b/source3/modules/vfs_onefs.c
index ad59c2b32d..e4a0febbec 100644
--- a/source3/modules/vfs_onefs.c
+++ b/source3/modules/vfs_onefs.c
@@ -153,10 +153,21 @@ static int onefs_get_real_filename(vfs_handle_struct *handle, const char *path,
char **found_name)
{
SMB_STRUCT_STAT sb;
+ struct connection_struct *conn = handle->conn;
struct stat_extra se;
int result;
+ char *unmangled_name = NULL;
char *full_name = NULL;
+ /* First demangle the name if necessary. */
+ if (!conn->case_sensitive && mangle_is_mangled(name, conn->params) &&
+ mangle_lookup_name_from_8_3(mem_ctx, name, &unmangled_name,
+ conn->params)) {
+ /* Name is now unmangled. */
+ name = unmangled_name;
+ }
+
+ /* Do the case insensitive stat. */
ZERO_STRUCT(se);
se.se_version = ESTAT_CURRENT_VERSION;
se.se_flags = ESTAT_CASE_INSENSITIVE | ESTAT_SYMLINK_NOFOLLOW;
@@ -184,6 +195,7 @@ static int onefs_get_real_filename(vfs_handle_struct *handle, const char *path,
done:
TALLOC_FREE(full_name);
+ TALLOC_FREE(unmangled_name);
return result;
}
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 8da1f6348f..4b14b80339 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -885,7 +885,7 @@ static const struct enum_list enum_kerberos_method[] = {
/* Note: We do not initialise the defaults union - it is not allowed in ANSI C
*
- * The FLAG_HIDE is explicit. Paramters set this way do NOT appear in any edit
+ * The FLAG_HIDE is explicit. Parameters set this way do NOT appear in any edit
* screen in SWAT. This is used to exclude parameters as well as to squash all
* parameters that have been duplicated by pseudonyms.
*
@@ -894,7 +894,7 @@ static const struct enum_list enum_kerberos_method[] = {
* Set FLAG_SHARE and FLAG_PRINT to specifically display parameters in
* respective views.
*
- * NOTE2: Handling of duplicated (synonym) paramters:
+ * NOTE2: Handling of duplicated (synonym) parameters:
* Only the first occurance of a parameter should be enabled by FLAG_BASIC
* and/or FLAG_ADVANCED. All duplicates following the first mention should be
* set to FLAG_HIDE. ie: Make you must place the parameter that has the preferred
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index 77b19e3de9..b706721e77 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -840,27 +840,27 @@ static bool init_sam_from_ldap(struct ldapsam_privates *ldap_state,
/* Make call to Novell eDirectory ldap extension to get clear text password.
NOTE: This will only work if we have an SSL connection to eDirectory. */
- user_dn = smbldap_get_dn(ldap_state->smbldap_state->ldap_struct, entry);
+ user_dn = smbldap_talloc_dn(ctx, ldap_state->smbldap_state->ldap_struct, entry);
if (user_dn != NULL) {
- DEBUG(3, ("init_sam_from_ldap: smbldap_get_dn(%s) returned '%s'\n", username, user_dn));
+ DEBUG(3, ("init_sam_from_ldap: smbldap_talloc_dn(ctx, %s) returned '%s'\n", username, user_dn));
pwd_len = sizeof(clear_text_pw);
if (pdb_nds_get_password(ldap_state->smbldap_state, user_dn, &pwd_len, clear_text_pw) == LDAP_SUCCESS) {
nt_lm_owf_gen(clear_text_pw, smbntpwd, smblmpwd);
if (!pdb_set_lanman_passwd(sampass, smblmpwd, PDB_SET)) {
- SAFE_FREE(user_dn);
+ TALLOC_FREE(user_dn);
return False;
}
ZERO_STRUCT(smblmpwd);
if (!pdb_set_nt_passwd(sampass, smbntpwd, PDB_SET)) {
- SAFE_FREE(user_dn);
+ TALLOC_FREE(user_dn);
return False;
}
ZERO_STRUCT(smbntpwd);
use_samba_attrs = False;
}
- SAFE_FREE(user_dn);
+ TALLOC_FREE(user_dn);
} else {
DEBUG(0, ("init_sam_from_ldap: failed to get user_dn for '%s'\n", username));
@@ -1908,7 +1908,7 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, struc
}
entry = ldap_first_entry(ldap_state->smbldap_state->ldap_struct, result);
- dn = smbldap_get_dn(ldap_state->smbldap_state->ldap_struct, entry);
+ dn = smbldap_talloc_dn(NULL, ldap_state->smbldap_state->ldap_struct, entry);
if (!dn) {
return NT_STATUS_UNSUCCESSFUL;
}
@@ -1918,7 +1918,7 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, struc
if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd,
element_is_changed)) {
DEBUG(0, ("ldapsam_update_sam_account: init_ldap_from_sam failed!\n"));
- SAFE_FREE(dn);
+ TALLOC_FREE(dn);
if (mods != NULL)
ldap_mods_free(mods,True);
return NT_STATUS_UNSUCCESSFUL;
@@ -1928,7 +1928,7 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, struc
&& (mods == NULL)) {
DEBUG(4,("ldapsam_update_sam_account: mods is empty: nothing to update for user: %s\n",
pdb_get_username(newpwd)));
- SAFE_FREE(dn);
+ TALLOC_FREE(dn);
return NT_STATUS_OK;
}
@@ -1938,7 +1938,7 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, struc
ldap_mods_free(mods,True);
}
- SAFE_FREE(dn);
+ TALLOC_FREE(dn);
/*
* We need to set the backend private data to NULL here. For example
@@ -2147,17 +2147,10 @@ static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, struct s
/* Check if we need to update an existing entry */
if (num_result == 1) {
- char *tmp;
-
DEBUG(3,("ldapsam_add_sam_account: User exists without samba attributes: adding them\n"));
ldap_op = LDAP_MOD_REPLACE;
entry = ldap_first_entry (ldap_state->smbldap_state->ldap_struct, result);
- tmp = smbldap_get_dn(ldap_state->smbldap_state->ldap_struct, entry);
- if (!tmp) {
- goto fn_exit;
- }
- dn = talloc_asprintf(ctx, "%s", tmp);
- SAFE_FREE(tmp);
+ dn = smbldap_talloc_dn(ctx, ldap_state->smbldap_state->ldap_struct, entry);
if (!dn) {
status = NT_STATUS_NO_MEMORY;
goto fn_exit;
@@ -2200,17 +2193,11 @@ static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, struct s
/* Check if we need to update an existing entry */
if (num_result == 1) {
- char *tmp;
DEBUG(3,("ldapsam_add_sam_account: User exists without samba attributes: adding them\n"));
ldap_op = LDAP_MOD_REPLACE;
entry = ldap_first_entry (ldap_state->smbldap_state->ldap_struct, result);
- tmp = smbldap_get_dn (ldap_state->smbldap_state->ldap_struct, entry);
- if (!tmp) {
- goto fn_exit;
- }
- dn = talloc_asprintf(ctx, "%s", tmp);
- SAFE_FREE(tmp);
+ dn = smbldap_talloc_dn (ctx, ldap_state->smbldap_state->ldap_struct, entry);
if (!dn) {
status = NT_STATUS_NO_MEMORY;
goto fn_exit;
@@ -3525,7 +3512,7 @@ static NTSTATUS ldapsam_modify_aliasmem(struct pdb_methods *methods,
return NT_STATUS_UNSUCCESSFUL;
}
- dn = smbldap_get_dn(ldap_state->smbldap_state->ldap_struct, entry);
+ dn = smbldap_talloc_dn(NULL, ldap_state->smbldap_state->ldap_struct, entry);
if (!dn) {
ldap_msgfree(result);
return NT_STATUS_UNSUCCESSFUL;
@@ -3540,7 +3527,7 @@ static NTSTATUS ldapsam_modify_aliasmem(struct pdb_methods *methods,
ldap_mods_free(mods, True);
ldap_msgfree(result);
- SAFE_FREE(dn);
+ TALLOC_FREE(dn);
if (rc == LDAP_TYPE_OR_VALUE_EXISTS) {
return NT_STATUS_MEMBER_IN_ALIAS;
@@ -6307,14 +6294,14 @@ NTSTATUS pdb_init_ldapsam(struct pdb_methods **pdb_method, const char *location)
return NT_STATUS_UNSUCCESSFUL;
}
- dn = smbldap_get_dn(ldap_state->smbldap_state->ldap_struct, entry);
+ dn = smbldap_talloc_dn(talloc_tos(), ldap_state->smbldap_state->ldap_struct, entry);
if (!dn) {
ldap_msgfree(result);
return NT_STATUS_UNSUCCESSFUL;
}
ldap_state->domain_dn = smb_xstrdup(dn);
- ldap_memfree(dn);
+ TALLOC_FREE(dn);
domain_sid_string = smbldap_talloc_single_attribute(
ldap_state->smbldap_state->ldap_struct,
diff --git a/source3/passdb/pdb_nds.c b/source3/passdb/pdb_nds.c
index 1edd665d54..08665e4617 100644
--- a/source3/passdb/pdb_nds.c
+++ b/source3/passdb/pdb_nds.c
@@ -788,7 +788,7 @@ static NTSTATUS pdb_nds_update_login_attempts(struct pdb_methods *methods,
}
entry = ldap_first_entry(ldap_state->smbldap_state->ldap_struct, result);
- dn = smbldap_get_dn(ldap_state->smbldap_state->ldap_struct, entry);
+ dn = smbldap_talloc_dn(NULL, ldap_state->smbldap_state->ldap_struct, entry);
if (!dn) {
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
@@ -811,6 +811,7 @@ static NTSTATUS pdb_nds_update_login_attempts(struct pdb_methods *methods,
rc = smb_ldap_setup_full_conn(&ld, ldap_state->location);
if (rc) {
+ TALLOC_FREE(dn);
return NT_STATUS_INVALID_CONNECTION;
}
@@ -841,6 +842,7 @@ static NTSTATUS pdb_nds_update_login_attempts(struct pdb_methods *methods,
return nt_status;
}
}
+ TALLOC_FREE(dn);
}
return NT_STATUS_OK;
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index a99485d381..c20171b049 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -3243,7 +3243,12 @@ static WERROR nt_printer_publish_ads(ADS_STRUCT *ads,
struct GUID guid;
WERROR win_rc = WERR_OK;
size_t converted_size;
- int ret;
+
+ /* build the ads mods */
+ ctx = talloc_init("nt_printer_publish_ads");
+ if (ctx == NULL) {
+ return WERR_NOMEM;
+ }
DEBUG(5, ("publishing printer %s\n", printer->info_2->printername));
@@ -3255,24 +3260,28 @@ static WERROR nt_printer_publish_ads(ADS_STRUCT *ads,
srv_dn_utf8 = ldap_get_dn((LDAP *)ads->ldap.ld, (LDAPMessage *)res);
if (!srv_dn_utf8) {
+ TALLOC_FREE(ctx);
return WERR_SERVER_UNAVAILABLE;
}
ads_msgfree(ads, res);
srv_cn_utf8 = ldap_explode_dn(srv_dn_utf8, 1);
if (!srv_cn_utf8) {
+ TALLOC_FREE(ctx);
ldap_memfree(srv_dn_utf8);
return WERR_SERVER_UNAVAILABLE;
}
/* Now convert to CH_UNIX. */
- if (!pull_utf8_allocate(&srv_dn, srv_dn_utf8, &converted_size)) {
+ if (!pull_utf8_talloc(ctx, &srv_dn, srv_dn_utf8, &converted_size)) {
+ TALLOC_FREE(ctx);
ldap_memfree(srv_dn_utf8);
ldap_memfree(srv_cn_utf8);
return WERR_SERVER_UNAVAILABLE;
}
- if (!pull_utf8_allocate(&srv_cn_0, srv_cn_utf8[0], &converted_size)) {
+ if (!pull_utf8_talloc(ctx, &srv_cn_0, srv_cn_utf8[0], &converted_size)) {
+ TALLOC_FREE(ctx);
ldap_memfree(srv_dn_utf8);
ldap_memfree(srv_cn_utf8);
- SAFE_FREE(srv_dn);
+ TALLOC_FREE(srv_dn);
return WERR_SERVER_UNAVAILABLE;
}
@@ -3281,41 +3290,26 @@ static WERROR nt_printer_publish_ads(ADS_STRUCT *ads,
srv_cn_escaped = escape_rdn_val_string_alloc(srv_cn_0);
if (!srv_cn_escaped) {
- SAFE_FREE(srv_cn_0);
- SAFE_FREE(srv_dn);
+ TALLOC_FREE(ctx);
return WERR_SERVER_UNAVAILABLE;
}
sharename_escaped = escape_rdn_val_string_alloc(printer->info_2->sharename);
if (!sharename_escaped) {
SAFE_FREE(srv_cn_escaped);
- SAFE_FREE(srv_cn_0);
- SAFE_FREE(srv_dn);
+ TALLOC_FREE(ctx);
return WERR_SERVER_UNAVAILABLE;
}
- ret = asprintf(&prt_dn, "cn=%s-%s,%s", srv_cn_escaped, sharename_escaped, srv_dn);
+ prt_dn = talloc_asprintf(ctx, "cn=%s-%s,%s", srv_cn_escaped, sharename_escaped, srv_dn);
- SAFE_FREE(srv_dn);
- SAFE_FREE(srv_cn_0);
SAFE_FREE(srv_cn_escaped);
SAFE_FREE(sharename_escaped);
- if (ret == -1) {
- return WERR_NOMEM;
- }
-
- /* build the ads mods */
- ctx = talloc_init("nt_printer_publish_ads");
- if (ctx == NULL) {
- SAFE_FREE(prt_dn);
- return WERR_NOMEM;
- }
-
mods = ads_init_mods(ctx);
if (mods == NULL) {
SAFE_FREE(prt_dn);
- talloc_destroy(ctx);
+ TALLOC_FREE(ctx);
return WERR_NOMEM;
}
@@ -3336,8 +3330,6 @@ static WERROR nt_printer_publish_ads(ADS_STRUCT *ads,
if (!ADS_ERR_OK(ads_rc))
DEBUG(3, ("error publishing %s: %s\n", printer->info_2->sharename, ads_errstr(ads_rc)));
- talloc_destroy(ctx);
-
/* retreive the guid and store it locally */
if (ADS_ERR_OK(ads_search_dn(ads, &res, prt_dn, attrs))) {
ZERO_STRUCT(guid);
@@ -3346,8 +3338,8 @@ static WERROR nt_printer_publish_ads(ADS_STRUCT *ads,
store_printer_guid(printer->info_2, guid);
win_rc = mod_a_printer(printer, 2);
}
+ TALLOC_FREE(ctx);
- SAFE_FREE(prt_dn);
return win_rc;
}
@@ -3365,13 +3357,13 @@ static WERROR nt_printer_unpublish_ads(ADS_STRUCT *ads,
printer->info_2->sharename, global_myname());
if (ADS_ERR_OK(ads_rc) && res && ads_count_replies(ads, res)) {
- prt_dn = ads_get_dn(ads, res);
+ prt_dn = ads_get_dn(ads, talloc_tos(), res);
if (!prt_dn) {
ads_msgfree(ads, res);
return WERR_NOMEM;
}
ads_rc = ads_del_dn(ads, prt_dn);
- ads_memfree(ads, prt_dn);
+ TALLOC_FREE(prt_dn);
}
if (res) {
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
index 6b83c170f5..a8cc33f585 100644
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -2291,19 +2291,24 @@ NTSTATUS rpc_api_pipe_req(TALLOC_CTX *mem_ctx, struct rpc_pipe_client *cli,
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
struct tevent_req *req;
- NTSTATUS status = NT_STATUS_NO_MEMORY;
+ NTSTATUS status = NT_STATUS_OK;
ev = event_context_init(frame);
if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
req = rpc_api_pipe_req_send(frame, ev, cli, op_num, in_data);
if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
- tevent_req_poll(req, ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
+ }
status = rpc_api_pipe_req_recv(req, mem_ctx, out_data);
fail:
@@ -2905,19 +2910,24 @@ NTSTATUS rpc_pipe_bind(struct rpc_pipe_client *cli,
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
struct tevent_req *req;
- NTSTATUS status = NT_STATUS_NO_MEMORY;
+ NTSTATUS status = NT_STATUS_OK;
ev = event_context_init(frame);
if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
req = rpc_pipe_bind_send(frame, ev, cli, auth);
if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
goto fail;
}
- tevent_req_poll(req, ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
+ }
status = rpc_pipe_bind_recv(req);
fail:
diff --git a/source3/rpc_client/rpc_transport_np.c b/source3/rpc_client/rpc_transport_np.c
index 8b45cb4e9c..40d68dd2ea 100644
--- a/source3/rpc_client/rpc_transport_np.c
+++ b/source3/rpc_client/rpc_transport_np.c
@@ -49,7 +49,7 @@ struct rpc_np_write_state {
size_t written;
};
-static void rpc_np_write_done(struct async_req *subreq);
+static void rpc_np_write_done(struct tevent_req *subreq);
static struct tevent_req *rpc_np_write_send(TALLOC_CTX *mem_ctx,
struct event_context *ev,
@@ -58,8 +58,7 @@ static struct tevent_req *rpc_np_write_send(TALLOC_CTX *mem_ctx,
{
struct rpc_transport_np_state *np_transport = talloc_get_type_abort(
priv, struct rpc_transport_np_state);
- struct tevent_req *req;
- struct async_req *subreq;
+ struct tevent_req *req, *subreq;
struct rpc_np_write_state *state;
req = tevent_req_create(mem_ctx, &state, struct rpc_np_write_state);
@@ -72,21 +71,17 @@ static struct tevent_req *rpc_np_write_send(TALLOC_CTX *mem_ctx,
np_transport->fnum,
8, /* 8 means message mode. */
data, 0, size);
- if (subreq == NULL) {
- goto fail;
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
}
- subreq->async.fn = rpc_np_write_done;
- subreq->async.priv = req;
+ tevent_req_set_callback(subreq, rpc_np_write_done, req);
return req;
- fail:
- TALLOC_FREE(req);
- return NULL;
}
-static void rpc_np_write_done(struct async_req *subreq)
+static void rpc_np_write_done(struct tevent_req *subreq)
{
- struct tevent_req *req = talloc_get_type_abort(
- subreq->async.priv, struct tevent_req);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
struct rpc_np_write_state *state = tevent_req_data(
req, struct rpc_np_write_state);
NTSTATUS status;
@@ -119,7 +114,7 @@ struct rpc_np_read_state {
ssize_t received;
};
-static void rpc_np_read_done(struct async_req *subreq);
+static void rpc_np_read_done(struct tevent_req *subreq);
static struct tevent_req *rpc_np_read_send(TALLOC_CTX *mem_ctx,
struct event_context *ev,
@@ -128,8 +123,7 @@ static struct tevent_req *rpc_np_read_send(TALLOC_CTX *mem_ctx,
{
struct rpc_transport_np_state *np_transport = talloc_get_type_abort(
priv, struct rpc_transport_np_state);
- struct tevent_req *req;
- struct async_req *subreq;
+ struct tevent_req *req, *subreq;
struct rpc_np_read_state *state;
req = tevent_req_create(mem_ctx, &state, struct rpc_np_read_state);
@@ -144,18 +138,17 @@ static struct tevent_req *rpc_np_read_send(TALLOC_CTX *mem_ctx,
if (subreq == NULL) {
goto fail;
}
- subreq->async.fn = rpc_np_read_done;
- subreq->async.priv = req;
+ tevent_req_set_callback(subreq, rpc_np_read_done, req);
return req;
fail:
TALLOC_FREE(req);
return NULL;
}
-static void rpc_np_read_done(struct async_req *subreq)
+static void rpc_np_read_done(struct tevent_req *subreq)
{
- struct tevent_req *req = talloc_get_type_abort(
- subreq->async.priv, struct tevent_req);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
struct rpc_np_read_state *state = tevent_req_data(
req, struct rpc_np_read_state);
NTSTATUS status;
@@ -204,7 +197,7 @@ struct rpc_np_trans_state {
uint32_t rdata_len;
};
-static void rpc_np_trans_done(struct async_req *subreq);
+static void rpc_np_trans_done(struct tevent_req *subreq);
static struct tevent_req *rpc_np_trans_send(TALLOC_CTX *mem_ctx,
struct event_context *ev,
@@ -214,8 +207,7 @@ static struct tevent_req *rpc_np_trans_send(TALLOC_CTX *mem_ctx,
{
struct rpc_transport_np_state *np_transport = talloc_get_type_abort(
priv, struct rpc_transport_np_state);
- struct tevent_req *req;
- struct async_req *subreq;
+ struct tevent_req *req, *subreq;
struct rpc_np_trans_state *state;
req = tevent_req_create(mem_ctx, &state, struct rpc_np_trans_state);
@@ -233,8 +225,7 @@ static struct tevent_req *rpc_np_trans_send(TALLOC_CTX *mem_ctx,
if (subreq == NULL) {
goto fail;
}
- subreq->async.fn = rpc_np_trans_done;
- subreq->async.priv = req;
+ tevent_req_set_callback(subreq, rpc_np_trans_done, req);
return req;
fail:
@@ -242,10 +233,10 @@ static struct tevent_req *rpc_np_trans_send(TALLOC_CTX *mem_ctx,
return NULL;
}
-static void rpc_np_trans_done(struct async_req *subreq)
+static void rpc_np_trans_done(struct tevent_req *subreq)
{
- struct tevent_req *req = talloc_get_type_abort(
- subreq->async.priv, struct tevent_req);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
struct rpc_np_trans_state *state = tevent_req_data(
req, struct rpc_np_trans_state);
NTSTATUS status;
@@ -280,29 +271,30 @@ struct rpc_transport_np_init_state {
struct rpc_transport_np_state *transport_np;
};
-static void rpc_transport_np_init_pipe_open(struct async_req *subreq);
+static void rpc_transport_np_init_pipe_open(struct tevent_req *subreq);
-struct async_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli,
- const struct ndr_syntax_id *abstract_syntax)
+struct tevent_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli,
+ const struct ndr_syntax_id *abstract_syntax)
{
- struct async_req *result, *subreq;
+ struct tevent_req *req, *subreq;
struct rpc_transport_np_init_state *state;
- if (!async_req_setup(mem_ctx, &result, &state,
- struct rpc_transport_np_init_state)) {
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpc_transport_np_init_state);
+ if (req == NULL) {
return NULL;
}
state->transport = talloc(state, struct rpc_cli_transport);
- if (state->transport == NULL) {
- goto fail;
+ if (tevent_req_nomem(state->transport, req)) {
+ return tevent_req_post(req, ev);
}
state->transport_np = talloc(state->transport,
struct rpc_transport_np_state);
- if (state->transport_np == NULL) {
- goto fail;
+ if (tevent_req_nomem(state->transport_np, req)) {
+ return tevent_req_post(req, ev);
}
state->transport->priv = state->transport_np;
@@ -314,47 +306,43 @@ struct async_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
state, ev, cli, state->transport_np->pipe_name, 0,
DESIRED_ACCESS_PIPE, 0, FILE_SHARE_READ|FILE_SHARE_WRITE,
FILE_OPEN, 0, 0);
- if (subreq == NULL) {
- goto fail;
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
}
- subreq->async.fn = rpc_transport_np_init_pipe_open;
- subreq->async.priv = result;
- return result;
-
- fail:
- TALLOC_FREE(result);
- return NULL;
+ tevent_req_set_callback(subreq, rpc_transport_np_init_pipe_open,
+ req);
+ return req;
}
-static void rpc_transport_np_init_pipe_open(struct async_req *subreq)
+static void rpc_transport_np_init_pipe_open(struct tevent_req *subreq)
{
- struct async_req *req = talloc_get_type_abort(
- subreq->async.priv, struct async_req);
- struct rpc_transport_np_init_state *state = talloc_get_type_abort(
- req->private_data, struct rpc_transport_np_init_state);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpc_transport_np_init_state *state = tevent_req_data(
+ req, struct rpc_transport_np_init_state);
NTSTATUS status;
status = cli_ntcreate_recv(subreq, &state->transport_np->fnum);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
+ tevent_req_nterror(req, status);
return;
}
talloc_set_destructor(state->transport_np,
rpc_transport_np_state_destructor);
- async_req_done(req);
+ tevent_req_done(req);
}
-NTSTATUS rpc_transport_np_init_recv(struct async_req *req,
+NTSTATUS rpc_transport_np_init_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct rpc_cli_transport **presult)
{
- struct rpc_transport_np_init_state *state = talloc_get_type_abort(
- req->private_data, struct rpc_transport_np_init_state);
+ struct rpc_transport_np_init_state *state = tevent_req_data(
+ req, struct rpc_transport_np_init_state);
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
+ if (tevent_req_is_nterror(req, &status)) {
return status;
}
@@ -375,8 +363,8 @@ NTSTATUS rpc_transport_np_init(TALLOC_CTX *mem_ctx, struct cli_state *cli,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
- NTSTATUS status;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
ev = event_context_init(frame);
if (ev == NULL) {
@@ -390,8 +378,9 @@ NTSTATUS rpc_transport_np_init(TALLOC_CTX *mem_ctx, struct cli_state *cli,
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = rpc_transport_np_init_recv(req, mem_ctx, presult);
diff --git a/source3/rpc_client/rpc_transport_smbd.c b/source3/rpc_client/rpc_transport_smbd.c
index bde8d04208..171048ae29 100644
--- a/source3/rpc_client/rpc_transport_smbd.c
+++ b/source3/rpc_client/rpc_transport_smbd.c
@@ -88,6 +88,7 @@ static void rpc_cli_smbd_stdout_reader(struct event_context *ev,
TALLOC_FREE(fde);
return;
}
+ buf[nread] = '\0';
if (conn->stdout_callback.fn != NULL) {
conn->stdout_callback.fn(buf, nread,
@@ -127,102 +128,95 @@ struct get_anon_ipc_state {
struct cli_state *cli;
};
-static void get_anon_ipc_negprot_done(struct async_req *subreq);
-static void get_anon_ipc_sesssetup_done(struct async_req *subreq);
-static void get_anon_ipc_tcon_done(struct async_req *subreq);
+static void get_anon_ipc_negprot_done(struct tevent_req *subreq);
+static void get_anon_ipc_sesssetup_done(struct tevent_req *subreq);
+static void get_anon_ipc_tcon_done(struct tevent_req *subreq);
-static struct async_req *get_anon_ipc_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct cli_state *cli)
+static struct tevent_req *get_anon_ipc_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct cli_state *cli)
{
- struct async_req *result, *subreq;
+ struct tevent_req *req, *subreq;
struct get_anon_ipc_state *state;
- if (!async_req_setup(mem_ctx, &result, &state,
- struct get_anon_ipc_state)) {
+ req = tevent_req_create(mem_ctx, &state, struct get_anon_ipc_state);
+ if (req == NULL) {
return NULL;
}
-
state->ev = ev;
state->cli = cli;
subreq = cli_negprot_send(state, ev, cli);
- if (subreq == NULL) {
- goto fail;
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
}
- subreq->async.fn = get_anon_ipc_negprot_done;
- subreq->async.priv = result;
- return result;
- fail:
- TALLOC_FREE(result);
- return NULL;
+ tevent_req_set_callback(subreq, get_anon_ipc_negprot_done, req);
+ return req;
}
-static void get_anon_ipc_negprot_done(struct async_req *subreq)
+static void get_anon_ipc_negprot_done(struct tevent_req *subreq)
{
- struct async_req *req = talloc_get_type_abort(
- subreq->async.priv, struct async_req);
- struct get_anon_ipc_state *state = talloc_get_type_abort(
- req->private_data, struct get_anon_ipc_state);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct get_anon_ipc_state *state = tevent_req_data(
+ req, struct get_anon_ipc_state);
NTSTATUS status;
status = cli_negprot_recv(subreq);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
+ tevent_req_nterror(req, status);
return;
}
subreq = cli_session_setup_guest_send(state, state->ev, state->cli);
- if (async_req_nomem(subreq, req)) {
+ if (tevent_req_nomem(subreq, req)) {
return;
}
- subreq->async.fn = get_anon_ipc_sesssetup_done;
- subreq->async.priv = req;
+ tevent_req_set_callback(subreq, get_anon_ipc_sesssetup_done, req);
}
-static void get_anon_ipc_sesssetup_done(struct async_req *subreq)
+static void get_anon_ipc_sesssetup_done(struct tevent_req *subreq)
{
- struct async_req *req = talloc_get_type_abort(
- subreq->async.priv, struct async_req);
- struct get_anon_ipc_state *state = talloc_get_type_abort(
- req->private_data, struct get_anon_ipc_state);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct get_anon_ipc_state *state = tevent_req_data(
+ req, struct get_anon_ipc_state);
NTSTATUS status;
status = cli_session_setup_guest_recv(subreq);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
+ tevent_req_nterror(req, status);
return;
}
subreq = cli_tcon_andx_send(state, state->ev, state->cli,
"IPC$", "IPC", NULL, 0);
- if (async_req_nomem(subreq, req)) {
+ if (tevent_req_nomem(subreq, req)) {
return;
}
- subreq->async.fn = get_anon_ipc_tcon_done;
- subreq->async.priv = req;
+ tevent_req_set_callback(subreq, get_anon_ipc_tcon_done, req);
}
-static void get_anon_ipc_tcon_done(struct async_req *subreq)
+static void get_anon_ipc_tcon_done(struct tevent_req *subreq)
{
- struct async_req *req = talloc_get_type_abort(
- subreq->async.priv, struct async_req);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
NTSTATUS status;
status = cli_tcon_andx_recv(subreq);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
+ tevent_req_nterror(req, status);
return;
}
- async_req_done(req);
+ tevent_req_done(req);
}
-static NTSTATUS get_anon_ipc_recv(struct async_req *req)
+static NTSTATUS get_anon_ipc_recv(struct tevent_req *req)
{
- return async_req_simple_recv_ntstatus(req);
+ return tevent_req_simple_recv_ntstatus(req);
}
struct rpc_cli_smbd_conn_init_state {
@@ -230,16 +224,16 @@ struct rpc_cli_smbd_conn_init_state {
struct rpc_cli_smbd_conn *conn;
};
-static void rpc_cli_smbd_conn_init_done(struct async_req *subreq);
+static void rpc_cli_smbd_conn_init_done(struct tevent_req *subreq);
-struct async_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- void (*stdout_callback)(char *buf,
- size_t len,
- void *priv),
- void *priv)
+struct tevent_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ void (*stdout_callback)(char *buf,
+ size_t len,
+ void *priv),
+ void *priv)
{
- struct async_req *result, *subreq;
+ struct tevent_req *req, *subreq;
struct rpc_cli_smbd_conn_init_state *state;
int smb_sock[2];
int stdout_pipe[2];
@@ -249,20 +243,21 @@ struct async_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
smb_sock[0] = smb_sock[1] = stdout_pipe[0] = stdout_pipe[1] = -1;
- if (!async_req_setup(mem_ctx, &result, &state,
- struct rpc_cli_smbd_conn_init_state)) {
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpc_cli_smbd_conn_init_state);
+ if (req == NULL) {
return NULL;
}
state->ev = ev;
state->conn = talloc(state, struct rpc_cli_smbd_conn);
- if (state->conn == NULL) {
- goto nomem;
+ if (tevent_req_nomem(state->conn, req)) {
+ return tevent_req_post(req, ev);
}
state->conn->cli = cli_initialise();
- if (state->conn->cli == NULL) {
- goto nomem;
+ if (tevent_req_nomem(state->conn->cli, req)) {
+ return tevent_req_post(req, ev);
}
state->conn->stdout_fd = -1;
state->conn->stdout_callback.fn = stdout_callback;
@@ -309,7 +304,8 @@ struct async_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
printf("no memory");
exit(1);
}
- if (asprintf(&smbd_cmd, "%s -F -S", smbd_cmd) == -1) {
+ if (asprintf(&smbd_cmd, "%s -F -S -d %d", smbd_cmd,
+ DEBUGLEVEL) == -1) {
printf("no memory");
exit(1);
}
@@ -328,21 +324,19 @@ struct async_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
stdout_pipe[1] = -1;
subreq = get_anon_ipc_send(state, ev, state->conn->cli);
- if (subreq == NULL) {
- goto nomem;
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
}
- if (event_add_fd(ev, subreq, state->conn->stdout_fd, EVENT_FD_READ,
+ if (event_add_fd(ev, state, state->conn->stdout_fd, EVENT_FD_READ,
rpc_cli_smbd_stdout_reader, state->conn) == NULL) {
- goto nomem;
+ status = NT_STATUS_NO_MEMORY;
+ goto post_status;
}
- subreq->async.fn = rpc_cli_smbd_conn_init_done;
- subreq->async.priv = result;
- return result;
+ tevent_req_set_callback(subreq, rpc_cli_smbd_conn_init_done, req);
+ return req;
- nomem:
- status = NT_STATUS_NO_MEMORY;
post_status:
if (smb_sock[0] != -1) {
close(smb_sock[0]);
@@ -356,37 +350,34 @@ struct async_req *rpc_cli_smbd_conn_init_send(TALLOC_CTX *mem_ctx,
if (stdout_pipe[1] != -1) {
close(stdout_pipe[1]);
}
- if (async_post_ntstatus(result, ev, status)) {
- return result;
- }
- TALLOC_FREE(result);
- return NULL;
+ tevent_req_nterror(req, status);
+ return tevent_req_post(req, ev);
}
-static void rpc_cli_smbd_conn_init_done(struct async_req *subreq)
+static void rpc_cli_smbd_conn_init_done(struct tevent_req *subreq)
{
- struct async_req *req = talloc_get_type_abort(
- subreq->async.priv, struct async_req);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
NTSTATUS status;
status = get_anon_ipc_recv(subreq);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
+ tevent_req_nterror(req, status);
return;
}
- async_req_done(req);
+ tevent_req_done(req);
}
-NTSTATUS rpc_cli_smbd_conn_init_recv(struct async_req *req,
+NTSTATUS rpc_cli_smbd_conn_init_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct rpc_cli_smbd_conn **pconn)
{
- struct rpc_cli_smbd_conn_init_state *state = talloc_get_type_abort(
- req->private_data, struct rpc_cli_smbd_conn_init_state);
+ struct rpc_cli_smbd_conn_init_state *state = tevent_req_data(
+ req, struct rpc_cli_smbd_conn_init_state);
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
+ if (tevent_req_is_nterror(req, &status)) {
return status;
}
*pconn = talloc_move(mem_ctx, &state->conn);
@@ -402,7 +393,7 @@ NTSTATUS rpc_cli_smbd_conn_init(TALLOC_CTX *mem_ctx,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
+ struct tevent_req *req;
NTSTATUS status;
ev = event_context_init(frame);
@@ -417,8 +408,9 @@ NTSTATUS rpc_cli_smbd_conn_init(TALLOC_CTX *mem_ctx,
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = rpc_cli_smbd_conn_init_recv(req, mem_ctx, pconn);
@@ -456,7 +448,7 @@ static struct tevent_req *rpc_smbd_write_send(TALLOC_CTX *mem_ctx,
goto fail;
}
- if (event_add_fd(ev, subreq, transp->conn->stdout_fd, EVENT_FD_READ,
+ if (event_add_fd(ev, state, transp->conn->stdout_fd, EVENT_FD_READ,
rpc_cli_smbd_stdout_reader, transp->conn) == NULL) {
goto fail;
}
@@ -527,7 +519,7 @@ static struct tevent_req *rpc_smbd_read_send(TALLOC_CTX *mem_ctx,
goto fail;
}
- if (event_add_fd(ev, subreq, transp->conn->stdout_fd, EVENT_FD_READ,
+ if (event_add_fd(ev, state, transp->conn->stdout_fd, EVENT_FD_READ,
rpc_cli_smbd_stdout_reader, transp->conn) == NULL) {
goto fail;
}
@@ -573,53 +565,55 @@ struct rpc_transport_smbd_init_state {
struct rpc_transport_smbd_state *transport_smbd;
};
-static void rpc_transport_smbd_init_done(struct async_req *subreq);
+static void rpc_transport_smbd_init_done(struct tevent_req *subreq);
-struct async_req *rpc_transport_smbd_init_send(TALLOC_CTX *mem_ctx,
- struct event_context *ev,
- struct rpc_cli_smbd_conn *conn,
- const struct ndr_syntax_id *abstract_syntax)
+struct tevent_req *rpc_transport_smbd_init_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ struct rpc_cli_smbd_conn *conn,
+ const struct ndr_syntax_id *abstract_syntax)
{
- struct async_req *result, *subreq;
+ struct tevent_req *req, *subreq;
struct rpc_transport_smbd_init_state *state;
- if (!async_req_setup(mem_ctx, &result, &state,
- struct rpc_transport_smbd_init_state)) {
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpc_transport_smbd_init_state);
+ if (req == NULL) {
return NULL;
}
state->transport = talloc(state, struct rpc_cli_transport);
- if (state->transport == NULL) {
- goto fail;
+ if (tevent_req_nomem(state->transport, req)) {
+ return tevent_req_post(req, ev);
}
state->transport_smbd = talloc(state->transport,
struct rpc_transport_smbd_state);
- if (state->transport_smbd == NULL) {
- goto fail;
+ if (tevent_req_nomem(state->transport_smbd, req)) {
+ return tevent_req_post(req, ev);
}
state->transport_smbd->conn = conn;
state->transport->priv = state->transport_smbd;
+ if (event_add_fd(ev, state, conn->stdout_fd, EVENT_FD_READ,
+ rpc_cli_smbd_stdout_reader, conn) == NULL) {
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return tevent_req_post(req, ev);
+ }
+
subreq = rpc_transport_np_init_send(state, ev, conn->cli,
abstract_syntax);
- if (subreq == NULL) {
- goto fail;
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
}
- subreq->async.fn = rpc_transport_smbd_init_done;
- subreq->async.priv = result;
- return result;
-
- fail:
- TALLOC_FREE(result);
- return NULL;
+ tevent_req_set_callback(subreq, rpc_transport_smbd_init_done, req);
+ return req;
}
-static void rpc_transport_smbd_init_done(struct async_req *subreq)
+static void rpc_transport_smbd_init_done(struct tevent_req *subreq)
{
- struct async_req *req = talloc_get_type_abort(
- subreq->async.priv, struct async_req);
- struct rpc_transport_smbd_init_state *state = talloc_get_type_abort(
- req->private_data, struct rpc_transport_smbd_init_state);
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpc_transport_smbd_init_state *state = tevent_req_data(
+ req, struct rpc_transport_smbd_init_state);
NTSTATUS status;
status = rpc_transport_np_init_recv(
@@ -627,21 +621,21 @@ static void rpc_transport_smbd_init_done(struct async_req *subreq)
&state->transport_smbd->sub_transp);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
- async_req_nterror(req, status);
+ tevent_req_nterror(req, status);
return;
}
- async_req_done(req);
+ tevent_req_done(req);
}
-NTSTATUS rpc_transport_smbd_init_recv(struct async_req *req,
+NTSTATUS rpc_transport_smbd_init_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
struct rpc_cli_transport **presult)
{
- struct rpc_transport_smbd_init_state *state = talloc_get_type_abort(
- req->private_data, struct rpc_transport_smbd_init_state);
+ struct rpc_transport_smbd_init_state *state = tevent_req_data(
+ req, struct rpc_transport_smbd_init_state);
NTSTATUS status;
- if (async_req_is_nterror(req, &status)) {
+ if (tevent_req_is_nterror(req, &status)) {
return status;
}
@@ -663,7 +657,7 @@ NTSTATUS rpc_transport_smbd_init(TALLOC_CTX *mem_ctx,
{
TALLOC_CTX *frame = talloc_stackframe();
struct event_context *ev;
- struct async_req *req;
+ struct tevent_req *req;
NTSTATUS status;
ev = event_context_init(frame);
@@ -678,8 +672,9 @@ NTSTATUS rpc_transport_smbd_init(TALLOC_CTX *mem_ctx,
goto fail;
}
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
}
status = rpc_transport_smbd_init_recv(req, mem_ctx, presult);
diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c
index 94732b0a74..dfbd6dac74 100644
--- a/source3/rpc_parse/parse_prs.c
+++ b/source3/rpc_parse/parse_prs.c
@@ -1048,44 +1048,6 @@ bool prs_uint32s(bool charmode, const char *name, prs_struct *ps, int depth, uin
return True;
}
-/******************************************************************
- Stream a unicode string, length/buffer specified separately,
- in uint16 chars. The unicode string is already in little-endian format.
- ********************************************************************/
-
-bool prs_unistr2(bool charmode, const char *name, prs_struct *ps, int depth, UNISTR2 *str)
-{
- char *p;
- char *q = prs_mem_get(ps, str->uni_str_len * sizeof(uint16));
- if (q == NULL)
- return False;
-
- /* If the string is empty, we don't have anything to stream */
- if (str->uni_str_len==0)
- return True;
-
- if (UNMARSHALLING(ps)) {
- if (str->uni_str_len > str->uni_max_len) {
- return False;
- }
- if (str->uni_max_len) {
- str->buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_max_len);
- if (str->buffer == NULL)
- return False;
- } else {
- str->buffer = NULL;
- }
- }
-
- p = (char *)str->buffer;
-
- dbg_rw_punival(charmode, name, depth, ps, q, p, str->uni_str_len);
-
- ps->data_offset += (str->uni_str_len * sizeof(uint16));
-
- return True;
-}
-
/*******************************************************************
Stream a unicode null-terminated string. As the string is already
in little-endian format then do it as a stream of bytes.
diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c
index 5fdcaf2d4a..0ce2b40f65 100644
--- a/source3/rpc_server/srv_lsa_nt.c
+++ b/source3/rpc_server/srv_lsa_nt.c
@@ -648,14 +648,14 @@ NTSTATUS _lsa_QueryInfoPolicy(pipes_struct *p,
* only a BDC is a backup controller
* of the domain, it controls.
*/
- info->role.role = 2;
+ info->role.role = LSA_ROLE_BACKUP;
break;
default:
/*
* any other role is a primary
* of the domain, it controls.
*/
- info->role.role = 3;
+ info->role.role = LSA_ROLE_PRIMARY;
break;
}
break;
@@ -1434,14 +1434,14 @@ NTSTATUS _lsa_EnumAccounts(pipes_struct *p,
sids = TALLOC_ZERO_ARRAY(p->mem_ctx, struct lsa_SidPtr,
num_entries - *r->in.resume_handle);
if (!sids) {
- SAFE_FREE(sid_list);
+ talloc_free(sid_list);
return NT_STATUS_NO_MEMORY;
}
for (i = *r->in.resume_handle, j = 0; i < num_entries; i++, j++) {
sids[j].sid = sid_dup_talloc(p->mem_ctx, &sid_list[i]);
if (!sids[j].sid) {
- SAFE_FREE(sid_list);
+ talloc_free(sid_list);
return NT_STATUS_NO_MEMORY;
}
}
diff --git a/source3/rpc_server/srv_ntsvcs_nt.c b/source3/rpc_server/srv_ntsvcs_nt.c
index 681c543c24..7b8dc93a6e 100644
--- a/source3/rpc_server/srv_ntsvcs_nt.c
+++ b/source3/rpc_server/srv_ntsvcs_nt.c
@@ -3,6 +3,7 @@
* RPC Pipe client / server routines
*
* Copyright (C) Gerald (Jerry) Carter 2005.
+ * Copyright (C) Guenther Deschner 2008,2009.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -50,8 +51,9 @@ WERROR _PNP_GetDeviceListSize(pipes_struct *p,
{
char *devicepath;
- if (!r->in.devicename) {
- return WERR_ACCESS_DENIED;
+ if ((r->in.flags & CM_GETIDLIST_FILTER_SERVICE) &&
+ (!r->in.devicename)) {
+ return WERR_CM_INVALID_POINTER;
}
if (!(devicepath = get_device_path(p->mem_ctx, r->in.devicename))) {
@@ -74,13 +76,14 @@ WERROR _PNP_GetDeviceList(pipes_struct *p,
{
char *devicepath;
uint32_t size = 0;
+ char **multi_sz = NULL;
+ size_t multi_sz_len;
+ uint16_t *multi_sz_buf;
- DATA_BLOB blob;
- struct lsa_StringLarge s;
- enum ndr_err_code ndr_err;
-
- if ( !r->in.filter )
- return WERR_ACCESS_DENIED;
+ if ((r->in.flags & CM_GETIDLIST_FILTER_SERVICE) &&
+ (!r->in.filter)) {
+ return WERR_CM_INVALID_POINTER;
+ }
if (!(devicepath = get_device_path(p->mem_ctx, r->in.filter))) {
return WERR_NOMEM;
@@ -92,20 +95,24 @@ WERROR _PNP_GetDeviceList(pipes_struct *p,
return WERR_CM_BUFFER_SMALL;
}
- s.string = r->in.filter;
-
- /* This has to be DOUBLE NULL terminated */
- ndr_err = ndr_push_struct_blob(&blob, p->mem_ctx, NULL, &s,
- (ndr_push_flags_fn_t)ndr_push_lsa_StringLarge);
- if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
- return ntstatus_to_werror(ndr_map_error2ntstatus(ndr_err));
+ multi_sz = talloc_zero_array(p->mem_ctx, char *, 2);
+ if (!multi_sz) {
+ return WERR_NOMEM;
}
- r->out.buffer = (uint16_t *)talloc_memdup(p->mem_ctx, blob.data, blob.length);
- if (!r->out.buffer) {
+ multi_sz[0] = devicepath;
+
+ multi_sz_len = regval_build_multi_sz(multi_sz, &multi_sz_buf);
+ if (!multi_sz_len) {
return WERR_NOMEM;
}
+ if (*r->in.length < multi_sz_len/2) {
+ return WERR_CM_BUFFER_SMALL;
+ }
+
+ memcpy(r->out.buffer, multi_sz_buf, multi_sz_len);
+
return WERR_OK;
}
diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c
index c60d904b18..7881ca62ea 100644
--- a/source3/rpc_server/srv_samr_nt.c
+++ b/source3/rpc_server/srv_samr_nt.c
@@ -3245,6 +3245,9 @@ NTSTATUS _samr_Connect2(pipes_struct *p,
case NDR_SAMR_CONNECT2:
fn = "_samr_Connect2";
break;
+ case NDR_SAMR_CONNECT3:
+ fn = "_samr_Connect3";
+ break;
case NDR_SAMR_CONNECT4:
fn = "_samr_Connect4";
break;
@@ -3289,6 +3292,22 @@ NTSTATUS _samr_Connect2(pipes_struct *p,
return nt_status;
}
+/****************************************************************
+ _samr_Connect3
+****************************************************************/
+
+NTSTATUS _samr_Connect3(pipes_struct *p,
+ struct samr_Connect3 *r)
+{
+ struct samr_Connect2 c;
+
+ c.in.system_name = r->in.system_name;
+ c.in.access_mask = r->in.access_mask;
+ c.out.connect_handle = r->out.connect_handle;
+
+ return _samr_Connect2(p, &c);
+}
+
/*******************************************************************
_samr_Connect4
********************************************************************/
@@ -3667,8 +3686,9 @@ static bool set_user_info_20(struct samr_UserInfo20 *id20,
set_user_info_21
********************************************************************/
-static NTSTATUS set_user_info_21(TALLOC_CTX *mem_ctx,
- struct samr_UserInfo21 *id21,
+static NTSTATUS set_user_info_21(struct samr_UserInfo21 *id21,
+ TALLOC_CTX *mem_ctx,
+ DATA_BLOB *session_key,
struct samu *pwd)
{
NTSTATUS status;
@@ -3686,6 +3706,52 @@ static NTSTATUS set_user_info_21(TALLOC_CTX *mem_ctx,
return NT_STATUS_ACCESS_DENIED;
}
+ if (id21->fields_present & SAMR_FIELD_NT_PASSWORD_PRESENT) {
+ if (id21->nt_password_set) {
+ DATA_BLOB in, out;
+
+ if ((id21->nt_owf_password.length != 16) ||
+ (id21->nt_owf_password.size != 16)) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ if (!session_key->length) {
+ return NT_STATUS_NO_USER_SESSION_KEY;
+ }
+
+ in = data_blob_const(id21->nt_owf_password.array, 16);
+ out = data_blob_talloc_zero(mem_ctx, 16);
+
+ sess_crypt_blob(&out, &in, session_key, false);
+
+ pdb_set_nt_passwd(pwd, out.data, PDB_CHANGED);
+ pdb_set_pass_last_set_time(pwd, time(NULL), PDB_CHANGED);
+ }
+ }
+
+ if (id21->fields_present & SAMR_FIELD_LM_PASSWORD_PRESENT) {
+ if (id21->lm_password_set) {
+ DATA_BLOB in, out;
+
+ if ((id21->lm_owf_password.length != 16) ||
+ (id21->lm_owf_password.size != 16)) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ if (!session_key->length) {
+ return NT_STATUS_NO_USER_SESSION_KEY;
+ }
+
+ in = data_blob_const(id21->lm_owf_password.array, 16);
+ out = data_blob_talloc_zero(mem_ctx, 16);
+
+ sess_crypt_blob(&out, &in, session_key, false);
+
+ pdb_set_lanman_passwd(pwd, out.data, PDB_CHANGED);
+ pdb_set_pass_last_set_time(pwd, time(NULL), PDB_CHANGED);
+ }
+ }
+
/* we need to separately check for an account rename first */
if (id21->account_name.string &&
@@ -4147,8 +4213,10 @@ NTSTATUS _samr_SetUserInfo(pipes_struct *p,
break;
case 21:
- status = set_user_info_21(p->mem_ctx,
- &info->info21, pwd);
+ status = set_user_info_21(&info->info21,
+ p->mem_ctx,
+ &p->server_info->user_session_key,
+ pwd);
break;
case 23:
@@ -5852,16 +5920,6 @@ NTSTATUS _samr_GetBootKeyInformation(pipes_struct *p,
/****************************************************************
****************************************************************/
-NTSTATUS _samr_Connect3(pipes_struct *p,
- struct samr_Connect3 *r)
-{
- p->rng_fault_state = true;
- return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
NTSTATUS _samr_RidToSid(pipes_struct *p,
struct samr_RidToSid *r)
{
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c
index 15c137a88c..098e59216b 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -445,7 +445,7 @@ static bool set_printer_hnd_name(Printer_entry *Printer, const char *handlename)
aprinter++;
}
} else {
- servername = "";
+ servername = global_myname();
}
/* save the servername to fill in replies on this handle */
@@ -4890,6 +4890,174 @@ static WERROR fill_printer_driver_info6(TALLOC_CTX *mem_ctx,
}
/********************************************************************
+ ********************************************************************/
+
+static WERROR fill_spoolss_DriverFileInfo(TALLOC_CTX *mem_ctx,
+ struct spoolss_DriverFileInfo *r,
+ const char *cservername,
+ const char *file_name,
+ enum spoolss_DriverFileType file_type,
+ uint32_t file_version)
+{
+ r->file_name = talloc_asprintf(mem_ctx, "\\\\%s%s",
+ cservername, file_name);
+ W_ERROR_HAVE_NO_MEMORY(r->file_name);
+ r->file_type = file_type;
+ r->file_version = file_version;
+
+ return WERR_OK;
+}
+
+/********************************************************************
+ ********************************************************************/
+
+static WERROR spoolss_DriverFileInfo_from_driver(TALLOC_CTX *mem_ctx,
+ const NT_PRINTER_DRIVER_INFO_LEVEL *driver,
+ const char *cservername,
+ struct spoolss_DriverFileInfo **info_p,
+ uint32_t *count_p)
+{
+ struct spoolss_DriverFileInfo *info = NULL;
+ uint32_t count = 0;
+ WERROR result;
+ uint32_t i;
+
+ *info_p = NULL;
+ *count_p = 0;
+
+ if (strlen(driver->info_3->driverpath)) {
+ info = TALLOC_REALLOC_ARRAY(mem_ctx, info,
+ struct spoolss_DriverFileInfo,
+ count + 1);
+ W_ERROR_HAVE_NO_MEMORY(info);
+ result = fill_spoolss_DriverFileInfo(info,
+ &info[count],
+ cservername,
+ driver->info_3->driverpath,
+ SPOOLSS_DRIVER_FILE_TYPE_RENDERING,
+ 0);
+ W_ERROR_NOT_OK_RETURN(result);
+ count++;
+ }
+
+ if (strlen(driver->info_3->configfile)) {
+ info = TALLOC_REALLOC_ARRAY(mem_ctx, info,
+ struct spoolss_DriverFileInfo,
+ count + 1);
+ W_ERROR_HAVE_NO_MEMORY(info);
+ result = fill_spoolss_DriverFileInfo(info,
+ &info[count],
+ cservername,
+ driver->info_3->configfile,
+ SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION,
+ 0);
+ W_ERROR_NOT_OK_RETURN(result);
+ count++;
+ }
+
+ if (strlen(driver->info_3->datafile)) {
+ info = TALLOC_REALLOC_ARRAY(mem_ctx, info,
+ struct spoolss_DriverFileInfo,
+ count + 1);
+ W_ERROR_HAVE_NO_MEMORY(info);
+ result = fill_spoolss_DriverFileInfo(info,
+ &info[count],
+ cservername,
+ driver->info_3->datafile,
+ SPOOLSS_DRIVER_FILE_TYPE_DATA,
+ 0);
+ W_ERROR_NOT_OK_RETURN(result);
+ count++;
+ }
+
+ if (strlen(driver->info_3->helpfile)) {
+ info = TALLOC_REALLOC_ARRAY(mem_ctx, info,
+ struct spoolss_DriverFileInfo,
+ count + 1);
+ W_ERROR_HAVE_NO_MEMORY(info);
+ result = fill_spoolss_DriverFileInfo(info,
+ &info[count],
+ cservername,
+ driver->info_3->helpfile,
+ SPOOLSS_DRIVER_FILE_TYPE_HELP,
+ 0);
+ W_ERROR_NOT_OK_RETURN(result);
+ count++;
+ }
+
+ for (i=0; driver->info_3->dependentfiles[i][0] != '\0'; i++) {
+ info = TALLOC_REALLOC_ARRAY(mem_ctx, info,
+ struct spoolss_DriverFileInfo,
+ count + 1);
+ W_ERROR_HAVE_NO_MEMORY(info);
+ result = fill_spoolss_DriverFileInfo(info,
+ &info[count],
+ cservername,
+ driver->info_3->dependentfiles[i],
+ SPOOLSS_DRIVER_FILE_TYPE_OTHER,
+ 0);
+ W_ERROR_NOT_OK_RETURN(result);
+ count++;
+ }
+
+ *info_p = info;
+ *count_p = count;
+
+ return WERR_OK;
+}
+
+/********************************************************************
+ * fill a spoolss_DriverInfo101 sttruct
+ ********************************************************************/
+
+static WERROR fill_printer_driver_info101(TALLOC_CTX *mem_ctx,
+ struct spoolss_DriverInfo101 *r,
+ const NT_PRINTER_DRIVER_INFO_LEVEL *driver,
+ const char *servername)
+{
+ const char *cservername = canon_servername(servername);
+ WERROR result;
+
+ r->version = driver->info_3->cversion;
+
+ r->driver_name = talloc_strdup(mem_ctx, driver->info_3->name);
+ W_ERROR_HAVE_NO_MEMORY(r->driver_name);
+ r->architecture = talloc_strdup(mem_ctx, driver->info_3->environment);
+ W_ERROR_HAVE_NO_MEMORY(r->architecture);
+
+ result = spoolss_DriverFileInfo_from_driver(mem_ctx, driver,
+ cservername,
+ &r->file_info,
+ &r->file_count);
+ if (!W_ERROR_IS_OK(result)) {
+ return result;
+ }
+
+ r->monitor_name = talloc_strdup(mem_ctx, driver->info_3->monitorname);
+ W_ERROR_HAVE_NO_MEMORY(r->monitor_name);
+
+ r->default_datatype = talloc_strdup(mem_ctx, driver->info_3->defaultdatatype);
+ W_ERROR_HAVE_NO_MEMORY(r->default_datatype);
+
+ r->previous_names = string_array_from_driver_info(mem_ctx,
+ NULL,
+ cservername);
+ r->driver_date = 0;
+ r->driver_version = 0;
+
+ r->manufacturer_name = talloc_strdup(mem_ctx, "");
+ W_ERROR_HAVE_NO_MEMORY(r->manufacturer_name);
+ r->manufacturer_url = talloc_strdup(mem_ctx, "");
+ W_ERROR_HAVE_NO_MEMORY(r->manufacturer_url);
+ r->hardware_id = talloc_strdup(mem_ctx, "");
+ W_ERROR_HAVE_NO_MEMORY(r->hardware_id);
+ r->provider = talloc_strdup(mem_ctx, "");
+ W_ERROR_HAVE_NO_MEMORY(r->provider);
+
+ return WERR_OK;
+}
+
+/********************************************************************
* construct_printer_driver_info_1
********************************************************************/
@@ -5077,6 +5245,69 @@ static WERROR construct_printer_driver_info_6(TALLOC_CTX *mem_ctx,
return status;
}
+/********************************************************************
+ * construct_printer_info_101
+ * fill a printer_info_101 struct
+ ********************************************************************/
+
+static WERROR construct_printer_driver_info_101(TALLOC_CTX *mem_ctx,
+ struct spoolss_DriverInfo101 *r,
+ int snum,
+ const char *servername,
+ const char *architecture,
+ uint32_t version)
+{
+ NT_PRINTER_INFO_LEVEL *printer = NULL;
+ NT_PRINTER_DRIVER_INFO_LEVEL driver;
+ WERROR result;
+
+ ZERO_STRUCT(driver);
+
+ result = get_a_printer(NULL, &printer, 2, lp_const_servicename(snum));
+
+ DEBUG(8,("construct_printer_driver_info_101: status: %s\n",
+ win_errstr(result)));
+
+ if (!W_ERROR_IS_OK(result)) {
+ return WERR_INVALID_PRINTER_NAME;
+ }
+
+ result = get_a_printer_driver(&driver, 3, printer->info_2->drivername,
+ architecture, version);
+
+ DEBUG(8,("construct_printer_driver_info_101: status: %s\n",
+ win_errstr(result)));
+
+ if (!W_ERROR_IS_OK(result)) {
+ /*
+ * Is this a W2k client ?
+ */
+
+ if (version < 3) {
+ free_a_printer(&printer, 2);
+ return WERR_UNKNOWN_PRINTER_DRIVER;
+ }
+
+ /* Yes - try again with a WinNT driver. */
+ version = 2;
+ result = get_a_printer_driver(&driver, 3, printer->info_2->drivername,
+ architecture, version);
+ DEBUG(8,("construct_printer_driver_info_6: status: %s\n",
+ win_errstr(result)));
+ if (!W_ERROR_IS_OK(result)) {
+ free_a_printer(&printer, 2);
+ return WERR_UNKNOWN_PRINTER_DRIVER;
+ }
+ }
+
+ result = fill_printer_driver_info101(mem_ctx, r, &driver, servername);
+
+ free_a_printer(&printer, 2);
+ free_a_printer_driver(driver, 3);
+
+ return result;
+}
+
/****************************************************************
_spoolss_GetPrinterDriver2
****************************************************************/
@@ -5146,13 +5377,15 @@ WERROR _spoolss_GetPrinterDriver2(pipes_struct *p,
r->in.architecture,
r->in.client_major_version);
break;
- default:
-#if 0 /* JERRY */
case 101:
- /* apparently this call is the equivalent of
- EnumPrinterDataEx() for the DsDriver key */
+ result = construct_printer_driver_info_101(p->mem_ctx,
+ &r->out.info->info101,
+ snum,
+ servername,
+ r->in.architecture,
+ r->in.client_major_version);
break;
-#endif
+ default:
result = WERR_UNKNOWN_LEVEL;
break;
}
diff --git a/source3/rpc_server/srv_svcctl_nt.c b/source3/rpc_server/srv_svcctl_nt.c
index 3ca85aa755..0b0ef83bee 100644
--- a/source3/rpc_server/srv_svcctl_nt.c
+++ b/source3/rpc_server/srv_svcctl_nt.c
@@ -32,8 +32,6 @@ struct service_control_op {
SERVICE_CONTROL_OPS *ops;
};
-#define SVCCTL_NUM_INTERNAL_SERVICES 4
-
/* handle external services */
extern SERVICE_CONTROL_OPS rcinit_svc_ops;
@@ -446,7 +444,7 @@ WERROR _svcctl_EnumServicesStatusW(pipes_struct *p,
buffer_size += buffer_size % 4;
- if (buffer_size > r->in.buf_size ) {
+ if (buffer_size > r->in.offered) {
num_services = 0;
result = WERR_MORE_DATA;
}
@@ -468,10 +466,10 @@ WERROR _svcctl_EnumServicesStatusW(pipes_struct *p,
}
blob = ndr_push_blob(ndr);
+ memcpy(r->out.service, blob.data, r->in.offered);
}
- r->out.service = blob.data;
- *r->out.bytes_needed = (buffer_size > r->in.buf_size) ? buffer_size : r->in.buf_size;
+ *r->out.needed = (buffer_size > r->in.offered) ? buffer_size : r->in.offered;
*r->out.services_returned = (uint32)num_services;
*r->out.resume_handle = 0x0;
@@ -548,11 +546,20 @@ WERROR _svcctl_EnumDependentServicesW(pipes_struct *p,
if ( !(info->access_granted & SC_RIGHT_SVC_ENUMERATE_DEPENDENTS) )
return WERR_ACCESS_DENIED;
+ switch (r->in.state) {
+ case SERVICE_STATE_ACTIVE:
+ case SERVICE_STATE_INACTIVE:
+ case SERVICE_STATE_ALL:
+ break;
+ default:
+ return WERR_INVALID_PARAM;
+ }
+
/* we have to set the outgoing buffer size to the same as the
incoming buffer size (even in the case of failure */
/* this is done in the autogenerated server already - gd */
- *r->out.bytes_needed = r->in.buf_size;
+ *r->out.needed = r->in.offered;
/* no dependent services...basically a stub function */
*r->out.services_returned = 0;
@@ -580,7 +587,7 @@ WERROR _svcctl_QueryServiceStatusEx(pipes_struct *p,
/* we have to set the outgoing buffer size to the same as the
incoming buffer size (even in the case of failure) */
- *r->out.bytes_needed = r->in.buf_size;
+ *r->out.needed = r->in.offered;
switch ( r->in.info_level ) {
case SVC_STATUS_PROCESS_INFO:
@@ -612,9 +619,9 @@ WERROR _svcctl_QueryServiceStatusEx(pipes_struct *p,
buffer_size += buffer_size % 4;
- *r->out.bytes_needed = (buffer_size > r->in.buf_size) ? buffer_size : r->in.buf_size;
+ *r->out.needed = (buffer_size > r->in.offered) ? buffer_size : r->in.offered;
- if (buffer_size > r->in.buf_size ) {
+ if (buffer_size > r->in.offered ) {
return WERR_INSUFFICIENT_BUFFER;
}
@@ -697,7 +704,7 @@ WERROR _svcctl_QueryServiceConfigW(pipes_struct *p,
/* we have to set the outgoing buffer size to the same as the
incoming buffer size (even in the case of failure */
- *r->out.bytes_needed = r->in.buf_size;
+ *r->out.needed = r->in.offered;
wresult = fill_svc_config( p->mem_ctx, info->name, r->out.query,
p->server_info->ptok);
@@ -705,9 +712,9 @@ WERROR _svcctl_QueryServiceConfigW(pipes_struct *p,
return wresult;
buffer_size = ndr_size_QUERY_SERVICE_CONFIG(r->out.query, NULL, 0);
- *r->out.bytes_needed = (buffer_size > r->in.buf_size) ? buffer_size : r->in.buf_size;
+ *r->out.needed = (buffer_size > r->in.offered) ? buffer_size : r->in.offered;
- if (buffer_size > r->in.buf_size ) {
+ if (buffer_size > r->in.offered ) {
ZERO_STRUCTP(r->out.query);
return WERR_INSUFFICIENT_BUFFER;
}
@@ -735,7 +742,7 @@ WERROR _svcctl_QueryServiceConfig2W(pipes_struct *p,
/* we have to set the outgoing buffer size to the same as the
incoming buffer size (even in the case of failure */
- *r->out.bytes_needed = r->in.buf_size;
+ *r->out.needed = r->in.offered;
switch ( r->in.info_level ) {
case SERVICE_CONFIG_DESCRIPTION:
@@ -792,9 +799,9 @@ WERROR _svcctl_QueryServiceConfig2W(pipes_struct *p,
}
buffer_size += buffer_size % 4;
- *r->out.bytes_needed = (buffer_size > r->in.buf_size) ? buffer_size : r->in.buf_size;
+ *r->out.needed = (buffer_size > r->in.offered) ? buffer_size : r->in.offered;
- if (buffer_size > r->in.buf_size )
+ if (buffer_size > r->in.offered)
return WERR_INSUFFICIENT_BUFFER;
return WERR_OK;
@@ -874,8 +881,7 @@ WERROR _svcctl_QueryServiceObjectSecurity(pipes_struct *p,
*r->out.needed = ndr_size_security_descriptor( sec_desc, NULL, 0 );
- if ( *r->out.needed > r->in.buffer_size ) {
- ZERO_STRUCTP( &r->out.buffer );
+ if ( *r->out.needed > r->in.offered) {
return WERR_INSUFFICIENT_BUFFER;
}
@@ -934,7 +940,8 @@ WERROR _svcctl_SetServiceObjectSecurity(pipes_struct *p,
/* read the security descfriptor */
status = unmarshall_sec_desc(p->mem_ctx,
- r->in.buffer, r->in.buffer_size,
+ r->in.buffer,
+ r->in.offered,
&sec_desc);
if (!NT_STATUS_IS_OK(status)) {
return ntstatus_to_werror(status);
diff --git a/source3/rpc_server/srv_util.c b/source3/rpc_server/srv_util.c
deleted file mode 100644
index b276e75faa..0000000000
--- a/source3/rpc_server/srv_util.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * RPC Pipe client / server routines
- * Copyright (C) Andrew Tridgell 1992-1998
- * Copyright (C) Luke Kenneth Casson Leighton 1996-1998,
- * Copyright (C) Paul Ashton 1997-1998,
- * Copyright (C) Andrew Bartlett 2004.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/* this module apparently provides an implementation of DCE/RPC over a
- * named pipe (IPC$ connection using SMBtrans). details of DCE/RPC
- * documentation are available (in on-line form) from the X-Open group.
- *
- * this module should provide a level of abstraction between SMB
- * and DCE/RPC, while minimising the amount of mallocs, unnecessary
- * data copies, and network traffic.
- *
- * in this version, which takes a "let's learn what's going on and
- * get something running" approach, there is additional network
- * traffic generated, but the code should be easier to understand...
- *
- * ... if you read the docs. or stare at packets for weeks on end.
- *
- */
-
-#include "includes.h"
-
-#undef DBGC_CLASS
-#define DBGC_CLASS DBGC_RPC_SRV
-
-#if 0 /* these aren't used currently but are here if you need them */
-
-typedef struct {
- uint32 rid;
- const char *name;
-} rid_name;
-
-/*
- * A list of the rids of well known BUILTIN and Domain users
- * and groups.
- */
-
-static const rid_name builtin_alias_rids[] =
-{
- { BUILTIN_ALIAS_RID_ADMINS , "Administrators" },
- { BUILTIN_ALIAS_RID_USERS , "Users" },
- { BUILTIN_ALIAS_RID_GUESTS , "Guests" },
- { BUILTIN_ALIAS_RID_POWER_USERS , "Power Users" },
-
- { BUILTIN_ALIAS_RID_ACCOUNT_OPS , "Account Operators" },
- { BUILTIN_ALIAS_RID_SYSTEM_OPS , "System Operators" },
- { BUILTIN_ALIAS_RID_PRINT_OPS , "Print Operators" },
- { BUILTIN_ALIAS_RID_BACKUP_OPS , "Backup Operators" },
- { BUILTIN_ALIAS_RID_REPLICATOR , "Replicator" },
- { 0 , NULL }
-};
-
-/* array lookup of well-known Domain RID users. */
-static const rid_name domain_user_rids[] =
-{
- { DOMAIN_USER_RID_ADMIN , "Administrator" },
- { DOMAIN_USER_RID_GUEST , "Guest" },
- { 0 , NULL }
-};
-
-/* array lookup of well-known Domain RID groups. */
-static const rid_name domain_group_rids[] =
-{
- { DOMAIN_GROUP_RID_ADMINS , "Domain Admins" },
- { DOMAIN_GROUP_RID_USERS , "Domain Users" },
- { DOMAIN_GROUP_RID_GUESTS , "Domain Guests" },
- { 0 , NULL }
-};
-#endif
-
diff --git a/source3/rpcclient/cmd_ntsvcs.c b/source3/rpcclient/cmd_ntsvcs.c
index eb620d06b2..a345cdc8bf 100644
--- a/source3/rpcclient/cmd_ntsvcs.c
+++ b/source3/rpcclient/cmd_ntsvcs.c
@@ -235,17 +235,21 @@ static WERROR cmd_ntsvcs_get_dev_list(struct rpc_pipe_client *cli,
uint32_t length = 0;
uint32_t flags = 0;
- if (argc > 3) {
- printf("usage: %s [length] [filter]\n", argv[0]);
+ if (argc > 4) {
+ printf("usage: %s [filter] [length] [flags]\n", argv[0]);
return WERR_OK;
}
if (argc >= 2) {
- length = atoi(argv[1]);
+ filter = argv[1];
}
if (argc >= 3) {
- filter = argv[2];
+ length = atoi(argv[2]);
+ }
+
+ if (argc >= 4) {
+ flags = atoi(argv[3]);
}
buffer = talloc(mem_ctx, uint16_t);
diff --git a/source3/script/tests/selftest.sh b/source3/script/tests/selftest.sh
index a430d01a0e..60b71a5adc 100755
--- a/source3/script/tests/selftest.sh
+++ b/source3/script/tests/selftest.sh
@@ -268,6 +268,7 @@ EOF
##
cat >$NSS_WRAPPER_PASSWD<<EOF
+root:x:65533:65532:root gecos:$PREFIX_ABS:/bin/false
nobody:x:65534:65533:nobody gecos:$PREFIX_ABS:/bin/false
$USERNAME:x:$USERID:$GROUPID:$USERNAME gecos:$PREFIX_ABS:/bin/false
EOF
@@ -282,7 +283,7 @@ MAKE_TEST_BINARY="bin/smbpasswd"
export MAKE_TEST_BINARY
(echo $PASSWORD; echo $PASSWORD) | \
- bin/smbpasswd -c $CONFFILE -L -s -a $USERNAME >/dev/null || exit 1
+ bin/smbpasswd -c $SERVERCONFFILE -L -s -a $USERNAME >/dev/null || exit 1
echo "DONE";
diff --git a/source3/script/tests/test_posix_s3.sh b/source3/script/tests/test_posix_s3.sh
index 0885b139bb..b3a66e1db7 100755
--- a/source3/script/tests/test_posix_s3.sh
+++ b/source3/script/tests/test_posix_s3.sh
@@ -40,6 +40,7 @@ raw="$raw RAW-SAMBA3ROOTDIRFID"
rpc="RPC-AUTHCONTEXT RPC-BINDSAMBA3 RPC-SAMBA3-SRVSVC RPC-SAMBA3-SHARESEC"
rpc="$rpc RPC-SAMBA3-SPOOLSS RPC-SAMBA3-WKSSVC"
rpc="$rpc RPC-NETLOGSAMBA3 RPC-SAMBA3SESSIONKEY RPC-SAMBA3-GETUSERNAME"
+rpc="$rpc RPC-SVCCTL RPC-SPOOLSS-WIN RPC-NTSVCS"
# NOTE: to enable the UNIX-WHOAMI test, we need to change the default share
# config to allow guest access. I'm not sure whether this would break other
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c
index d39aab4f47..2d5713590d 100644
--- a/source3/smbd/ipc.c
+++ b/source3/smbd/ipc.c
@@ -754,6 +754,8 @@ void reply_trans(struct smb_request *req)
return;
}
+ talloc_steal(talloc_tos(), state);
+
handle_trans(conn, req, state);
SAFE_FREE(state->data);
@@ -852,6 +854,8 @@ void reply_transs(struct smb_request *req)
return;
}
+ talloc_steal(talloc_tos(), state);
+
handle_trans(conn, req, state);
DLIST_REMOVE(conn->pending_trans, state);
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c
index ce00397bbd..b937e8e07d 100644
--- a/source3/smbd/oplock.c
+++ b/source3/smbd/oplock.c
@@ -344,6 +344,54 @@ static void add_oplock_timeout_handler(files_struct *fsp)
}
}
+void break_level2_to_none_async(files_struct *fsp)
+{
+ char *break_msg;
+
+ if (fsp->oplock_type == NO_OPLOCK) {
+ /* We already got a "break to none" message and we've handled
+ * it. just ignore. */
+ DEBUG(3, ("process_oplock_async_level2_break_message: already "
+ "broken to none, ignoring.\n"));
+ return;
+ }
+
+ if (fsp->oplock_type == FAKE_LEVEL_II_OPLOCK) {
+ /* Don't tell the client, just downgrade. */
+ DEBUG(3, ("process_oplock_async_level2_break_message: "
+ "downgrading fake level 2 oplock.\n"));
+ remove_oplock(fsp);
+ return;
+ }
+
+ /* Ensure we're really at level2 state. */
+ SMB_ASSERT(fsp->oplock_type == LEVEL_II_OPLOCK);
+
+ DEBUG(10,("process_oplock_async_level2_break_message: sending break "
+ "to none message for fid %d, file %s\n", fsp->fnum,
+ fsp->fsp_name));
+
+ /* Now send a break to none message to our client. */
+ break_msg = new_break_smb_message(NULL, fsp, OPLOCKLEVEL_NONE);
+ if (break_msg == NULL) {
+ exit_server("Could not talloc break_msg\n");
+ }
+
+ show_msg(break_msg);
+ if (!srv_send_smb(smbd_server_fd(),
+ break_msg, false, 0,
+ IS_CONN_ENCRYPTED(fsp->conn),
+ NULL)) {
+ exit_server_cleanly("oplock_break: srv_send_smb failed.");
+ }
+
+ TALLOC_FREE(break_msg);
+
+ /* Async level2 request, don't send a reply, just remove the oplock. */
+ remove_oplock(fsp);
+
+}
+
/*******************************************************************
This handles the case of a write triggering a break to none
message on a level2 oplock.
@@ -360,7 +408,6 @@ void process_oplock_async_level2_break_message(struct messaging_context *msg_ctx
{
struct share_mode_entry msg;
files_struct *fsp;
- char *break_msg;
if (data->data == NULL) {
DEBUG(0, ("Got NULL buffer\n"));
@@ -375,8 +422,9 @@ void process_oplock_async_level2_break_message(struct messaging_context *msg_ctx
/* De-linearize incoming message. */
message_to_share_mode_entry(&msg, (char *)data->data);
- DEBUG(10, ("Got oplock async level 2 break message from pid %d: %s/%lu\n",
- (int)procid_to_pid(&src), file_id_string_tos(&msg.id), msg.share_file_id));
+ DEBUG(10, ("Got oplock async level 2 break message from pid %s: "
+ "%s/%lu\n", procid_str(debug_ctx(), &src),
+ file_id_string_tos(&msg.id), msg.share_file_id));
fsp = initial_break_processing(msg.id, msg.share_file_id);
@@ -388,52 +436,7 @@ void process_oplock_async_level2_break_message(struct messaging_context *msg_ctx
return;
}
- if (fsp->oplock_type == NO_OPLOCK) {
- /* We already got a "break to none" message and we've handled it.
- * just ignore. */
- DEBUG(3, ("process_oplock_async_level2_break_message: already broken to none, ignoring.\n"));
- return;
- }
-
- if (fsp->oplock_type == FAKE_LEVEL_II_OPLOCK) {
- /* Don't tell the client, just downgrade. */
- DEBUG(3, ("process_oplock_async_level2_break_message: downgrading fake level 2 oplock.\n"));
- remove_oplock(fsp);
- return;
- }
-
- /* Ensure we're really at level2 state. */
- SMB_ASSERT(fsp->oplock_type == LEVEL_II_OPLOCK);
-
- DEBUG(10,("process_oplock_async_level2_break_message: sending break to "
- "none message for fid %d, file %s\n",
- fsp->fnum,
- fsp->fsp_name));
-
- /* Now send a break to none message to our client. */
-
- break_msg = new_break_smb_message(NULL, fsp, OPLOCKLEVEL_NONE);
- if (break_msg == NULL) {
- exit_server("Could not talloc break_msg\n");
- }
-
- /* Need to wait before sending a break message if we sent ourselves this message. */
- if (procid_to_pid(&src) == sys_getpid()) {
- wait_before_sending_break();
- }
-
- show_msg(break_msg);
- if (!srv_send_smb(smbd_server_fd(),
- break_msg, false, 0,
- IS_CONN_ENCRYPTED(fsp->conn),
- NULL)) {
- exit_server_cleanly("oplock_break: srv_send_smb failed.");
- }
-
- TALLOC_FREE(break_msg);
-
- /* Async level2 request, don't send a reply, just remove the oplock. */
- remove_oplock(fsp);
+ break_level2_to_none_async(fsp);
}
/*******************************************************************
@@ -464,8 +467,9 @@ static void process_oplock_break_message(struct messaging_context *msg_ctx,
/* De-linearize incoming message. */
message_to_share_mode_entry(&msg, (char *)data->data);
- DEBUG(10, ("Got oplock break message from pid %d: %s/%lu\n",
- (int)procid_to_pid(&src), file_id_string_tos(&msg.id), msg.share_file_id));
+ DEBUG(10, ("Got oplock break message from pid %s: %s/%lu\n",
+ procid_str(debug_ctx(), &src), file_id_string_tos(&msg.id),
+ msg.share_file_id));
fsp = initial_break_processing(msg.id, msg.share_file_id);
@@ -518,7 +522,7 @@ static void process_oplock_break_message(struct messaging_context *msg_ctx,
}
/* Need to wait before sending a break message if we sent ourselves this message. */
- if (procid_to_pid(&src) == sys_getpid()) {
+ if (procid_is_me(&src)) {
wait_before_sending_break();
}
@@ -571,8 +575,8 @@ static void process_kernel_oplock_break(struct messaging_context *msg_ctx,
pull_file_id_24((char *)data->data, &id);
file_id = (unsigned long)IVAL(data->data, 24);
- DEBUG(10, ("Got kernel oplock break message from pid %d: %s/%u\n",
- (int)procid_to_pid(&src), file_id_string_tos(&id),
+ DEBUG(10, ("Got kernel oplock break message from pid %s: %s/%u\n",
+ procid_str(debug_ctx(), &src), file_id_string_tos(&id),
(unsigned int)file_id));
fsp = initial_break_processing(id, file_id);
@@ -667,9 +671,9 @@ static void process_oplock_break_response(struct messaging_context *msg_ctx,
/* De-linearize incoming message. */
message_to_share_mode_entry(&msg, (char *)data->data);
- DEBUG(10, ("Got oplock break response from pid %d: %s/%lu mid %u\n",
- (int)procid_to_pid(&src), file_id_string_tos(&msg.id), msg.share_file_id,
- (unsigned int)msg.op_mid));
+ DEBUG(10, ("Got oplock break response from pid %s: %s/%lu mid %u\n",
+ procid_str(debug_ctx(), &src), file_id_string_tos(&msg.id),
+ msg.share_file_id, (unsigned int)msg.op_mid));
/* Here's the hack from open.c, store the mid in the 'port' field */
schedule_deferred_open_smb_message(msg.op_mid);
@@ -696,8 +700,8 @@ static void process_open_retry_message(struct messaging_context *msg_ctx,
/* De-linearize incoming message. */
message_to_share_mode_entry(&msg, (char *)data->data);
- DEBUG(10, ("Got open retry msg from pid %d: %s mid %u\n",
- (int)procid_to_pid(&src), file_id_string_tos(&msg.id),
+ DEBUG(10, ("Got open retry msg from pid %s: %s mid %u\n",
+ procid_str(debug_ctx(), &src), file_id_string_tos(&msg.id),
(unsigned int)msg.op_mid));
schedule_deferred_open_smb_message(msg.op_mid);
@@ -788,13 +792,8 @@ static void contend_level2_oplocks_begin_default(files_struct *fsp,
*/
if (procid_is_me(&share_entry->pid)) {
- DATA_BLOB blob = data_blob_const(msg,
- MSG_SMB_SHARE_MODE_ENTRY_SIZE);
- process_oplock_async_level2_break_message(smbd_messaging_context(),
- NULL,
- MSG_SMB_ASYNC_LEVEL2_BREAK,
- share_entry->pid,
- &blob);
+ wait_before_sending_break();
+ break_level2_to_none_async(fsp);
} else {
messaging_send_buf(smbd_messaging_context(),
share_entry->pid,
diff --git a/source3/smbd/oplock_onefs.c b/source3/smbd/oplock_onefs.c
index d4f181fc47..b69d937915 100644
--- a/source3/smbd/oplock_onefs.c
+++ b/source3/smbd/oplock_onefs.c
@@ -550,87 +550,18 @@ static void onefs_semlock_write(int fd, enum level2_contention_type type,
* the cluster except the fsp's own level 2 oplock. This lack of
* self-contention is a limitation of the current OneFS kernel oplocks
* implementation. Luckily it is easy to contend our own level 2 oplock by
- * iterating the share mode entries and only breaking the oplock if the pid
- * matches our's.
+ * checking the the fsp's oplock_type. If it's a level2, send a break message
+ * to the client and remove the oplock.
*/
static void onefs_contend_level2_oplocks_begin(files_struct *fsp,
enum level2_contention_type type)
{
- int i;
- struct share_mode_lock *lck;
-
/* Take care of level 2 kernel contention. */
onefs_semlock_write(fsp->fh->fd, type, SEMLOCK_LOCK);
- /*
- * If this file is level II oplocked then we need
- * to grab the shared memory lock and inform all
- * other files with a level II lock that they need
- * to flush their read caches. We keep the lock over
- * the shared memory area whilst doing this.
- */
-
- if (!LEVEL_II_OPLOCK_TYPE(fsp->oplock_type))
- return;
-
- lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL,
- NULL);
- if (lck == NULL) {
- DEBUG(0,("onefs_contend_level2_oplocks_begin: failed to lock "
- "share mode entry for file %s.\n", fsp->fsp_name ));
- return;
- }
-
- DEBUG(10,("onefs_contend_level2_oplocks_begin: num_share_modes = %d\n",
- lck->num_share_modes ));
-
- for(i = 0; i < lck->num_share_modes; i++) {
- struct share_mode_entry *share_entry = &lck->share_modes[i];
- char msg[MSG_SMB_SHARE_MODE_ENTRY_SIZE];
-
- if (!is_valid_share_mode_entry(share_entry)) {
- continue;
- }
-
- DEBUG(10,("onefs_contend_level2_oplocks_begin: "
- "share_entry[%i]->op_type == %d\n",
- i, share_entry->op_type ));
-
- if (share_entry->op_type == NO_OPLOCK) {
- continue;
- }
-
- /* Paranoia .... */
- if (EXCLUSIVE_OPLOCK_TYPE(share_entry->op_type)) {
- DEBUG(0,("onefs_contend_level2_oplocks_begin: PANIC. "
- "share mode entry %d is an exlusive "
- "oplock !\n", i ));
- TALLOC_FREE(lck);
- abort();
- }
-
- share_mode_entry_to_message(msg, share_entry);
-
- /*
- * Only contend our own level 2 oplock. The other processes
- * will be get break events from the kernel.
- */
- if (procid_is_me(&share_entry->pid)) {
- DATA_BLOB blob = data_blob_const(msg,
- MSG_SMB_SHARE_MODE_ENTRY_SIZE);
- process_oplock_async_level2_break_message(
- smbd_messaging_context(),
- NULL,
- MSG_SMB_ASYNC_LEVEL2_BREAK,
- share_entry->pid,
- &blob);
- }
- }
-
- /* We let the message receivers handle removing the oplock state
- in the share mode lock db. */
-
- TALLOC_FREE(lck);
+ /* Take care of level 2 self contention. */
+ if (LEVEL_II_OPLOCK_TYPE(fsp->oplock_type))
+ break_level2_to_none_async(fsp);
}
/**
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index e8878a29ab..d524f21817 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -333,7 +333,6 @@ static void reply_spnego_kerberos(struct smb_request *req,
DEBUG(3,("Doesn't look like a valid principal\n"));
data_blob_free(&ap_rep);
data_blob_free(&session_key);
- SAFE_FREE(client);
talloc_destroy(mem_ctx);
reply_nterror(req,nt_status_squash(NT_STATUS_LOGON_FAILURE));
return;
@@ -355,7 +354,6 @@ static void reply_spnego_kerberos(struct smb_request *req,
if (!lp_allow_trusted_domains()) {
data_blob_free(&ap_rep);
data_blob_free(&session_key);
- SAFE_FREE(client);
talloc_destroy(mem_ctx);
reply_nterror(req, nt_status_squash(
NT_STATUS_LOGON_FAILURE));
@@ -445,7 +443,6 @@ static void reply_spnego_kerberos(struct smb_request *req,
if ( !pw ) {
DEBUG(1,("Username %s is invalid on this system\n",
user));
- SAFE_FREE(client);
data_blob_free(&ap_rep);
data_blob_free(&session_key);
TALLOC_FREE(mem_ctx);
@@ -471,7 +468,6 @@ static void reply_spnego_kerberos(struct smb_request *req,
if ( !NT_STATUS_IS_OK(ret) ) {
DEBUG(1,("make_server_info_info3 failed: %s!\n",
nt_errstr(ret)));
- SAFE_FREE(client);
data_blob_free(&ap_rep);
data_blob_free(&session_key);
TALLOC_FREE(mem_ctx);
@@ -485,7 +481,6 @@ static void reply_spnego_kerberos(struct smb_request *req,
if ( !NT_STATUS_IS_OK(ret) ) {
DEBUG(1,("make_server_info_pw failed: %s!\n",
nt_errstr(ret)));
- SAFE_FREE(client);
data_blob_free(&ap_rep);
data_blob_free(&session_key);
TALLOC_FREE(mem_ctx);
@@ -513,7 +508,6 @@ static void reply_spnego_kerberos(struct smb_request *req,
if ( !NT_STATUS_IS_OK(ret) ) {
DEBUG(10,("failed to create local token: %s\n",
nt_errstr(ret)));
- SAFE_FREE(client);
data_blob_free(&ap_rep);
data_blob_free(&session_key);
TALLOC_FREE( mem_ctx );
@@ -541,8 +535,6 @@ static void reply_spnego_kerberos(struct smb_request *req,
nullblob,
client);
- SAFE_FREE(client);
-
reply_outbuf(req, 4, 0);
SSVAL(req->outbuf,smb_uid,sess_vuid);
diff --git a/source3/torture/t_push_ucs2.c b/source3/torture/t_push_ucs2.c
index b9bf87ba54..2bd91dafde 100644
--- a/source3/torture/t_push_ucs2.c
+++ b/source3/torture/t_push_ucs2.c
@@ -14,16 +14,16 @@ static int check_push_ucs2(const char *orig)
int ret;
size_t converted_size;
- push_ucs2_allocate(&dest, orig, &converted_size);
- pull_ucs2_allocate(&orig2, dest, &converted_size);
+ push_ucs2_talloc(NULL, &dest, orig, &converted_size);
+ pull_ucs2_talloc(NULL, &orig2, dest, &converted_size);
ret = strcmp(orig, orig2);
if (ret) {
fprintf(stderr, "orig: %s\n", orig);
fprintf(stderr, "orig (UNIX -> UCS2 -> UNIX): %s\n", orig2);
}
- SAFE_FREE(dest);
- SAFE_FREE(orig2);
+ TALLOC_FREE(dest);
+ TALLOC_FREE(orig2);
return ret;
}
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index 1b9e394a68..804e772516 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -273,6 +273,10 @@ static bool torture_open_connection_share(struct cli_state **c,
if (use_kerberos)
flags |= CLI_FULL_CONNECTION_USE_KERBEROS;
+ if (use_oplocks)
+ flags |= CLI_FULL_CONNECTION_OPLOCKS;
+ if (use_level_II_oplocks)
+ flags |= CLI_FULL_CONNECTION_LEVEL_II_OPLOCKS;
status = cli_full_connection(c, myname,
hostname, NULL, port_to_use,
@@ -285,8 +289,6 @@ static bool torture_open_connection_share(struct cli_state **c,
return False;
}
- if (use_oplocks) (*c)->use_oplocks = True;
- if (use_level_II_oplocks) (*c)->use_level_II_oplocks = True;
(*c)->timeout = 120000; /* set a really long timeout (2 minutes) */
if (do_encrypt) {
@@ -5023,11 +5025,10 @@ static bool subst_test(const char *str, const char *user, const char *domain,
return result;
}
-static void chain1_open_completion(struct async_req *req)
+static void chain1_open_completion(struct tevent_req *req)
{
int fnum;
NTSTATUS status;
-
status = cli_open_recv(req, &fnum);
TALLOC_FREE(req);
@@ -5036,48 +5037,25 @@ static void chain1_open_completion(struct async_req *req)
NT_STATUS_IS_OK(status) ? fnum : -1);
}
-static void chain1_read_completion(struct async_req *req)
+static void chain1_write_completion(struct tevent_req *req)
{
- NTSTATUS status;
- ssize_t received;
- uint8_t *rcvbuf;
-
- status = cli_read_andx_recv(req, &received, &rcvbuf);
- if (!NT_STATUS_IS_OK(status)) {
- TALLOC_FREE(req);
- d_printf("cli_read_andx_recv returned %s\n",
- nt_errstr(status));
- return;
- }
-
- d_printf("got %d bytes: %.*s\n", (int)received, (int)received,
- (char *)rcvbuf);
- TALLOC_FREE(req);
-}
-
-static void chain1_write_completion(struct async_req *req)
-{
- NTSTATUS status;
size_t written;
-
+ NTSTATUS status;
status = cli_write_andx_recv(req, &written);
- if (!NT_STATUS_IS_OK(status)) {
- TALLOC_FREE(req);
- d_printf("cli_write_andx_recv returned %s\n",
- nt_errstr(status));
- return;
- }
-
- d_printf("wrote %d bytes\n", (int)written);
TALLOC_FREE(req);
+
+ d_printf("cli_write_andx_recv returned %s: %d\n",
+ nt_errstr(status),
+ NT_STATUS_IS_OK(status) ? (int)written : -1);
}
-static void chain1_close_completion(struct async_req *req)
+static void chain1_close_completion(struct tevent_req *req)
{
NTSTATUS status;
+ bool *done = (bool *)tevent_req_callback_data_void(req);
status = cli_close_recv(req);
- *((bool *)(req->async.priv)) = true;
+ *done = true;
TALLOC_FREE(req);
@@ -5088,9 +5066,9 @@ static bool run_chain1(int dummy)
{
struct cli_state *cli1;
struct event_context *evt = event_context_init(NULL);
- struct async_req *reqs[4];
+ struct tevent_req *reqs[3], *smbreqs[3];
bool done = false;
- const char *text = "hallo";
+ const char *str = "foobar";
printf("starting chain1 test\n");
if (!torture_open_connection(&cli1, 0)) {
@@ -5099,19 +5077,25 @@ static bool run_chain1(int dummy)
cli_sockopt(cli1, sockops);
- cli_chain_cork(cli1, evt, 0);
- reqs[0] = cli_open_send(talloc_tos(), evt, cli1, "\\test",
- O_CREAT|O_RDWR, 0);
- reqs[0]->async.fn = chain1_open_completion;
- reqs[1] = cli_write_andx_send(talloc_tos(), evt, cli1, 0, 0,
- (uint8_t *)text, 0, strlen(text));
- reqs[1]->async.fn = chain1_write_completion;
- reqs[2] = cli_read_andx_send(talloc_tos(), evt, cli1, 0, 1, 10);
- reqs[2]->async.fn = chain1_read_completion;
- reqs[3] = cli_close_send(talloc_tos(), evt, cli1, 0);
- reqs[3]->async.fn = chain1_close_completion;
- reqs[3]->async.priv = (void *)&done;
- cli_chain_uncork(cli1);
+ reqs[0] = cli_open_create(talloc_tos(), evt, cli1, "\\test",
+ O_CREAT|O_RDWR, 0, &smbreqs[0]);
+ if (reqs[0] == NULL) return false;
+ tevent_req_set_callback(reqs[0], chain1_open_completion, NULL);
+
+
+ reqs[1] = cli_write_andx_create(talloc_tos(), evt, cli1, 0, 0,
+ (uint8_t *)str, 0, strlen(str)+1,
+ smbreqs, 1, &smbreqs[1]);
+ if (reqs[1] == NULL) return false;
+ tevent_req_set_callback(reqs[1], chain1_write_completion, NULL);
+
+ reqs[2] = cli_close_create(talloc_tos(), evt, cli1, 0, &smbreqs[2]);
+ if (reqs[2] == NULL) return false;
+ tevent_req_set_callback(reqs[2], chain1_close_completion, &done);
+
+ if (!cli_smb_chain_send(smbreqs, ARRAY_SIZE(smbreqs))) {
+ return false;
+ }
while (!done) {
event_loop_once(evt);
@@ -5199,8 +5183,6 @@ static bool run_windows_write(int dummy)
static bool run_cli_echo(int dummy)
{
struct cli_state *cli;
- struct event_context *ev = event_context_init(NULL);
- struct async_req *req;
NTSTATUS status;
printf("starting cli_echo test\n");
@@ -5209,21 +5191,10 @@ static bool run_cli_echo(int dummy)
}
cli_sockopt(cli, sockops);
- req = cli_echo_send(ev, ev, cli, 5, data_blob_const("hello", 5));
- if (req == NULL) {
- d_printf("cli_echo_send failed\n");
- return false;
- }
-
- while (req->state < ASYNC_REQ_DONE) {
- event_loop_once(ev);
- }
+ status = cli_echo(cli, 5, data_blob_const("hello", 5));
- status = cli_echo_recv(req);
d_printf("cli_echo returned %s\n", nt_errstr(status));
- TALLOC_FREE(req);
-
torture_close_connection(cli);
return NT_STATUS_IS_OK(status);
}
diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c
index 2a66619438..8e927becbe 100644
--- a/source3/utils/net_ads.c
+++ b/source3/utils/net_ads.c
@@ -503,9 +503,9 @@ static int ads_user_add(struct net_context *c, int argc, const char **argv)
ads_msgfree(ads, res);
status=ads_find_user_acct(ads, &res, argv[0]);
if (ADS_ERR_OK(status)) {
- userdn = ads_get_dn(ads, res);
+ userdn = ads_get_dn(ads, talloc_tos(), res);
ads_del_dn(ads, userdn);
- ads_memfree(ads, userdn);
+ TALLOC_FREE(userdn);
}
done:
@@ -598,10 +598,10 @@ static int ads_user_delete(struct net_context *c, int argc, const char **argv)
ads_destroy(&ads);
return -1;
}
- userdn = ads_get_dn(ads, res);
+ userdn = ads_get_dn(ads, talloc_tos(), res);
ads_msgfree(ads, res);
rc = ads_del_dn(ads, userdn);
- ads_memfree(ads, userdn);
+ TALLOC_FREE(userdn);
if (ADS_ERR_OK(rc)) {
d_printf("User %s deleted\n", argv[0]);
ads_destroy(&ads);
@@ -757,10 +757,10 @@ static int ads_group_delete(struct net_context *c, int argc, const char **argv)
ads_destroy(&ads);
return -1;
}
- groupdn = ads_get_dn(ads, res);
+ groupdn = ads_get_dn(ads, talloc_tos(), res);
ads_msgfree(ads, res);
rc = ads_del_dn(ads, groupdn);
- ads_memfree(ads, groupdn);
+ TALLOC_FREE(groupdn);
if (ADS_ERR_OK(rc)) {
d_printf("Group %s deleted\n", argv[0]);
ads_destroy(&ads);
@@ -1740,10 +1740,10 @@ static int net_ads_printer_remove(struct net_context *c, int argc, const char **
return -1;
}
- prt_dn = ads_get_dn(ads, res);
+ prt_dn = ads_get_dn(ads, talloc_tos(), res);
ads_msgfree(ads, res);
rc = ads_del_dn(ads, prt_dn);
- ads_memfree(ads, prt_dn);
+ TALLOC_FREE(prt_dn);
if (!ADS_ERR_OK(rc)) {
d_fprintf(stderr, "ads_del_dn: %s\n", ads_errstr(rc));
diff --git a/source3/utils/net_ads_gpo.c b/source3/utils/net_ads_gpo.c
index 181cba221d..910c78d05a 100644
--- a/source3/utils/net_ads_gpo.c
+++ b/source3/utils/net_ads_gpo.c
@@ -257,7 +257,7 @@ static int net_ads_gpo_list_all(struct net_context *c, int argc, const char **ar
msg;
msg = ads_next_entry(ads, msg)) {
- if ((dn = ads_get_dn(ads, msg)) == NULL) {
+ if ((dn = ads_get_dn(ads, mem_ctx, msg)) == NULL) {
goto out;
}
@@ -266,18 +266,16 @@ static int net_ads_gpo_list_all(struct net_context *c, int argc, const char **ar
if (!ADS_ERR_OK(status)) {
d_printf("ads_parse_gpo failed: %s\n",
ads_errstr(status));
- ads_memfree(ads, dn);
goto out;
}
dump_gpo(ads, mem_ctx, &gpo, 0);
- ads_memfree(ads, dn);
}
out:
ads_msgfree(ads, res);
- talloc_destroy(mem_ctx);
+ TALLOC_FREE(mem_ctx);
ads_destroy(&ads);
return 0;
diff --git a/source3/utils/net_eventlog.c b/source3/utils/net_eventlog.c
index 197a7cd330..b86be6d48b 100644
--- a/source3/utils/net_eventlog.c
+++ b/source3/utils/net_eventlog.c
@@ -182,13 +182,9 @@ static int net_eventlog_export(struct net_context *c, int argc,
int ret = -1;
NTSTATUS status;
TALLOC_CTX *ctx = talloc_stackframe();
- enum ndr_err_code ndr_err;
DATA_BLOB blob;
uint32_t num_records = 0;
- struct EVENTLOG_EVT_FILE evt;
ELOG_TDB *etdb = NULL;
- uint32_t count = 1;
- size_t endoffset = 0;
if (argc < 2 || c->display_usage) {
d_fprintf(stderr, "usage: net eventlog export <file> <eventlog>\n");
@@ -201,54 +197,8 @@ static int net_eventlog_export(struct net_context *c, int argc,
goto done;
}
- ZERO_STRUCT(evt);
-
- while (1) {
-
- struct eventlog_Record_tdb *r;
- struct EVENTLOGRECORD e;
-
- r = evlog_pull_record_tdb(ctx, etdb->tdb, count);
- if (!r) {
- break;
- }
-
- status = evlog_tdb_entry_to_evt_entry(ctx, r, &e);
- if (!NT_STATUS_IS_OK(status)) {
- goto done;
- }
-
- endoffset += ndr_size_EVENTLOGRECORD(&e, NULL, 0);
-
- ADD_TO_ARRAY(ctx, struct EVENTLOGRECORD, e, &evt.records, &num_records);
- count++;
- }
-
- evt.hdr.StartOffset = 0x30;
- evt.hdr.EndOffset = evt.hdr.StartOffset + endoffset;
- evt.hdr.CurrentRecordNumber = count;
- evt.hdr.OldestRecordNumber = 1;
- evt.hdr.MaxSize = tdb_fetch_int32(etdb->tdb, EVT_MAXSIZE);
- evt.hdr.Flags = 0;
- evt.hdr.Retention = tdb_fetch_int32(etdb->tdb, EVT_RETENTION);
-
- if (DEBUGLEVEL >= 10) {
- NDR_PRINT_DEBUG(EVENTLOGHEADER, &evt.hdr);
- }
-
- evt.eof.BeginRecord = 0x30;
- evt.eof.EndRecord = evt.hdr.StartOffset + endoffset;
- evt.eof.CurrentRecordNumber = evt.hdr.CurrentRecordNumber;
- evt.eof.OldestRecordNumber = evt.hdr.OldestRecordNumber;
-
- if (DEBUGLEVEL >= 10) {
- NDR_PRINT_DEBUG(EVENTLOGEOF, &evt.eof);
- }
-
- ndr_err = ndr_push_struct_blob(&blob, ctx, NULL, &evt,
- (ndr_push_flags_fn_t)ndr_push_EVENTLOG_EVT_FILE);
- if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
- d_fprintf(stderr, "evt push failed: %s\n", ndr_errstr(ndr_err));
+ status = evlog_convert_tdb_to_evt(ctx, etdb, &blob, &num_records);
+ if (!NT_STATUS_IS_OK(status)) {
goto done;
}
diff --git a/source3/utils/net_rpc_service.c b/source3/utils/net_rpc_service.c
index bcb1a00dab..57a721e55b 100644
--- a/source3/utils/net_rpc_service.c
+++ b/source3/utils/net_rpc_service.c
@@ -631,6 +631,161 @@ done:
/********************************************************************
********************************************************************/
+static NTSTATUS rpc_service_delete_internal(struct net_context *c,
+ const DOM_SID *domain_sid,
+ const char *domain_name,
+ struct cli_state *cli,
+ struct rpc_pipe_client *pipe_hnd,
+ TALLOC_CTX *mem_ctx,
+ int argc,
+ const char **argv)
+{
+ struct policy_handle hSCM, hService;
+ WERROR result = WERR_GENERAL_FAILURE;
+ NTSTATUS status;
+
+ if (argc != 1 ) {
+ d_printf("Usage: net rpc service delete <service>\n");
+ return NT_STATUS_OK;
+ }
+
+ /* Open the Service Control Manager */
+ status = rpccli_svcctl_OpenSCManagerW(pipe_hnd, mem_ctx,
+ pipe_hnd->srv_name_slash,
+ NULL,
+ SC_RIGHT_MGR_ENUMERATE_SERVICE,
+ &hSCM,
+ &result);
+ if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(result)) {
+ d_fprintf(stderr, "Failed to open Service Control Manager. [%s]\n",
+ win_errstr(result));
+ return werror_to_ntstatus(result);
+ }
+
+ /* Open the Service */
+
+ status = rpccli_svcctl_OpenServiceW(pipe_hnd, mem_ctx,
+ &hSCM,
+ argv[0],
+ SERVICE_ALL_ACCESS,
+ &hService,
+ &result);
+
+ if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(result) ) {
+ d_fprintf(stderr, "Failed to open service. [%s]\n",
+ win_errstr(result));
+ goto done;
+ }
+
+ /* Delete the Service */
+
+ status = rpccli_svcctl_DeleteService(pipe_hnd, mem_ctx,
+ &hService,
+ &result);
+
+ if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(result) ) {
+ d_fprintf(stderr, "Delete service request failed. [%s]\n",
+ win_errstr(result));
+ goto done;
+ }
+
+ d_printf("Successfully deleted Service: %s\n", argv[0]);
+
+ done:
+ if (is_valid_policy_hnd(&hService)) {
+ rpccli_svcctl_CloseServiceHandle(pipe_hnd, mem_ctx, &hService, NULL);
+ }
+ if (is_valid_policy_hnd(&hSCM)) {
+ rpccli_svcctl_CloseServiceHandle(pipe_hnd, mem_ctx, &hSCM, NULL);
+ }
+
+ return werror_to_ntstatus(result);
+}
+
+/********************************************************************
+********************************************************************/
+
+static NTSTATUS rpc_service_create_internal(struct net_context *c,
+ const DOM_SID *domain_sid,
+ const char *domain_name,
+ struct cli_state *cli,
+ struct rpc_pipe_client *pipe_hnd,
+ TALLOC_CTX *mem_ctx,
+ int argc,
+ const char **argv)
+{
+ struct policy_handle hSCM, hService;
+ WERROR result = WERR_GENERAL_FAILURE;
+ NTSTATUS status;
+ const char *ServiceName;
+ const char *DisplayName;
+ const char *binary_path;
+
+ if (argc != 3) {
+ d_printf("Usage: net rpc service create <service> <displayname> <binarypath>\n");
+ return NT_STATUS_OK;
+ }
+
+ /* Open the Service Control Manager */
+ status = rpccli_svcctl_OpenSCManagerW(pipe_hnd, mem_ctx,
+ pipe_hnd->srv_name_slash,
+ NULL,
+ SC_RIGHT_MGR_CREATE_SERVICE,
+ &hSCM,
+ &result);
+ if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(result)) {
+ d_fprintf(stderr, "Failed to open Service Control Manager. [%s]\n",
+ win_errstr(result));
+ return werror_to_ntstatus(result);
+ }
+
+ /* Create the service */
+
+ ServiceName = argv[0];
+ DisplayName = argv[1];
+ binary_path = argv[2];
+
+ status = rpccli_svcctl_CreateServiceW(pipe_hnd, mem_ctx,
+ &hSCM,
+ ServiceName,
+ DisplayName,
+ SERVICE_ALL_ACCESS,
+ SERVICE_TYPE_WIN32_OWN_PROCESS,
+ SVCCTL_DEMAND_START,
+ SVCCTL_SVC_ERROR_NORMAL,
+ binary_path,
+ NULL, /* LoadOrderGroupKey */
+ NULL, /* TagId */
+ NULL, /* dependencies */
+ 0, /* dependencies_size */
+ NULL, /* service_start_name */
+ NULL, /* password */
+ 0, /* password_size */
+ &hService,
+ &result);
+
+ if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(result) ) {
+ d_fprintf(stderr, "Create service request failed. [%s]\n",
+ win_errstr(result));
+ goto done;
+ }
+
+ d_printf("Successfully created Service: %s\n", argv[0]);
+
+ done:
+ if (is_valid_policy_hnd(&hService)) {
+ rpccli_svcctl_CloseServiceHandle(pipe_hnd, mem_ctx, &hService, NULL);
+ }
+ if (is_valid_policy_hnd(&hSCM)) {
+ rpccli_svcctl_CloseServiceHandle(pipe_hnd, mem_ctx, &hSCM, NULL);
+ }
+
+ return werror_to_ntstatus(result);
+}
+
+/********************************************************************
+********************************************************************/
+
static int rpc_service_list(struct net_context *c, int argc, const char **argv )
{
if (c->display_usage) {
@@ -727,6 +882,38 @@ static int rpc_service_status(struct net_context *c, int argc, const char **argv
/********************************************************************
********************************************************************/
+static int rpc_service_delete(struct net_context *c, int argc, const char **argv)
+{
+ if (c->display_usage) {
+ d_printf("Usage:\n"
+ "net rpc service delete <service>\n"
+ " Delete a Win32 service\n");
+ return 0;
+ }
+
+ return run_rpc_command(c, NULL, &ndr_table_svcctl.syntax_id, 0,
+ rpc_service_delete_internal, argc, argv);
+}
+
+/********************************************************************
+********************************************************************/
+
+static int rpc_service_create(struct net_context *c, int argc, const char **argv)
+{
+ if (c->display_usage) {
+ d_printf("Usage:\n"
+ "net rpc service create <service>\n"
+ " Create a Win32 service\n");
+ return 0;
+ }
+
+ return run_rpc_command(c, NULL, &ndr_table_svcctl.syntax_id, 0,
+ rpc_service_create_internal, argc, argv);
+}
+
+/********************************************************************
+********************************************************************/
+
int net_rpc_service(struct net_context *c, int argc, const char **argv)
{
struct functable func[] = {
@@ -778,6 +965,23 @@ int net_rpc_service(struct net_context *c, int argc, const char **argv)
"net rpc service status\n"
" View current status of a service"
},
+ {
+ "delete",
+ rpc_service_delete,
+ NET_TRANSPORT_RPC,
+ "Delete a service",
+ "net rpc service delete\n"
+ " Deletes a service"
+ },
+ {
+ "create",
+ rpc_service_create,
+ NET_TRANSPORT_RPC,
+ "Create a service",
+ "net rpc service create\n"
+ " Creates a service"
+ },
+
{NULL, NULL, 0, NULL, NULL}
};
diff --git a/source3/utils/ntlm_auth.c b/source3/utils/ntlm_auth.c
index 9bc0c60b7b..7899bd0d07 100644
--- a/source3/utils/ntlm_auth.c
+++ b/source3/utils/ntlm_auth.c
@@ -1251,8 +1251,6 @@ static void manage_gss_spnego_request(struct ntlm_auth_state *state,
&principal, &pac_data, &ap_rep,
&session_key, True);
- talloc_destroy(mem_ctx);
-
/* Now in "principal" we have the name we are
authenticated as. */
@@ -1274,9 +1272,9 @@ static void manage_gss_spnego_request(struct ntlm_auth_state *state,
user = SMB_STRDUP(principal);
data_blob_free(&ap_rep);
-
- SAFE_FREE(principal);
}
+
+ TALLOC_FREE(mem_ctx);
}
#endif
diff --git a/source3/utils/pdbedit.c b/source3/utils/pdbedit.c
index a5bc0c9bd4..328b2cb1f4 100644
--- a/source3/utils/pdbedit.c
+++ b/source3/utils/pdbedit.c
@@ -847,13 +847,6 @@ int main (int argc, char **argv)
POPT_TABLEEND
};
- /* we shouldn't have silly checks like this */
- if (getuid() != 0) {
- d_fprintf(stderr, "You must be root to use pdbedit\n");
- TALLOC_FREE(frame);
- return -1;
- }
-
bin = bout = bdef = NULL;
load_case_tables();
diff --git a/source3/winbindd/idmap_adex/gc_util.c b/source3/winbindd/idmap_adex/gc_util.c
index 6dc02336d5..58e641b630 100644
--- a/source3/winbindd/idmap_adex/gc_util.c
+++ b/source3/winbindd/idmap_adex/gc_util.c
@@ -592,11 +592,11 @@ done:
while (e) {
struct winbindd_tdc_domain *domain_rec;
- dn = ads_get_dn(ads, e);
+ dn = ads_get_dn(ads, frame, e);
BAIL_ON_PTR_ERROR(dn, nt_status);
dns_domain = cell_dn_to_dns(dn);
- SAFE_FREE(dn);
+ TALLOC_FREE(dn);
BAIL_ON_PTR_ERROR(dns_domain, nt_status);
domain_rec = wcache_tdc_fetch_domain(frame, dns_domain);
@@ -666,13 +666,13 @@ static NTSTATUS get_object_account_name(ADS_STRUCT *ads,
/* get the name and domain */
- dn = ads_get_dn(ads, msg);
+ dn = ads_get_dn(ads, frame, msg);
BAIL_ON_PTR_ERROR(dn, nt_status);
DEBUG(10,("get_object_account_name: dn = \"%s\"\n", dn));
dns_domain = cell_dn_to_dns(dn);
- SAFE_FREE(dn);
+ TALLOC_FREE(dn);
BAIL_ON_PTR_ERROR(dns_domain, nt_status);
domain_rec = wcache_tdc_fetch_domain(frame, dns_domain);
diff --git a/source3/winbindd/idmap_adex/likewise_cell.c b/source3/winbindd/idmap_adex/likewise_cell.c
index 7723b3e015..d666d8c01a 100644
--- a/source3/winbindd/idmap_adex/likewise_cell.c
+++ b/source3/winbindd/idmap_adex/likewise_cell.c
@@ -400,10 +400,10 @@ done:
e!=NULL;
e = ads_next_entry(c->conn, e))
{
- char *dn = ads_get_dn(c->conn, e);
+ char *dn = ads_get_dn(c->conn, talloc_tos(), e);
DEBUGADD(10,(" dn: %s\n", dn ? dn : "<NULL>"));
- SAFE_FREE(dn);
+ TALLOC_FREE(dn);
}
}
diff --git a/source3/winbindd/idmap_adex/provider_unified.c b/source3/winbindd/idmap_adex/provider_unified.c
index f18534797e..f9d73f5f95 100644
--- a/source3/winbindd/idmap_adex/provider_unified.c
+++ b/source3/winbindd/idmap_adex/provider_unified.c
@@ -368,7 +368,7 @@ static NTSTATUS check_result_unique_scoped(ADS_STRUCT **ads_list,
LDAPMessage *e = ads_first_entry(ads_list[i], msg_list[i]);
while (e) {
- entry_dn = ads_get_dn(ads_list[i], e);
+ entry_dn = ads_get_dn(ads_list[i], talloc_tos(), e);
BAIL_ON_PTR_ERROR(entry_dn, nt_status);
if (check_forest_scope(entry_dn)) {
@@ -389,7 +389,7 @@ static NTSTATUS check_result_unique_scoped(ADS_STRUCT **ads_list,
}
e = ads_next_entry(ads_list[i], e);
- SAFE_FREE(entry_dn);
+ TALLOC_FREE(entry_dn);
}
}
@@ -439,7 +439,7 @@ done:
}
talloc_destroy(frame);
- SAFE_FREE(entry_dn);
+ TALLOC_FREE(entry_dn);
return nt_status;
}
diff --git a/source3/winbindd/winbindd_ads.c b/source3/winbindd/winbindd_ads.c
index a76faa7a25..dcf5623d29 100644
--- a/source3/winbindd/winbindd_ads.c
+++ b/source3/winbindd/winbindd_ads.c
@@ -865,7 +865,7 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain,
goto done;
}
- user_dn = ads_get_dn(ads, msg);
+ user_dn = ads_get_dn(ads, mem_ctx, msg);
if (user_dn == NULL) {
status = NT_STATUS_NO_MEMORY;
goto done;
@@ -942,7 +942,7 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain,
DEBUG(3,("ads lookup_usergroups (tokenGroups) succeeded for sid=%s\n",
sid_string_dbg(sid)));
done:
- ads_memfree(ads, user_dn);
+ TALLOC_FREE(user_dn);
ads_msgfree(ads, msg);
return status;
}
diff --git a/source4/dsdb/config.mk b/source4/dsdb/config.mk
index 2ca4e4ca6d..8d1647953f 100644
--- a/source4/dsdb/config.mk
+++ b/source4/dsdb/config.mk
@@ -37,7 +37,9 @@ SAMDB_SCHEMA_OBJ_FILES = $(addprefix $(dsdbsrcdir)/schema/, \
schema_set.o \
schema_query.o \
schema_syntax.o \
- schema_description.o)
+ schema_description.o \
+ schema_convert_to_ol.o \
+ schema_inferiors.o)
$(eval $(call proto_header_template,$(dsdbsrcdir)/schema/proto.h,$(SAMDB_SCHEMA_OBJ_FILES:.o=.c)))
# PUBLIC_HEADERS += dsdb/schema/schema.h
diff --git a/source4/dsdb/samdb/ldb_modules/schema_fsmo.c b/source4/dsdb/samdb/ldb_modules/schema_fsmo.c
index edd451255e..b1d8711cfa 100644
--- a/source4/dsdb/samdb/ldb_modules/schema_fsmo.c
+++ b/source4/dsdb/samdb/ldb_modules/schema_fsmo.c
@@ -39,30 +39,43 @@ static int generate_extendedAttributeInfo(struct ldb_context *ldb, struct ldb_me
const struct dsdb_schema *schema);
static int generate_extendedClassInfo(struct ldb_context *ldb, struct ldb_message *msg,
const struct dsdb_schema *schema);
+static int generate_possibleInferiors(struct ldb_context *ldb, struct ldb_message *msg,
+ const struct dsdb_schema *schema);
static const struct {
const char *attr;
int (*fn)(struct ldb_context *, struct ldb_message *, const struct dsdb_schema *);
+ bool aggregate;
} generated_attrs[] = {
{
.attr = "objectClasses",
- .fn = generate_objectClasses
+ .fn = generate_objectClasses,
+ .aggregate = true,
},
{
.attr = "attributeTypes",
- .fn = generate_attributeTypes
+ .fn = generate_attributeTypes,
+ .aggregate = true,
},
{
.attr = "dITContentRules",
- .fn = generate_dITContentRules
+ .fn = generate_dITContentRules,
+ .aggregate = true,
},
{
.attr = "extendedAttributeInfo",
- .fn = generate_extendedAttributeInfo
+ .fn = generate_extendedAttributeInfo,
+ .aggregate = true,
},
{
.attr = "extendedClassInfo",
- .fn = generate_extendedClassInfo
+ .fn = generate_extendedClassInfo,
+ .aggregate = true,
+ },
+ {
+ .attr = "possibleInferiors",
+ .fn = generate_possibleInferiors,
+ .aggregate = false,
}
};
@@ -385,6 +398,46 @@ static int generate_extendedClassInfo(struct ldb_context *ldb,
return LDB_SUCCESS;
}
+
+static int generate_possibleInferiors(struct ldb_context *ldb, struct ldb_message *msg,
+ const struct dsdb_schema *schema)
+{
+ struct ldb_dn *dn = msg->dn;
+ int ret, i;
+ const char *first_component_name = ldb_dn_get_component_name(dn, 0);
+ const struct ldb_val *first_component_val;
+ const char *class_name;
+ const struct dsdb_class *schema_class;
+ const char **possibleInferiors;
+
+ if (strcasecmp(first_component_name, "cn") != 0) {
+ return LDB_SUCCESS;
+ }
+
+ first_component_val = ldb_dn_get_component_val(dn, 0);
+ class_name = (const char *)first_component_val->data;
+
+ schema_class = dsdb_class_by_cn(schema, class_name);
+ if (schema_class == NULL) {
+ return LDB_SUCCESS;
+ }
+
+ possibleInferiors = schema_class->possibleInferiors;
+ if (possibleInferiors == NULL) {
+ return LDB_SUCCESS;
+ }
+
+ for (i=0;possibleInferiors[i];i++) {
+ ret = ldb_msg_add_string(msg, "possibleInferiors", possibleInferiors[i]);
+ if (ret != LDB_SUCCESS) {
+ return ret;
+ }
+ }
+
+ return LDB_SUCCESS;
+}
+
+
/* Add objectClasses, attributeTypes and dITContentRules from the
schema object (they are not stored in the database)
*/
@@ -412,19 +465,29 @@ static int schema_fsmo_search_callback(struct ldb_request *req, struct ldb_reply
switch (ares->type) {
case LDB_REPLY_ENTRY:
- if (ldb_dn_compare(ares->message->dn, mc->aggregate_dn) != 0) {
- return ldb_module_send_entry(ac->req, ares->message, ares->controls);
- }
-
- for (i=0; i < ARRAY_SIZE(generated_attrs); i++) {
- if (ldb_attr_in_list(ac->req->op.search.attrs, generated_attrs[i].attr)) {
- ret = generated_attrs[i].fn(ldb, ares->message, ac->schema);
- if (ret != LDB_SUCCESS) {
- return ret;
+ if (ldb_dn_compare(ares->message->dn, mc->aggregate_dn) == 0) {
+ for (i=0; i < ARRAY_SIZE(generated_attrs); i++) {
+ if (generated_attrs[i].aggregate &&
+ ldb_attr_in_list(ac->req->op.search.attrs, generated_attrs[i].attr)) {
+ ret = generated_attrs[i].fn(ldb, ares->message, ac->schema);
+ if (ret != LDB_SUCCESS) {
+ return ret;
+ }
+ }
+ }
+ } else {
+ for (i=0; i < ARRAY_SIZE(generated_attrs); i++) {
+ if (!generated_attrs[i].aggregate &&
+ ldb_attr_in_list(ac->req->op.search.attrs, generated_attrs[i].attr)) {
+ ret = generated_attrs[i].fn(ldb, ares->message, ac->schema);
+ if (ret != LDB_SUCCESS) {
+ return ret;
+ }
}
}
}
+
return ldb_module_send_entry(ac->req, ares->message, ares->controls);
case LDB_REPLY_REFERRAL:
diff --git a/source4/dsdb/samdb/ldb_modules/tests/possibleinferiors.py b/source4/dsdb/samdb/ldb_modules/tests/possibleinferiors.py
index aab93e59a3..67918d64b9 100755
--- a/source4/dsdb/samdb/ldb_modules/tests/possibleinferiors.py
+++ b/source4/dsdb/samdb/ldb_modules/tests/possibleinferiors.py
@@ -222,8 +222,8 @@ def test_class(db, classinfo, oc):
poss2 = possible_inferiors_constructed(db, classinfo, oc)
if poss1 != poss2:
print "Returned incorrect list for objectclass %s" % oc
- print poss1
- print poss2
+ print "search: %s" % poss1
+ print "constructed: %s" % poss2
for i in range(0,min(len(poss1),len(poss2))):
print "%30s %30s" % (poss1[i], poss2[i])
exit(1)
diff --git a/source4/dsdb/schema/schema.h b/source4/dsdb/schema/schema.h
index f7d59a7c39..e15f65a0a1 100644
--- a/source4/dsdb/schema/schema.h
+++ b/source4/dsdb/schema/schema.h
@@ -91,6 +91,7 @@ struct dsdb_attribute {
/* internal stuff */
const struct dsdb_syntax *syntax;
+ const struct ldb_schema_attribute *ldb_schema_attribute;
};
struct dsdb_class {
@@ -131,6 +132,11 @@ struct dsdb_class {
bool defaultHidingValue;
bool isDefunct;
bool systemOnly;
+
+ char **supclasses;
+ char **subclasses;
+ char **subclasses_direct;
+ char **posssuperiors;
};
struct dsdb_schema_oid_prefix {
@@ -156,6 +162,21 @@ struct dsdb_schema {
struct dsdb_attribute *attributes;
struct dsdb_class *classes;
+ /* lists of classes sorted by various attributes, for faster
+ access */
+ uint32_t num_classes;
+ struct dsdb_class **classes_by_lDAPDisplayName;
+ struct dsdb_class **classes_by_governsID_id;
+ struct dsdb_class **classes_by_governsID_oid;
+ struct dsdb_class **classes_by_cn;
+
+ /* lists of attributes sorted by various fields */
+ uint32_t num_attributes;
+ struct dsdb_attribute **attributes_by_lDAPDisplayName;
+ struct dsdb_attribute **attributes_by_attributeID_id;
+ struct dsdb_attribute **attributes_by_attributeID_oid;
+ struct dsdb_attribute **attributes_by_linkID;
+
struct {
bool we_are_master;
struct ldb_dn *master_dn;
diff --git a/source4/utils/ad2oLschema.c b/source4/dsdb/schema/schema_convert_to_ol.c
index 236b1fa350..ebcb7ade59 100644
--- a/source4/utils/ad2oLschema.c
+++ b/source4/dsdb/schema/schema_convert_to_ol.c
@@ -1,151 +1,208 @@
/*
- ldb database library
+ schema conversion routines
Copyright (C) Andrew Bartlett 2006-2008
-
- ** NOTE! The following LGPL license applies to the ldb
- ** library. This does NOT imply that all of Samba is released
- ** under the LGPL
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 3 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
+ This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
*/
-/*
- * Name: ldb
- *
- * Component: ad2oLschema
- *
- * Description: utility to convert an AD schema into the format required by OpenLDAP
- *
- * Author: Andrew Bartlett
- */
-
#include "includes.h"
#include "ldb.h"
-#include "system/locale.h"
-#include "lib/ldb/tools/cmdline.h"
-#include "param/param.h"
-#include "lib/cmdline/popt_common.h"
#include "dsdb/samdb/samdb.h"
+#include "system/locale.h"
+
+#define SEPERATOR "\n "
-struct schema_conv {
- int count;
- int skipped;
- int failures;
+struct attr_map {
+ char *old_attr;
+ char *new_attr;
};
-
-static void usage(void)
-{
- printf("Usage: ad2oLschema <options>\n");
- printf("\nConvert AD-like LDIF to OpenLDAP schema format\n\n");
- printf("Options:\n");
- printf(" -I inputfile inputfile of mapped OIDs and skipped attributes/ObjectClasses");
- printf(" -H url LDB or LDAP server to read schmea from\n");
- printf(" -O outputfile outputfile otherwise STDOUT\n");
- printf(" -o options pass options like modules to activate\n");
- printf(" e.g: -o modules:timestamps\n");
- printf("\n");
- printf("Converts records from an AD-like LDIF schema into an openLdap formatted schema\n\n");
- exit(1);
-}
+struct oid_map {
+ char *old_oid;
+ char *new_oid;
+};
-static struct ldb_dn *find_schema_dn(struct ldb_context *ldb, TALLOC_CTX *mem_ctx)
+static char *print_schema_recursive(char *append_to_string, struct dsdb_schema *schema, const char *print_class,
+ enum dsdb_schema_convert_target target,
+ const char **attrs_skip, const struct attr_map *attr_map, const struct oid_map *oid_map)
{
- const char *rootdse_attrs[] = {"schemaNamingContext", NULL};
- struct ldb_dn *schemadn;
- struct ldb_dn *basedn = ldb_dn_new(mem_ctx, ldb, NULL);
- struct ldb_result *rootdse_res;
- struct ldb_result *schema_res;
- int ldb_ret;
-
- if (!basedn) {
+ char *out = append_to_string;
+ const struct dsdb_class *objectclass;
+ objectclass = dsdb_class_by_lDAPDisplayName(schema, print_class);
+ if (!objectclass) {
+ DEBUG(0, ("Cannot find class %s in schema\n", print_class));
return NULL;
}
-
- /* Search for rootdse */
- ldb_ret = ldb_search(ldb, mem_ctx, &rootdse_res,
- basedn, LDB_SCOPE_BASE, rootdse_attrs, NULL);
- if (ldb_ret != LDB_SUCCESS) {
- ldb_ret = ldb_search(ldb, mem_ctx, &schema_res, basedn, LDB_SCOPE_SUBTREE,
- NULL, "(&(objectClass=dMD)(cn=Schema))");
- if (ldb_ret) {
- printf("cn=Schema Search failed: %s\n", ldb_errstring(ldb));
+
+ do {
+ TALLOC_CTX *mem_ctx = talloc_new(append_to_string);
+ const char *name = objectclass->lDAPDisplayName;
+ const char *oid = objectclass->governsID_oid;
+ const char *subClassOf = objectclass->subClassOf;
+ int objectClassCategory = objectclass->objectClassCategory;
+ const char **must;
+ const char **may;
+ char *schema_entry = NULL;
+ const char *objectclass_name_as_list[] = {
+ objectclass->lDAPDisplayName,
+ NULL
+ };
+ int j;
+ int attr_idx;
+
+ if (!mem_ctx) {
+ DEBUG(0, ("Failed to create new talloc context\n"));
return NULL;
}
- if (schema_res->count != 1) {
- talloc_free(schema_res);
- printf("Failed to find rootDSE");
- return NULL;
+ /* We have been asked to skip some attributes/objectClasses */
+ if (attrs_skip && str_list_check_ci(attrs_skip, name)) {
+ continue;
+ }
+
+ /* We might have been asked to remap this oid, due to a conflict */
+ for (j=0; oid_map && oid_map[j].old_oid; j++) {
+ if (strcasecmp(oid, oid_map[j].old_oid) == 0) {
+ oid = oid_map[j].new_oid;
+ break;
+ }
}
- schemadn = talloc_steal(mem_ctx, schema_res->msgs[0]->dn);
- talloc_free(schema_res);
- return schemadn;
- }
+ /* We might have been asked to remap this name, due to a conflict */
+ for (j=0; name && attr_map && attr_map[j].old_attr; j++) {
+ if (strcasecmp(name, attr_map[j].old_attr) == 0) {
+ name = attr_map[j].new_attr;
+ break;
+ }
+ }
+
+ may = dsdb_full_attribute_list(mem_ctx, schema, objectclass_name_as_list, DSDB_SCHEMA_ALL_MAY);
+
+ for (j=0; may && may[j]; j++) {
+ /* We might have been asked to remap this name, due to a conflict */
+ for (attr_idx=0; attr_map && attr_map[attr_idx].old_attr; attr_idx++) {
+ if (strcasecmp(may[j], attr_map[attr_idx].old_attr) == 0) {
+ may[j] = attr_map[attr_idx].new_attr;
+ break;
+ }
+ }
+ }
+
+ must = dsdb_full_attribute_list(mem_ctx, schema, objectclass_name_as_list, DSDB_SCHEMA_ALL_MUST);
+
+ for (j=0; must && must[j]; j++) {
+ /* We might have been asked to remap this name, due to a conflict */
+ for (attr_idx=0; attr_map && attr_map[attr_idx].old_attr; attr_idx++) {
+ if (strcasecmp(must[j], attr_map[attr_idx].old_attr) == 0) {
+ must[j] = attr_map[attr_idx].new_attr;
+ break;
+ }
+ }
+ }
+
+ schema_entry = schema_class_description(mem_ctx, target,
+ SEPERATOR,
+ oid,
+ name,
+ NULL,
+ subClassOf,
+ objectClassCategory,
+ must,
+ may,
+ NULL);
+ if (schema_entry == NULL) {
+ DEBUG(0, ("failed to generate schema description for %s\n", name));
+ return NULL;
+ }
+
+ switch (target) {
+ case TARGET_OPENLDAP:
+ out = talloc_asprintf_append(out, "objectclass %s\n\n", schema_entry);
+ break;
+ case TARGET_FEDORA_DS:
+ out = talloc_asprintf_append(out, "objectClasses: %s\n", schema_entry);
+ break;
+ }
+ talloc_free(mem_ctx);
+ } while (0);
+
- if (rootdse_res->count != 1) {
- printf("Failed to find rootDSE");
- talloc_free(rootdse_res);
- return NULL;
+ for (objectclass=schema->classes; objectclass; objectclass = objectclass->next) {
+ if (ldb_attr_cmp(objectclass->subClassOf, print_class) == 0
+ && ldb_attr_cmp(objectclass->lDAPDisplayName, print_class) != 0) {
+ out = print_schema_recursive(out, schema, objectclass->lDAPDisplayName,
+ target, attrs_skip, attr_map, oid_map);
+ }
}
-
- /* Locate schema */
- schemadn = ldb_msg_find_attr_as_dn(ldb, mem_ctx, rootdse_res->msgs[0], "schemaNamingContext");
- talloc_free(rootdse_res);
+ return out;
+}
- if (!schemadn) {
- return NULL;
- }
+/* Routine to linearise our internal schema into the format that
+ OpenLDAP and Fedora DS use for their backend.
- return schemadn;
-}
+ The 'mappings' are of a format like:
+
+#Standard OpenLDAP attributes
+labeledURI
+#The memberOf plugin provides this attribute
+memberOf
+#These conflict with OpenLDAP builtins
+attributeTypes:samba4AttributeTypes
+2.5.21.5:1.3.6.1.4.1.7165.4.255.7
+
+*/
-static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_schema_convert_target target, FILE *in, FILE *out)
+char *dsdb_convert_schema_to_openldap(struct ldb_context *ldb, char *target_str, const char *mappings)
{
/* Read list of attributes to skip, OIDs to map */
TALLOC_CTX *mem_ctx = talloc_new(ldb);
char *line;
+ char *out;
const char **attrs_skip = NULL;
int num_skip = 0;
- struct oid_map {
- char *old_oid;
- char *new_oid;
- } *oid_map = NULL;
+ struct oid_map *oid_map = NULL;
int num_oid_maps = 0;
- struct attr_map {
- char *old_attr;
- char *new_attr;
- } *attr_map = NULL;
+ struct attr_map *attr_map = NULL;
int num_attr_maps = 0;
- struct dsdb_class *objectclass;
struct dsdb_attribute *attribute;
- struct ldb_dn *schemadn;
- struct schema_conv ret;
struct dsdb_schema *schema;
- const char *seperator;
- char *error_string;
+ enum dsdb_schema_convert_target target;
- int ldb_ret;
+ char *next_line = talloc_strdup(mem_ctx, mappings);
- ret.count = 0;
- ret.skipped = 0;
- ret.failures = 0;
+ if (!target_str || strcasecmp(target_str, "openldap") == 0) {
+ target = TARGET_OPENLDAP;
+ } else if (strcasecmp(target_str, "fedora-ds") == 0) {
+ target = TARGET_FEDORA_DS;
+ } else {
+ DEBUG(0, ("Invalid target type for schema conversion %s\n", target_str));
+ return NULL;
+ }
+
+ /* The mappings are line-seperated, and specify details such as OIDs to skip etc */
+ while (1) {
+ line = next_line;
+ next_line = strchr(line, '\n');
+ if (!next_line) {
+ break;
+ }
+ next_line[0] = '\0';
+ next_line++;
- while ((line = afdgets(fileno(in), mem_ctx, 0))) {
/* Blank Line */
if (line[0] == '\0') {
continue;
@@ -154,17 +211,18 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_sch
if (line[0] == '#') {
continue;
}
+
if (isdigit(line[0])) {
char *p = strchr(line, ':');
if (!p) {
- ret.failures++;
- return ret;
+ DEBUG(0, ("schema mapping file line has OID but no OID to map to: %s\n", line));
+ return NULL;
}
p[0] = '\0';
p++;
oid_map = talloc_realloc(mem_ctx, oid_map, struct oid_map, num_oid_maps + 2);
trim_string(line, " ", " ");
- oid_map[num_oid_maps].old_oid = talloc_move(oid_map, &line);
+ oid_map[num_oid_maps].old_oid = talloc_strdup(oid_map, line);
trim_string(p, " ", " ");
oid_map[num_oid_maps].new_oid = p;
num_oid_maps++;
@@ -177,7 +235,7 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_sch
p++;
attr_map = talloc_realloc(mem_ctx, attr_map, struct attr_map, num_attr_maps + 2);
trim_string(line, " ", " ");
- attr_map[num_attr_maps].old_attr = talloc_move(attr_map, &line);
+ attr_map[num_attr_maps].old_attr = talloc_strdup(attr_map, line);
trim_string(p, " ", " ");
attr_map[num_attr_maps].new_attr = p;
num_attr_maps++;
@@ -186,36 +244,25 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_sch
/* skip attribute/objectClass */
attrs_skip = talloc_realloc(mem_ctx, attrs_skip, const char *, num_skip + 2);
trim_string(line, " ", " ");
- attrs_skip[num_skip] = talloc_move(attrs_skip, &line);
+ attrs_skip[num_skip] = talloc_strdup(attrs_skip, line);
num_skip++;
attrs_skip[num_skip] = NULL;
}
}
}
- schemadn = find_schema_dn(ldb, mem_ctx);
- if (!schemadn) {
- printf("Failed to find schema DN: %s\n", ldb_errstring(ldb));
- ret.failures = 1;
- return ret;
- }
-
- ldb_ret = dsdb_schema_from_schema_dn(mem_ctx, ldb,
- lp_iconv_convenience(cmdline_lp_ctx),
- schemadn, &schema, &error_string);
- if (ldb_ret != LDB_SUCCESS) {
- printf("Failed to load schema: %s\n", error_string);
- ret.failures = 1;
- return ret;
+ schema = dsdb_get_schema(ldb);
+ if (!schema) {
+ DEBUG(0, ("No schema on ldb to convert!\n"));
+ return NULL;
}
switch (target) {
case TARGET_OPENLDAP:
- seperator = "\n ";
+ out = talloc_strdup(mem_ctx, "");
break;
case TARGET_FEDORA_DS:
- seperator = "\n ";
- fprintf(out, "dn: cn=schema\n");
+ out = talloc_strdup(mem_ctx, "dn: cn=schema\n");
break;
}
@@ -231,7 +278,6 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_sch
/* We have been asked to skip some attributes/objectClasses */
if (attrs_skip && str_list_check_ci(attrs_skip, name)) {
- ret.skipped++;
continue;
}
@@ -270,7 +316,7 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_sch
schema_entry = schema_attribute_description(mem_ctx,
target,
- seperator,
+ SEPERATOR,
oid,
name,
equality,
@@ -283,160 +329,22 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_sch
false, false);
if (schema_entry == NULL) {
- ret.failures++;
- return ret;
+ DEBUG(0, ("failed to generate attribute description for %s\n", name));
+ return NULL;
}
switch (target) {
case TARGET_OPENLDAP:
- fprintf(out, "attributetype %s\n\n", schema_entry);
+ out = talloc_asprintf_append(out, "attributetype %s\n\n", schema_entry);
break;
case TARGET_FEDORA_DS:
- fprintf(out, "attributeTypes: %s\n", schema_entry);
+ out = talloc_asprintf_append(out, "attributeTypes: %s\n", schema_entry);
break;
}
- ret.count++;
}
- /* This is already sorted to have 'top' and similar classes first */
- for (objectclass=schema->classes; objectclass; objectclass = objectclass->next) {
- const char *name = objectclass->lDAPDisplayName;
- const char *oid = objectclass->governsID_oid;
- const char *subClassOf = objectclass->subClassOf;
- int objectClassCategory = objectclass->objectClassCategory;
- const char **must;
- const char **may;
- char *schema_entry = NULL;
- const char *objectclass_name_as_list[] = {
- objectclass->lDAPDisplayName,
- NULL
- };
- int j;
- int attr_idx;
-
- /* We have been asked to skip some attributes/objectClasses */
- if (attrs_skip && str_list_check_ci(attrs_skip, name)) {
- ret.skipped++;
- continue;
- }
-
- /* We might have been asked to remap this oid, due to a conflict */
- for (j=0; oid_map && oid_map[j].old_oid; j++) {
- if (strcasecmp(oid, oid_map[j].old_oid) == 0) {
- oid = oid_map[j].new_oid;
- break;
- }
- }
-
- /* We might have been asked to remap this name, due to a conflict */
- for (j=0; name && attr_map && attr_map[j].old_attr; j++) {
- if (strcasecmp(name, attr_map[j].old_attr) == 0) {
- name = attr_map[j].new_attr;
- break;
- }
- }
-
- may = dsdb_full_attribute_list(mem_ctx, schema, objectclass_name_as_list, DSDB_SCHEMA_ALL_MAY);
+ out = print_schema_recursive(out, schema, "top", target, attrs_skip, attr_map, oid_map);
- for (j=0; may && may[j]; j++) {
- /* We might have been asked to remap this name, due to a conflict */
- for (attr_idx=0; attr_map && attr_map[attr_idx].old_attr; attr_idx++) {
- if (strcasecmp(may[j], attr_map[attr_idx].old_attr) == 0) {
- may[j] = attr_map[attr_idx].new_attr;
- break;
- }
- }
- }
-
- must = dsdb_full_attribute_list(mem_ctx, schema, objectclass_name_as_list, DSDB_SCHEMA_ALL_MUST);
-
- for (j=0; must && must[j]; j++) {
- /* We might have been asked to remap this name, due to a conflict */
- for (attr_idx=0; attr_map && attr_map[attr_idx].old_attr; attr_idx++) {
- if (strcasecmp(must[j], attr_map[attr_idx].old_attr) == 0) {
- must[j] = attr_map[attr_idx].new_attr;
- break;
- }
- }
- }
-
- schema_entry = schema_class_description(mem_ctx, target,
- seperator,
- oid,
- name,
- NULL,
- subClassOf,
- objectClassCategory,
- must,
- may,
- NULL);
- if (schema_entry == NULL) {
- ret.failures++;
- return ret;
- }
-
- switch (target) {
- case TARGET_OPENLDAP:
- fprintf(out, "objectclass %s\n\n", schema_entry);
- break;
- case TARGET_FEDORA_DS:
- fprintf(out, "objectClasses: %s\n", schema_entry);
- break;
- }
- ret.count++;
- }
-
- return ret;
+ return out;
}
- int main(int argc, const char **argv)
-{
- TALLOC_CTX *ctx;
- struct ldb_cmdline *options;
- FILE *in = stdin;
- FILE *out = stdout;
- struct ldb_context *ldb;
- struct schema_conv ret;
- const char *target_str;
- enum dsdb_schema_convert_target target;
-
- ctx = talloc_new(NULL);
- ldb = ldb_init(ctx, NULL);
-
- options = ldb_cmdline_process(ldb, argc, argv, usage);
-
- if (options->input) {
- in = fopen(options->input, "r");
- if (!in) {
- perror(options->input);
- exit(1);
- }
- }
- if (options->output) {
- out = fopen(options->output, "w");
- if (!out) {
- perror(options->output);
- exit(1);
- }
- }
-
- target_str = lp_parm_string(cmdline_lp_ctx, NULL, "convert", "target");
-
- if (!target_str || strcasecmp(target_str, "openldap") == 0) {
- target = TARGET_OPENLDAP;
- } else if (strcasecmp(target_str, "fedora-ds") == 0) {
- target = TARGET_FEDORA_DS;
- } else {
- printf("Unsupported target: %s\n", target_str);
- exit(1);
- }
-
- ret = process_convert(ldb, target, in, out);
-
- fclose(in);
- fclose(out);
-
- printf("Converted %d records (skipped %d) with %d failures\n", ret.count, ret.skipped, ret.failures);
-
- return 0;
-}
diff --git a/source4/dsdb/schema/schema_inferiors.c b/source4/dsdb/schema/schema_inferiors.c
new file mode 100644
index 0000000000..28f44ab263
--- /dev/null
+++ b/source4/dsdb/schema/schema_inferiors.c
@@ -0,0 +1,190 @@
+/*
+ Unix SMB/CIFS mplementation.
+
+ implement possibleInferiors calculation
+
+ Copyright (C) Andrew Tridgell 2009
+ Copyright (C) Andrew Bartlett <abartlet@samba.org> 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+/*
+ This module is a C implementation of the logic in the
+ dsdb/samdb/ldb_modules/tests/possibleInferiors.py code
+
+ To understand the C code, please see the python code first
+ */
+
+#include "includes.h"
+#include "dsdb/samdb/samdb.h"
+
+
+/*
+ create the SUPCLASSES() list
+ */
+static char **schema_supclasses(struct dsdb_schema *schema, struct dsdb_class *schema_class)
+{
+ char **list;
+
+ if (schema_class->supclasses) {
+ return schema_class->supclasses;
+ }
+
+ list = str_list_make(schema_class, NULL, NULL);
+ if (list == NULL) {
+ DEBUG(0,(__location__ " out of memory\n"));
+ return NULL;
+ }
+
+ /* Cope with 'top SUP top', ie top is subClassOf top */
+ if (strcmp(schema_class->lDAPDisplayName, schema_class->subClassOf) == 0) {
+ schema_class->supclasses = list;
+ return list;
+ }
+
+ if (schema_class->subClassOf) {
+ const char **list2;
+ list = str_list_add_const(list, schema_class->subClassOf);
+
+ list2 = schema_supclasses(schema,
+ discard_const_p(struct dsdb_class,
+ dsdb_class_by_lDAPDisplayName(schema,
+ schema_class->subClassOf)));
+ list = str_list_append_const(list, list2);
+ }
+
+ schema_class->supclasses = str_list_unique(list);
+
+ return list;
+}
+
+/*
+ this one is used internally
+ matches SUBCLASSES() python function
+ */
+static char **schema_subclasses(struct dsdb_schema *schema, TALLOC_CTX *mem_ctx, char **oclist)
+{
+ char **list = str_list_make(mem_ctx, NULL, NULL);
+ int i;
+
+ for (i=0; oclist && oclist[i]; i++) {
+ struct dsdb_class *schema_class = dsdb_class_by_lDAPDisplayName(schema, oclist[i]);
+ list = str_list_append_const(list, schema_class->subclasses);
+ }
+ return list;
+}
+
+
+/*
+ equivalent of the POSSSUPERIORS() python function
+ */
+static char **schema_posssuperiors(struct dsdb_schema *schema,
+ struct dsdb_class *schema_class)
+{
+ if (schema_class->posssuperiors == NULL) {
+ char **list2 = str_list_make(schema_class, NULL, NULL);
+ char **list3;
+ int i;
+
+ list2 = str_list_append_const(list2, schema_class->systemPossSuperiors);
+ list2 = str_list_append_const(list2, schema_class->possSuperiors);
+ list3 = schema_supclasses(schema, schema_class);
+ for (i=0; list3 && list3[i]; i++) {
+ struct dsdb_class *class2 = dsdb_class_by_lDAPDisplayName(schema, list3[i]);
+ list2 = str_list_append_const(list2, schema_posssuperiors(schema, class2));
+ }
+ list2 = str_list_append_const(list2, schema_subclasses(schema, list2, list2));
+
+ schema_class->posssuperiors = str_list_unique(list2);
+ }
+
+ return schema_class->posssuperiors;
+}
+
+static char **schema_subclasses_recurse(struct dsdb_schema *schema, struct dsdb_class *schema_class)
+{
+ char **list = str_list_copy_const(schema_class, schema_class->subclasses_direct);
+ int i;
+ for (i=0;list && list[i]; i++) {
+ struct dsdb_class *schema_class2 = dsdb_class_by_lDAPDisplayName(schema, list[i]);
+ if (schema_class != schema_class2) {
+ list = str_list_append_const(list, schema_subclasses_recurse(schema, schema_class2));
+ }
+ }
+ return list;
+}
+
+static void schema_create_subclasses(struct dsdb_schema *schema)
+{
+ struct dsdb_class *schema_class;
+
+ for (schema_class=schema->classes; schema_class; schema_class=schema_class->next) {
+ struct dsdb_class *schema_class2 = dsdb_class_by_lDAPDisplayName(schema, schema_class->subClassOf);
+ if (schema_class != schema_class2) {
+ if (schema_class2->subclasses_direct == NULL) {
+ schema_class2->subclasses_direct = str_list_make(schema_class2, NULL, NULL);
+ }
+ schema_class2->subclasses_direct = str_list_add_const(schema_class2->subclasses_direct,
+ schema_class->lDAPDisplayName);
+ }
+ }
+
+ for (schema_class=schema->classes; schema_class; schema_class=schema_class->next) {
+ schema_class->subclasses = str_list_unique(schema_subclasses_recurse(schema, schema_class));
+ }
+}
+
+static void schema_fill_possible_inferiors(struct dsdb_schema *schema, struct dsdb_class *schema_class)
+{
+ struct dsdb_class *c2;
+
+ for (c2=schema->classes; c2; c2=c2->next) {
+ char **superiors = schema_posssuperiors(schema, c2);
+ if (c2->systemOnly == false
+ && c2->objectClassCategory != 2
+ && c2->objectClassCategory != 3
+ && str_list_check(superiors, schema_class->lDAPDisplayName)) {
+ if (schema_class->possibleInferiors == NULL) {
+ schema_class->possibleInferiors = str_list_make(schema_class, NULL, NULL);
+ }
+ schema_class->possibleInferiors = str_list_add_const(schema_class->possibleInferiors,
+ c2->lDAPDisplayName);
+ }
+ }
+ schema_class->possibleInferiors = str_list_unique(schema_class->possibleInferiors);
+}
+
+void schema_fill_constructed(struct dsdb_schema *schema)
+{
+ struct dsdb_class *schema_class;
+
+ schema_create_subclasses(schema);
+
+ for (schema_class=schema->classes; schema_class; schema_class=schema_class->next) {
+ schema_fill_possible_inferiors(schema, schema_class);
+ }
+
+ /* free up our internal cache elements */
+ for (schema_class=schema->classes; schema_class; schema_class=schema_class->next) {
+ talloc_free(schema_class->supclasses);
+ talloc_free(schema_class->subclasses_direct);
+ talloc_free(schema_class->subclasses);
+ talloc_free(schema_class->posssuperiors);
+ schema_class->supclasses = NULL;
+ schema_class->subclasses_direct = NULL;
+ schema_class->subclasses = NULL;
+ schema_class->posssuperiors = NULL;
+ }
+}
diff --git a/source4/dsdb/schema/schema_init.c b/source4/dsdb/schema/schema_init.c
index a67aecd1e8..3a65c474fb 100644
--- a/source4/dsdb/schema/schema_init.c
+++ b/source4/dsdb/schema/schema_init.c
@@ -28,6 +28,7 @@
#include "librpc/gen_ndr/ndr_drsuapi.h"
#include "librpc/gen_ndr/ndr_drsblobs.h"
#include "param/param.h"
+#include "lib/ldb/include/ldb_module.h"
struct dsdb_schema *dsdb_new_schema(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience)
{
@@ -582,6 +583,48 @@ WERROR dsdb_read_prefixes_from_ldb(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
return WERR_OK;
}
+
+/*
+ setup the ldb_schema_attribute field for a dsdb_attribute
+ */
+static int dsdb_schema_setup_ldb_schema_attribute(struct ldb_context *ldb,
+ struct dsdb_attribute *attr)
+{
+ const char *syntax = attr->syntax->ldb_syntax;
+ const struct ldb_schema_syntax *s;
+ struct ldb_schema_attribute *a;
+
+ if (!syntax) {
+ syntax = attr->syntax->ldap_oid;
+ }
+
+ s = ldb_samba_syntax_by_lDAPDisplayName(ldb, attr->lDAPDisplayName);
+ if (s == NULL) {
+ s = ldb_samba_syntax_by_name(ldb, syntax);
+ }
+ if (s == NULL) {
+ s = ldb_standard_syntax_by_name(ldb, syntax);
+ }
+
+ if (s == NULL) {
+ return LDB_ERR_OPERATIONS_ERROR;
+ }
+
+ attr->ldb_schema_attribute = a = talloc(attr, struct ldb_schema_attribute);
+ if (attr->ldb_schema_attribute == NULL) {
+ ldb_oom(ldb);
+ return LDB_ERR_OPERATIONS_ERROR;
+ }
+
+ a->name = attr->lDAPDisplayName;
+ a->flags = 0;
+ a->syntax = s;
+
+ return LDB_SUCCESS;
+}
+
+
+
#define GET_STRING_LDB(msg, attr, mem_ctx, p, elem, strict) do { \
(p)->elem = samdb_result_string(msg, attr, NULL);\
if (strict && (p)->elem == NULL) { \
@@ -676,7 +719,8 @@ WERROR dsdb_read_prefixes_from_ldb(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
}\
} while (0)
-WERROR dsdb_attribute_from_ldb(const struct dsdb_schema *schema,
+WERROR dsdb_attribute_from_ldb(struct ldb_context *ldb,
+ const struct dsdb_schema *schema,
struct ldb_message *msg,
TALLOC_CTX *mem_ctx,
struct dsdb_attribute *attr)
@@ -745,6 +789,10 @@ WERROR dsdb_attribute_from_ldb(const struct dsdb_schema *schema,
return WERR_DS_ATT_SCHEMA_REQ_SYNTAX;
}
+ if (dsdb_schema_setup_ldb_schema_attribute(ldb, attr) != LDB_SUCCESS) {
+ return WERR_DS_ATT_SCHEMA_REQ_SYNTAX;
+ }
+
return WERR_OK;
}
@@ -788,7 +836,6 @@ WERROR dsdb_class_from_ldb(const struct dsdb_schema *schema,
GET_STRING_LIST_LDB(msg, "systemPossSuperiors", mem_ctx, obj, systemPossSuperiors, false);
GET_STRING_LIST_LDB(msg, "possSuperiors", mem_ctx, obj, possSuperiors, false);
- GET_STRING_LIST_LDB(msg, "possibleInferiors", mem_ctx, obj, possibleInferiors, false);
GET_STRING_LDB(msg, "defaultSecurityDescriptor", mem_ctx, obj, defaultSecurityDescriptor, false);
@@ -808,6 +855,12 @@ WERROR dsdb_class_from_ldb(const struct dsdb_schema *schema,
#define dsdb_oom(error_string, mem_ctx) *error_string = talloc_asprintf(mem_ctx, "dsdb out of memory at %s:%d\n", __FILE__, __LINE__)
+/*
+ Create a DSDB schema from the ldb results provided. This is called
+ directly when the schema is provisioned from an on-disk LDIF file, or
+ from dsdb_schema_from_schema_dn below
+*/
+
int dsdb_schema_from_ldb_results(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
struct smb_iconv_convenience *iconv_convenience,
struct ldb_result *schema_res,
@@ -861,7 +914,7 @@ int dsdb_schema_from_ldb_results(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
return LDB_ERR_OPERATIONS_ERROR;
}
- status = dsdb_attribute_from_ldb(schema, attrs_res->msgs[i], sa, sa);
+ status = dsdb_attribute_from_ldb(ldb, schema, attrs_res->msgs[i], sa, sa);
if (!W_ERROR_IS_OK(status)) {
*error_string = talloc_asprintf(mem_ctx,
"schema_fsmo_init: failed to load attribute definition: %s:%s",
@@ -908,96 +961,9 @@ int dsdb_schema_from_ldb_results(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
return LDB_SUCCESS;
}
-/* This recursive load of the objectClasses presumes that they
- * everything is in a strict subClassOf hirarchy.
- *
- * We load this in order so we produce certain outputs (such as the
- * exported schema for openldap, and sorted objectClass attribute) 'in
- * order' */
-
-static int fetch_oc_recursive(struct ldb_context *ldb, struct ldb_dn *schemadn,
- TALLOC_CTX *mem_ctx,
- struct ldb_result *search_from,
- struct ldb_result *res_list)
-{
- int i;
- int ret = 0;
- for (i=0; i < search_from->count; i++) {
- struct ldb_result *res;
- const char *name = ldb_msg_find_attr_as_string(search_from->msgs[i],
- "lDAPDisplayname", NULL);
-
- ret = ldb_search(ldb, mem_ctx, &res,
- schemadn, LDB_SCOPE_SUBTREE, NULL,
- "(&(&(objectClass=classSchema)(subClassOf=%s))(!(lDAPDisplayName=%s)))",
- name, name);
- if (ret != LDB_SUCCESS) {
- return ret;
- }
-
- res_list->msgs = talloc_realloc(res_list, res_list->msgs,
- struct ldb_message *, res_list->count + 2);
- if (!res_list->msgs) {
- return LDB_ERR_OPERATIONS_ERROR;
- }
- res_list->msgs[res_list->count] = talloc_move(res_list,
- &search_from->msgs[i]);
- res_list->count++;
- res_list->msgs[res_list->count] = NULL;
-
- if (res->count > 0) {
- ret = fetch_oc_recursive(ldb, schemadn, mem_ctx, res, res_list);
- }
- if (ret != LDB_SUCCESS) {
- return ret;
- }
- }
- return ret;
-}
-
-static int fetch_objectclass_schema(struct ldb_context *ldb, struct ldb_dn *schemadn,
- TALLOC_CTX *mem_ctx,
- struct ldb_result **objectclasses_res,
- char **error_string)
-{
- TALLOC_CTX *local_ctx = talloc_new(mem_ctx);
- struct ldb_result *top_res, *ret_res;
- int ret;
- if (!local_ctx) {
- return LDB_ERR_OPERATIONS_ERROR;
- }
-
- /* Download 'top' */
- ret = ldb_search(ldb, local_ctx, &top_res,
- schemadn, LDB_SCOPE_SUBTREE, NULL,
- "(&(objectClass=classSchema)(lDAPDisplayName=top))");
- if (ret != LDB_SUCCESS) {
- *error_string = talloc_asprintf(mem_ctx,
- "dsdb_schema: failed to search for top classSchema object: %s",
- ldb_errstring(ldb));
- return ret;
- }
-
- if (top_res->count != 1) {
- *error_string = talloc_asprintf(mem_ctx,
- "dsdb_schema: failed to find top classSchema object");
- return LDB_ERR_NO_SUCH_OBJECT;
- }
-
- ret_res = talloc_zero(local_ctx, struct ldb_result);
- if (!ret_res) {
- return LDB_ERR_OPERATIONS_ERROR;
- }
-
- ret = fetch_oc_recursive(ldb, schemadn, local_ctx, top_res, ret_res);
-
- if (ret != LDB_SUCCESS) {
- return ret;
- }
-
- *objectclasses_res = talloc_move(mem_ctx, &ret_res);
- return ret;
-}
+/*
+ Given an LDB, and the DN, return a populated schema
+*/
int dsdb_schema_from_schema_dn(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
struct smb_iconv_convenience *iconv_convenience,
@@ -1065,10 +1031,13 @@ int dsdb_schema_from_schema_dn(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
/*
* load the objectClass definitions
*/
- ret = fetch_objectclass_schema(ldb, schema_dn, tmp_ctx, &c_res, &error_string);
+ ret = ldb_search(ldb, tmp_ctx, &c_res,
+ schema_dn, LDB_SCOPE_ONELEVEL, NULL,
+ "(objectClass=classSchema)");
if (ret != LDB_SUCCESS) {
*error_string_out = talloc_asprintf(mem_ctx,
- "Failed to fetch objectClass schema elements: %s", error_string);
+ "dsdb_schema: failed to search attributeSchema objects: %s",
+ ldb_errstring(ldb));
talloc_free(tmp_ctx);
return ret;
}
@@ -1353,7 +1322,8 @@ static struct drsuapi_DsReplicaAttribute *dsdb_find_object_attr_name(struct dsdb
}\
} while (0)
-WERROR dsdb_attribute_from_drsuapi(struct dsdb_schema *schema,
+WERROR dsdb_attribute_from_drsuapi(struct ldb_context *ldb,
+ struct dsdb_schema *schema,
struct drsuapi_DsReplicaObject *r,
TALLOC_CTX *mem_ctx,
struct dsdb_attribute *attr)
@@ -1412,6 +1382,10 @@ WERROR dsdb_attribute_from_drsuapi(struct dsdb_schema *schema,
return WERR_DS_ATT_SCHEMA_REQ_SYNTAX;
}
+ if (dsdb_schema_setup_ldb_schema_attribute(ldb, attr) != LDB_SUCCESS) {
+ return WERR_DS_ATT_SCHEMA_REQ_SYNTAX;
+ }
+
return WERR_OK;
}
@@ -1451,7 +1425,6 @@ WERROR dsdb_class_from_drsuapi(struct dsdb_schema *schema,
GET_STRING_LIST_DS(schema, r, "systemPossSuperiors", mem_ctx, obj, systemPossSuperiors, false);
GET_STRING_LIST_DS(schema, r, "possSuperiors", mem_ctx, obj, possSuperiors, false);
- GET_STRING_LIST_DS(schema, r, "possibleInferiors", mem_ctx, obj, possibleInferiors, false);
GET_STRING_DS(schema, r, "defaultSecurityDescriptor", mem_ctx, obj, defaultSecurityDescriptor, false);
diff --git a/source4/dsdb/schema/schema_query.c b/source4/dsdb/schema/schema_query.c
index 00de0f8983..f894ef5b1e 100644
--- a/source4/dsdb/schema/schema_query.c
+++ b/source4/dsdb/schema/schema_query.c
@@ -23,10 +23,44 @@
#include "includes.h"
#include "dsdb/samdb/samdb.h"
+/* a binary array search, where the array is an array of pointers to structures,
+ and we want to find a match for 'target' on 'field' in those structures.
+
+ Inputs:
+ array: base pointer to an array of structures
+ arrray_size: number of elements in the array
+ field: the name of the field in the structure we are keying off
+ target: the field value we are looking for
+ comparison_fn: the comparison function
+ result: where the result of the search is put
+
+ if the element is found, then 'result' is set to point to the found array element. If not,
+ then 'result' is set to NULL.
+
+ The array is assumed to be sorted by the same comparison_fn as the
+ search (with, for example, qsort)
+ */
+#define BINARY_ARRAY_SEARCH(array, array_size, field, target, comparison_fn, result) do { \
+ int32_t _b, _e; \
+ (result) = NULL; \
+ for (_b = 0, _e = (array_size)-1; _b <= _e; ) { \
+ int32_t _i = (_b+_e)/2; \
+ int _r = comparison_fn(target, array[_i]->field); \
+ if (_r == 0) { (result) = array[_i]; break; } \
+ if (_r < 0) _e = _i - 1; else _b = _i + 1; \
+ } } while (0)
+
+
+static int uint32_cmp(uint32_t c1, uint32_t c2)
+{
+ return c1 - c2;
+}
+
+
const struct dsdb_attribute *dsdb_attribute_by_attributeID_id(const struct dsdb_schema *schema,
uint32_t id)
{
- struct dsdb_attribute *cur;
+ struct dsdb_attribute *c;
/*
* 0xFFFFFFFF is used as value when no mapping table is available,
@@ -34,69 +68,49 @@ const struct dsdb_attribute *dsdb_attribute_by_attributeID_id(const struct dsdb_
*/
if (id == 0xFFFFFFFF) return NULL;
- /* TODO: add binary search */
- for (cur = schema->attributes; cur; cur = cur->next) {
- if (cur->attributeID_id != id) continue;
-
- return cur;
- }
-
- return NULL;
+ BINARY_ARRAY_SEARCH(schema->attributes_by_attributeID_id,
+ schema->num_attributes, attributeID_id, id, uint32_cmp, c);
+ return c;
}
const struct dsdb_attribute *dsdb_attribute_by_attributeID_oid(const struct dsdb_schema *schema,
const char *oid)
{
- struct dsdb_attribute *cur;
+ struct dsdb_attribute *c;
if (!oid) return NULL;
- /* TODO: add binary search */
- for (cur = schema->attributes; cur; cur = cur->next) {
- if (strcmp(cur->attributeID_oid, oid) != 0) continue;
-
- return cur;
- }
-
- return NULL;
+ BINARY_ARRAY_SEARCH(schema->attributes_by_attributeID_oid,
+ schema->num_attributes, attributeID_oid, oid, strcasecmp, c);
+ return c;
}
const struct dsdb_attribute *dsdb_attribute_by_lDAPDisplayName(const struct dsdb_schema *schema,
const char *name)
{
- struct dsdb_attribute *cur;
+ struct dsdb_attribute *c;
if (!name) return NULL;
- /* TODO: add binary search */
- for (cur = schema->attributes; cur; cur = cur->next) {
- if (strcasecmp(cur->lDAPDisplayName, name) != 0) continue;
-
- return cur;
- }
-
- return NULL;
+ BINARY_ARRAY_SEARCH(schema->attributes_by_lDAPDisplayName,
+ schema->num_attributes, lDAPDisplayName, name, strcasecmp, c);
+ return c;
}
const struct dsdb_attribute *dsdb_attribute_by_linkID(const struct dsdb_schema *schema,
int linkID)
{
- struct dsdb_attribute *cur;
-
- /* TODO: add binary search */
- for (cur = schema->attributes; cur; cur = cur->next) {
- if (cur->linkID != linkID) continue;
+ struct dsdb_attribute *c;
- return cur;
- }
-
- return NULL;
+ BINARY_ARRAY_SEARCH(schema->attributes_by_linkID,
+ schema->num_attributes, linkID, linkID, uint32_cmp, c);
+ return c;
}
const struct dsdb_class *dsdb_class_by_governsID_id(const struct dsdb_schema *schema,
uint32_t id)
{
- struct dsdb_class *cur;
+ struct dsdb_class *c;
/*
* 0xFFFFFFFF is used as value when no mapping table is available,
@@ -104,65 +118,39 @@ const struct dsdb_class *dsdb_class_by_governsID_id(const struct dsdb_schema *sc
*/
if (id == 0xFFFFFFFF) return NULL;
- /* TODO: add binary search */
- for (cur = schema->classes; cur; cur = cur->next) {
- if (cur->governsID_id != id) continue;
-
- return cur;
- }
-
- return NULL;
+ BINARY_ARRAY_SEARCH(schema->classes_by_governsID_id,
+ schema->num_classes, governsID_id, id, uint32_cmp, c);
+ return c;
}
const struct dsdb_class *dsdb_class_by_governsID_oid(const struct dsdb_schema *schema,
const char *oid)
{
- struct dsdb_class *cur;
-
+ struct dsdb_class *c;
if (!oid) return NULL;
-
- /* TODO: add binary search */
- for (cur = schema->classes; cur; cur = cur->next) {
- if (strcmp(cur->governsID_oid, oid) != 0) continue;
-
- return cur;
- }
-
- return NULL;
+ BINARY_ARRAY_SEARCH(schema->classes_by_governsID_oid,
+ schema->num_classes, governsID_oid, oid, strcasecmp, c);
+ return c;
}
const struct dsdb_class *dsdb_class_by_lDAPDisplayName(const struct dsdb_schema *schema,
const char *name)
{
- struct dsdb_class *cur;
-
+ struct dsdb_class *c;
if (!name) return NULL;
-
- /* TODO: add binary search */
- for (cur = schema->classes; cur; cur = cur->next) {
- if (strcasecmp(cur->lDAPDisplayName, name) != 0) continue;
-
- return cur;
- }
-
- return NULL;
+ BINARY_ARRAY_SEARCH(schema->classes_by_lDAPDisplayName,
+ schema->num_classes, lDAPDisplayName, name, strcasecmp, c);
+ return c;
}
const struct dsdb_class *dsdb_class_by_cn(const struct dsdb_schema *schema,
const char *cn)
{
- struct dsdb_class *cur;
-
+ struct dsdb_class *c;
if (!cn) return NULL;
-
- /* TODO: add binary search */
- for (cur = schema->classes; cur; cur = cur->next) {
- if (strcasecmp(cur->cn, cn) != 0) continue;
-
- return cur;
- }
-
- return NULL;
+ BINARY_ARRAY_SEARCH(schema->classes_by_cn,
+ schema->num_classes, cn, cn, strcasecmp, c);
+ return c;
}
const char *dsdb_lDAPDisplayName_by_id(const struct dsdb_schema *schema,
@@ -171,7 +159,6 @@ const char *dsdb_lDAPDisplayName_by_id(const struct dsdb_schema *schema,
const struct dsdb_attribute *a;
const struct dsdb_class *c;
- /* TODO: add binary search */
a = dsdb_attribute_by_attributeID_id(schema, id);
if (a) {
return a->lDAPDisplayName;
diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c
index 6abd8a8f88..dcaeb4fc89 100644
--- a/source4/dsdb/schema/schema_set.c
+++ b/source4/dsdb/schema/schema_set.c
@@ -26,6 +26,21 @@
#include "lib/ldb/include/ldb_module.h"
#include "param/param.h"
+/*
+ override the name to attribute handler function
+ */
+const struct ldb_schema_attribute *dsdb_attribute_handler_override(struct ldb_context *ldb,
+ void *private_data,
+ const char *name)
+{
+ struct dsdb_schema *schema = talloc_get_type_abort(private_data, struct dsdb_schema);
+ const struct dsdb_attribute *a = dsdb_attribute_by_lDAPDisplayName(schema, name);
+ if (a == NULL) {
+ /* this will fall back to ldb internal handling */
+ return NULL;
+ }
+ return a->ldb_schema_attribute;
+}
static int dsdb_schema_set_attributes(struct ldb_context *ldb, struct dsdb_schema *schema, bool write_attributes)
{
@@ -34,11 +49,18 @@ static int dsdb_schema_set_attributes(struct ldb_context *ldb, struct dsdb_schem
struct ldb_result *res_idx;
struct dsdb_attribute *attr;
struct ldb_message *mod_msg;
- TALLOC_CTX *mem_ctx = talloc_new(ldb);
-
+ TALLOC_CTX *mem_ctx;
struct ldb_message *msg;
struct ldb_message *msg_idx;
+ /* setup our own attribute name to schema handler */
+ ldb_schema_attribute_set_override_handler(ldb, dsdb_attribute_handler_override, schema);
+
+ if (!write_attributes) {
+ return ret;
+ }
+
+ mem_ctx = talloc_new(ldb);
if (!mem_ctx) {
return LDB_ERR_OPERATIONS_ERROR;
}
@@ -46,27 +68,27 @@ static int dsdb_schema_set_attributes(struct ldb_context *ldb, struct dsdb_schem
msg = ldb_msg_new(mem_ctx);
if (!msg) {
ldb_oom(ldb);
- return LDB_ERR_OPERATIONS_ERROR;
+ goto op_error;
}
msg_idx = ldb_msg_new(mem_ctx);
if (!msg_idx) {
ldb_oom(ldb);
- return LDB_ERR_OPERATIONS_ERROR;
+ goto op_error;
}
msg->dn = ldb_dn_new(msg, ldb, "@ATTRIBUTES");
if (!msg->dn) {
ldb_oom(ldb);
- return LDB_ERR_OPERATIONS_ERROR;
+ goto op_error;
}
msg_idx->dn = ldb_dn_new(msg, ldb, "@INDEXLIST");
if (!msg_idx->dn) {
ldb_oom(ldb);
- return LDB_ERR_OPERATIONS_ERROR;
+ goto op_error;
}
for (attr = schema->attributes; attr; attr = attr->next) {
- const struct ldb_schema_syntax *s;
const char *syntax = attr->syntax->ldb_syntax;
+
if (!syntax) {
syntax = attr->syntax->ldap_oid;
}
@@ -87,33 +109,13 @@ static int dsdb_schema_set_attributes(struct ldb_context *ldb, struct dsdb_schem
break;
}
}
-
- if (!attr->syntax) {
- continue;
- }
-
- ret = ldb_schema_attribute_add(ldb, attr->lDAPDisplayName, LDB_ATTR_FLAG_FIXED,
- syntax);
- if (ret != LDB_SUCCESS) {
- s = ldb_samba_syntax_by_name(ldb, attr->syntax->ldap_oid);
- if (s) {
- ret = ldb_schema_attribute_add_with_syntax(ldb, attr->lDAPDisplayName, LDB_ATTR_FLAG_FIXED, s);
- } else {
- ret = LDB_SUCCESS; /* Nothing to do here */
- }
- }
-
- if (ret != LDB_SUCCESS) {
- break;
- }
}
- if (!write_attributes || ret != LDB_SUCCESS) {
+ if (ret != LDB_SUCCESS) {
talloc_free(mem_ctx);
return ret;
}
-
/* Try to avoid churning the attributes too much - we only want to do this if they have changed */
ret = ldb_search(ldb, mem_ctx, &res, msg->dn, LDB_SCOPE_BASE, NULL, "dn=%s", ldb_dn_get_linearized(msg->dn));
if (ret == LDB_ERR_NO_SUCH_OBJECT) {
@@ -165,8 +167,165 @@ static int dsdb_schema_set_attributes(struct ldb_context *ldb, struct dsdb_schem
}
talloc_free(mem_ctx);
return ret;
+
+op_error:
+ talloc_free(mem_ctx);
+ return LDB_ERR_OPERATIONS_ERROR;
}
+static int dsdb_compare_class_by_lDAPDisplayName(struct dsdb_class **c1, struct dsdb_class **c2)
+{
+ return strcasecmp((*c1)->lDAPDisplayName, (*c2)->lDAPDisplayName);
+}
+static int dsdb_compare_class_by_governsID_id(struct dsdb_class **c1, struct dsdb_class **c2)
+{
+ return (*c1)->governsID_id - (*c2)->governsID_id;
+}
+static int dsdb_compare_class_by_governsID_oid(struct dsdb_class **c1, struct dsdb_class **c2)
+{
+ return strcasecmp((*c1)->governsID_oid, (*c2)->governsID_oid);
+}
+static int dsdb_compare_class_by_cn(struct dsdb_class **c1, struct dsdb_class **c2)
+{
+ return strcasecmp((*c1)->cn, (*c2)->cn);
+}
+
+static int dsdb_compare_attribute_by_lDAPDisplayName(struct dsdb_attribute **a1, struct dsdb_attribute **a2)
+{
+ return strcasecmp((*a1)->lDAPDisplayName, (*a2)->lDAPDisplayName);
+}
+static int dsdb_compare_attribute_by_attributeID_id(struct dsdb_attribute **a1, struct dsdb_attribute **a2)
+{
+ return (*a1)->attributeID_id - (*a2)->attributeID_id;
+}
+static int dsdb_compare_attribute_by_attributeID_oid(struct dsdb_attribute **a1, struct dsdb_attribute **a2)
+{
+ return strcasecmp((*a1)->attributeID_oid, (*a2)->attributeID_oid);
+}
+static int dsdb_compare_attribute_by_linkID(struct dsdb_attribute **a1, struct dsdb_attribute **a2)
+{
+ return (*a1)->linkID - (*a2)->linkID;
+}
+
+/*
+ create the sorted accessor arrays for the schema
+ */
+static int dsdb_setup_sorted_accessors(struct ldb_context *ldb,
+ struct dsdb_schema *schema)
+{
+ struct dsdb_class *cur;
+ struct dsdb_attribute *a;
+ uint32_t i;
+
+ talloc_free(schema->classes_by_lDAPDisplayName);
+ talloc_free(schema->classes_by_governsID_id);
+ talloc_free(schema->classes_by_governsID_oid);
+ talloc_free(schema->classes_by_cn);
+
+ /* count the classes */
+ for (i=0, cur=schema->classes; cur; i++, cur=cur->next) /* noop */ ;
+ schema->num_classes = i;
+
+ /* setup classes_by_* */
+ schema->classes_by_lDAPDisplayName = talloc_array(schema, struct dsdb_class *, i);
+ schema->classes_by_governsID_id = talloc_array(schema, struct dsdb_class *, i);
+ schema->classes_by_governsID_oid = talloc_array(schema, struct dsdb_class *, i);
+ schema->classes_by_cn = talloc_array(schema, struct dsdb_class *, i);
+ if (schema->classes_by_lDAPDisplayName == NULL ||
+ schema->classes_by_governsID_id == NULL ||
+ schema->classes_by_governsID_oid == NULL ||
+ schema->classes_by_cn == NULL) {
+ goto failed;
+ }
+
+ for (i=0, cur=schema->classes; cur; i++, cur=cur->next) {
+ schema->classes_by_lDAPDisplayName[i] = cur;
+ schema->classes_by_governsID_id[i] = cur;
+ schema->classes_by_governsID_oid[i] = cur;
+ schema->classes_by_cn[i] = cur;
+ }
+
+ /* sort the arrays */
+ qsort(schema->classes_by_lDAPDisplayName, schema->num_classes,
+ sizeof(struct dsdb_class *), QSORT_CAST dsdb_compare_class_by_lDAPDisplayName);
+ qsort(schema->classes_by_governsID_id, schema->num_classes,
+ sizeof(struct dsdb_class *), QSORT_CAST dsdb_compare_class_by_governsID_id);
+ qsort(schema->classes_by_governsID_oid, schema->num_classes,
+ sizeof(struct dsdb_class *), QSORT_CAST dsdb_compare_class_by_governsID_oid);
+ qsort(schema->classes_by_cn, schema->num_classes,
+ sizeof(struct dsdb_class *), QSORT_CAST dsdb_compare_class_by_cn);
+
+ /* now build the attribute accessor arrays */
+ talloc_free(schema->attributes_by_lDAPDisplayName);
+ talloc_free(schema->attributes_by_attributeID_id);
+ talloc_free(schema->attributes_by_attributeID_oid);
+ talloc_free(schema->attributes_by_linkID);
+
+ /* count the attributes */
+ for (i=0, a=schema->attributes; a; i++, a=a->next) /* noop */ ;
+ schema->num_attributes = i;
+
+ /* setup attributes_by_* */
+ schema->attributes_by_lDAPDisplayName = talloc_array(schema, struct dsdb_attribute *, i);
+ schema->attributes_by_attributeID_id = talloc_array(schema, struct dsdb_attribute *, i);
+ schema->attributes_by_attributeID_oid = talloc_array(schema, struct dsdb_attribute *, i);
+ schema->attributes_by_linkID = talloc_array(schema, struct dsdb_attribute *, i);
+ if (schema->attributes_by_lDAPDisplayName == NULL ||
+ schema->attributes_by_attributeID_id == NULL ||
+ schema->attributes_by_attributeID_oid == NULL ||
+ schema->attributes_by_linkID == NULL) {
+ goto failed;
+ }
+
+ for (i=0, a=schema->attributes; a; i++, a=a->next) {
+ schema->attributes_by_lDAPDisplayName[i] = a;
+ schema->attributes_by_attributeID_id[i] = a;
+ schema->attributes_by_attributeID_oid[i] = a;
+ schema->attributes_by_linkID[i] = a;
+ }
+
+ /* sort the arrays */
+ qsort(schema->attributes_by_lDAPDisplayName, schema->num_attributes,
+ sizeof(struct dsdb_attribute *), QSORT_CAST dsdb_compare_attribute_by_lDAPDisplayName);
+ qsort(schema->attributes_by_attributeID_id, schema->num_attributes,
+ sizeof(struct dsdb_attribute *), QSORT_CAST dsdb_compare_attribute_by_attributeID_id);
+ qsort(schema->attributes_by_attributeID_oid, schema->num_attributes,
+ sizeof(struct dsdb_attribute *), QSORT_CAST dsdb_compare_attribute_by_attributeID_oid);
+ qsort(schema->attributes_by_linkID, schema->num_attributes,
+ sizeof(struct dsdb_attribute *), QSORT_CAST dsdb_compare_attribute_by_linkID);
+
+ return LDB_SUCCESS;
+
+failed:
+ schema->classes_by_lDAPDisplayName = NULL;
+ schema->classes_by_governsID_id = NULL;
+ schema->classes_by_governsID_oid = NULL;
+ schema->classes_by_cn = NULL;
+ schema->attributes_by_lDAPDisplayName = NULL;
+ schema->attributes_by_attributeID_id = NULL;
+ schema->attributes_by_attributeID_oid = NULL;
+ schema->attributes_by_linkID = NULL;
+ ldb_oom(ldb);
+ return LDB_ERR_OPERATIONS_ERROR;
+}
+
+int dsdb_setup_schema_inversion(struct ldb_context *ldb, struct dsdb_schema *schema)
+{
+ /* Walk the list of schema classes */
+
+ /* For each subClassOf, add us to subclasses of the parent */
+
+ /* collect these subclasses into a recursive list of total subclasses, preserving order */
+
+ /* For each subclass under 'top', write the index from it's
+ * order as an integer in the dsdb_class (for sorting
+ * objectClass lists efficiently) */
+
+ /* Walk the list of scheam classes */
+
+ /* Create a 'total possible superiors' on each class */
+ return LDB_SUCCESS;
+}
/**
* Attach the schema to an opaque pointer on the ldb, so ldb modules
@@ -177,6 +336,13 @@ int dsdb_set_schema(struct ldb_context *ldb, struct dsdb_schema *schema)
{
int ret;
+ ret = dsdb_setup_sorted_accessors(ldb, schema);
+ if (ret != LDB_SUCCESS) {
+ return ret;
+ }
+
+ schema_fill_constructed(schema);
+
ret = ldb_set_opaque(ldb, "dsdb_schema", schema);
if (ret != LDB_SUCCESS) {
return ret;
@@ -207,6 +373,7 @@ int dsdb_set_global_schema(struct ldb_context *ldb)
if (!global_schema) {
return LDB_SUCCESS;
}
+
ret = ldb_set_opaque(ldb, "dsdb_schema", global_schema);
if (ret != LDB_SUCCESS) {
return ret;
@@ -277,7 +444,7 @@ void dsdb_make_schema_global(struct ldb_context *ldb)
* schema itself to the directory.
*/
-WERROR dsdb_attach_schema_from_ldif_file(struct ldb_context *ldb, const char *pf, const char *df)
+WERROR dsdb_attach_schema_from_ldif(struct ldb_context *ldb, const char *pf, const char *df)
{
struct ldb_ldif *ldif;
struct ldb_message *msg;
@@ -367,7 +534,7 @@ WERROR dsdb_attach_schema_from_ldif_file(struct ldb_context *ldb, const char *pf
goto nomem;
}
- status = dsdb_attribute_from_ldb(schema, msg, sa, sa);
+ status = dsdb_attribute_from_ldb(ldb, schema, msg, sa, sa);
if (!W_ERROR_IS_OK(status)) {
goto failed;
}
diff --git a/source4/dsdb/schema/schema_syntax.c b/source4/dsdb/schema/schema_syntax.c
index 27c9a6c4a4..4fd6501cc8 100644
--- a/source4/dsdb/schema/schema_syntax.c
+++ b/source4/dsdb/schema/schema_syntax.c
@@ -1227,7 +1227,7 @@ static WERROR dsdb_syntax_PRESENTATION_ADDRESS_ldb_to_drsuapi(struct ldb_context
static const struct dsdb_syntax dsdb_syntaxes[] = {
{
.name = "Boolean",
- .ldap_oid = "1.3.6.1.4.1.1466.115.121.1.7",
+ .ldap_oid = LDB_SYNTAX_BOOLEAN,
.oMSyntax = 1,
.attributeSyntax_oid = "2.5.5.8",
.drsuapi_to_ldb = dsdb_syntax_BOOL_drsuapi_to_ldb,
@@ -1289,7 +1289,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
.ldb_to_drsuapi = dsdb_syntax_DATA_BLOB_ldb_to_drsuapi,
.equality = "numericStringMatch",
.substring = "numericStringSubstringsMatch",
- .comment = "Numeric String"
+ .comment = "Numeric String",
+ .ldb_syntax = LDB_SYNTAX_DIRECTORY_STRING,
},{
.name = "String(Printable)",
.ldap_oid = "1.3.6.1.4.1.1466.115.121.1.44",
@@ -1297,6 +1298,7 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
.attributeSyntax_oid = "2.5.5.5",
.drsuapi_to_ldb = dsdb_syntax_DATA_BLOB_drsuapi_to_ldb,
.ldb_to_drsuapi = dsdb_syntax_DATA_BLOB_ldb_to_drsuapi,
+ .ldb_syntax = LDB_SYNTAX_OCTET_STRING,
},{
.name = "String(Teletex)",
.ldap_oid = "1.2.840.113556.1.4.905",
@@ -1316,7 +1318,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
.drsuapi_to_ldb = dsdb_syntax_DATA_BLOB_drsuapi_to_ldb,
.ldb_to_drsuapi = dsdb_syntax_DATA_BLOB_ldb_to_drsuapi,
.equality = "caseExactIA5Match",
- .comment = "Printable String"
+ .comment = "Printable String",
+ .ldb_syntax = LDB_SYNTAX_OCTET_STRING,
},{
.name = "String(UTC-Time)",
.ldap_oid = "1.3.6.1.4.1.1466.115.121.1.53",
@@ -1423,7 +1426,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
.attributeSyntax_oid = "2.5.5.13",
.drsuapi_to_ldb = dsdb_syntax_PRESENTATION_ADDRESS_drsuapi_to_ldb,
.ldb_to_drsuapi = dsdb_syntax_PRESENTATION_ADDRESS_ldb_to_drsuapi,
- .comment = "Presentation Address"
+ .comment = "Presentation Address",
+ .ldb_syntax = LDB_SYNTAX_DIRECTORY_STRING,
},{
/* not used in w2k3 schema */
.name = "Object(Access-Point)",
@@ -1433,6 +1437,7 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
.attributeSyntax_oid = "2.5.5.14",
.drsuapi_to_ldb = dsdb_syntax_FOOBAR_drsuapi_to_ldb,
.ldb_to_drsuapi = dsdb_syntax_FOOBAR_ldb_to_drsuapi,
+ .ldb_syntax = LDB_SYNTAX_DIRECTORY_STRING,
},{
/* not used in w2k3 schema */
.name = "Object(DN-String)",
diff --git a/source4/lib/ldb-samba/ldif_handlers.c b/source4/lib/ldb-samba/ldif_handlers.c
index fc87e6ca7a..d895f09757 100644
--- a/source4/lib/ldb-samba/ldif_handlers.c
+++ b/source4/lib/ldb-samba/ldif_handlers.c
@@ -729,6 +729,20 @@ const struct ldb_schema_syntax *ldb_samba_syntax_by_name(struct ldb_context *ldb
return s;
}
+const struct ldb_schema_syntax *ldb_samba_syntax_by_lDAPDisplayName(struct ldb_context *ldb, const char *name)
+{
+ uint32_t j;
+ const struct ldb_schema_syntax *s = NULL;
+
+ for (j=0; j < ARRAY_SIZE(samba_attributes); j++) {
+ if (strcmp(samba_attributes[j].name, name) == 0) {
+ s = ldb_samba_syntax_by_name(ldb, samba_attributes[j].syntax);
+ break;
+ }
+ }
+
+ return s;
+}
/*
register the samba ldif handlers
diff --git a/source4/lib/ldb/common/attrib_handlers.c b/source4/lib/ldb/common/attrib_handlers.c
index 80725ec04f..4869e3289c 100644
--- a/source4/lib/ldb/common/attrib_handlers.c
+++ b/source4/lib/ldb/common/attrib_handlers.c
@@ -105,7 +105,7 @@ int ldb_handler_fold(struct ldb_context *ldb, void *mem_ctx,
canonicalise a ldap Integer
rfc2252 specifies it should be in decimal form
*/
-int ldb_canonicalise_Integer(struct ldb_context *ldb, void *mem_ctx,
+static int ldb_canonicalise_Integer(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out)
{
char *end;
@@ -124,13 +124,45 @@ int ldb_canonicalise_Integer(struct ldb_context *ldb, void *mem_ctx,
/*
compare two Integers
*/
-int ldb_comparison_Integer(struct ldb_context *ldb, void *mem_ctx,
+static int ldb_comparison_Integer(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *v1, const struct ldb_val *v2)
{
return strtoll((char *)v1->data, NULL, 0) - strtoll((char *)v2->data, NULL, 0);
}
/*
+ canonicalise a ldap Boolean
+ rfc2252 specifies it should be either "TRUE" or "FALSE"
+*/
+static int ldb_canonicalise_Boolean(struct ldb_context *ldb, void *mem_ctx,
+ const struct ldb_val *in, struct ldb_val *out)
+{
+ if (strncasecmp((char *)in->data, "TRUE", in->length) == 0) {
+ out->data = (uint8_t *)talloc_strdup(mem_ctx, "TRUE");
+ out->length = 4;
+ } else if (strncasecmp((char *)in->data, "FALSE", in->length) == 0) {
+ out->data = (uint8_t *)talloc_strdup(mem_ctx, "FALSE");
+ out->length = 4;
+ } else {
+ return -1;
+ }
+ return 0;
+}
+
+/*
+ compare two Booleans
+*/
+static int ldb_comparison_Boolean(struct ldb_context *ldb, void *mem_ctx,
+ const struct ldb_val *v1, const struct ldb_val *v2)
+{
+ if (v1->length != v2->length) {
+ return v1->length - v2->length;
+ }
+ return strncasecmp((char *)v1->data, (char *)v2->data, v1->length);
+}
+
+
+/*
compare two binary blobs
*/
int ldb_comparison_binary(struct ldb_context *ldb, void *mem_ctx,
@@ -231,7 +263,7 @@ utf8str:
/*
canonicalise a attribute in DN format
*/
-int ldb_canonicalise_dn(struct ldb_context *ldb, void *mem_ctx,
+static int ldb_canonicalise_dn(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out)
{
struct ldb_dn *dn;
@@ -262,7 +294,7 @@ done:
/*
compare two dns
*/
-int ldb_comparison_dn(struct ldb_context *ldb, void *mem_ctx,
+static int ldb_comparison_dn(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *v1, const struct ldb_val *v2)
{
struct ldb_dn *dn1 = NULL, *dn2 = NULL;
@@ -287,7 +319,7 @@ int ldb_comparison_dn(struct ldb_context *ldb, void *mem_ctx,
/*
compare two utc time values. 1 second resolution
*/
-int ldb_comparison_utctime(struct ldb_context *ldb, void *mem_ctx,
+static int ldb_comparison_utctime(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *v1, const struct ldb_val *v2)
{
time_t t1, t2;
@@ -299,7 +331,7 @@ int ldb_comparison_utctime(struct ldb_context *ldb, void *mem_ctx,
/*
canonicalise a utc time
*/
-int ldb_canonicalise_utctime(struct ldb_context *ldb, void *mem_ctx,
+static int ldb_canonicalise_utctime(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out)
{
time_t t = ldb_string_to_time((char *)in->data);
@@ -356,7 +388,14 @@ static const struct ldb_schema_syntax ldb_standard_syntaxes[] = {
.ldif_write_fn = ldb_handler_copy,
.canonicalise_fn = ldb_canonicalise_utctime,
.comparison_fn = ldb_comparison_utctime
- }
+ },
+ {
+ .name = LDB_SYNTAX_BOOLEAN,
+ .ldif_read_fn = ldb_handler_copy,
+ .ldif_write_fn = ldb_handler_copy,
+ .canonicalise_fn = ldb_canonicalise_Boolean,
+ .comparison_fn = ldb_comparison_Boolean
+ },
};
diff --git a/source4/lib/ldb/common/ldb_attributes.c b/source4/lib/ldb/common/ldb_attributes.c
index 9fa0fb2ccd..79c5dd69de 100644
--- a/source4/lib/ldb/common/ldb_attributes.c
+++ b/source4/lib/ldb/common/ldb_attributes.c
@@ -118,8 +118,9 @@ static const struct ldb_schema_attribute ldb_attribute_default = {
/*
return the attribute handlers for a given attribute
*/
-const struct ldb_schema_attribute *ldb_schema_attribute_by_name(struct ldb_context *ldb,
- const char *name)
+static const struct ldb_schema_attribute *ldb_schema_attribute_by_name_internal(
+ struct ldb_context *ldb,
+ const char *name)
{
int i, e, b = 0, r;
const struct ldb_schema_attribute *def = &ldb_attribute_default;
@@ -152,6 +153,25 @@ const struct ldb_schema_attribute *ldb_schema_attribute_by_name(struct ldb_conte
return def;
}
+/*
+ return the attribute handlers for a given attribute
+*/
+const struct ldb_schema_attribute *ldb_schema_attribute_by_name(struct ldb_context *ldb,
+ const char *name)
+{
+ if (ldb->schema.attribute_handler_override) {
+ const struct ldb_schema_attribute *ret =
+ ldb->schema.attribute_handler_override(ldb,
+ ldb->schema.attribute_handler_override_private,
+ name);
+ if (ret) {
+ return ret;
+ }
+ }
+
+ return ldb_schema_attribute_by_name_internal(ldb, name);
+}
+
/*
add to the list of ldif handlers for this ldb context
@@ -161,7 +181,7 @@ void ldb_schema_attribute_remove(struct ldb_context *ldb, const char *name)
const struct ldb_schema_attribute *a;
int i;
- a = ldb_schema_attribute_by_name(ldb, name);
+ a = ldb_schema_attribute_by_name_internal(ldb, name);
if (a == NULL || a->name == NULL) {
return;
}
@@ -273,3 +293,14 @@ const struct ldb_dn_extended_syntax *ldb_dn_extended_syntax_by_name(struct ldb_c
return NULL;
}
+/*
+ set an attribute handler override function - used to delegate schema handling
+ to external code
+ */
+void ldb_schema_attribute_set_override_handler(struct ldb_context *ldb,
+ ldb_attribute_handler_override_fn_t override,
+ void *private_data)
+{
+ ldb->schema.attribute_handler_override_private = private_data;
+ ldb->schema.attribute_handler_override = override;
+}
diff --git a/source4/lib/ldb/configure.ac b/source4/lib/ldb/configure.ac
index b98cc88537..3e1a96018b 100644
--- a/source4/lib/ldb/configure.ac
+++ b/source4/lib/ldb/configure.ac
@@ -11,7 +11,7 @@ AC_DEFUN([SMB_MODULE_DEFAULT], [echo -n ""])
AC_DEFUN([SMB_LIBRARY_ENABLE], [echo -n ""])
AC_DEFUN([SMB_EXT_LIB], [echo -n ""])
AC_DEFUN([SMB_ENABLE], [echo -n ""])
-AC_INIT(ldb, 0.9.4)
+AC_INIT(ldb, 0.9.5)
AC_CONFIG_SRCDIR([common/ldb.c])
AC_LIBREPLACE_ALL_CHECKS
diff --git a/source4/lib/ldb/include/ldb.h b/source4/lib/ldb/include/ldb.h
index be41151409..1b6b41aa43 100644
--- a/source4/lib/ldb/include/ldb.h
+++ b/source4/lib/ldb/include/ldb.h
@@ -403,6 +403,15 @@ const struct ldb_dn_extended_syntax *ldb_dn_extended_syntax_by_name(struct ldb_c
#define LDB_SYNTAX_INTEGER "1.3.6.1.4.1.1466.115.121.1.27"
/**
+ LDAP attribute syntax for a boolean
+
+ This is the well-known LDAP attribute syntax for a boolean.
+
+ See <a href="http://www.ietf.org/rfc/rfc2252.txt">RFC 2252</a>, Section 4.3.2
+*/
+#define LDB_SYNTAX_BOOLEAN "1.3.6.1.4.1.1466.115.121.1.7"
+
+/**
LDAP attribute syntax for an octet string
This is the well-known LDAP attribute syntax for an octet string.
diff --git a/source4/lib/ldb/include/ldb_handlers.h b/source4/lib/ldb/include/ldb_handlers.h
index e1c14e679b..21fbcc33f8 100644
--- a/source4/lib/ldb/include/ldb_handlers.h
+++ b/source4/lib/ldb/include/ldb_handlers.h
@@ -31,37 +31,12 @@
* Author: Simo Sorce
*/
-
int ldb_handler_copy( struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out);
-
-int ldb_handler_fold( struct ldb_context *ldb, void *mem_ctx,
- const struct ldb_val *in, struct ldb_val *out);
-
-int ldb_canonicalise_Integer( struct ldb_context *ldb, void *mem_ctx,
- const struct ldb_val *in, struct ldb_val *out);
-
-int ldb_comparison_Integer( struct ldb_context *ldb, void *mem_ctx,
- const struct ldb_val *v1, const struct ldb_val *v2);
-
int ldb_comparison_binary( struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *v1, const struct ldb_val *v2);
-
-int ldb_comparison_fold( struct ldb_context *ldb, void *mem_ctx,
- const struct ldb_val *v1, const struct ldb_val *v2);
-
-int ldb_canonicalise_dn( struct ldb_context *ldb, void *mem_ctx,
+int db_handler_fold( struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out);
-
-int ldb_comparison_dn( struct ldb_context *ldb, void *mem_ctx,
- const struct ldb_val *v1, const struct ldb_val *v2);
-
-int ldb_comparison_objectclass( struct ldb_context *ldb, void *mem_ctx,
- const struct ldb_val *v1, const struct ldb_val *v2);
-
-int ldb_comparison_utctime( struct ldb_context *ldb, void *mem_ctx,
+int ldb_comparison_fold( struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *v1, const struct ldb_val *v2);
-int ldb_canonicalise_utctime( struct ldb_context *ldb, void *mem_ctx,
- const struct ldb_val *in, struct ldb_val *out);
-
diff --git a/source4/lib/ldb/include/ldb_module.h b/source4/lib/ldb/include/ldb_module.h
index e07fd43e27..d9950d6649 100644
--- a/source4/lib/ldb/include/ldb_module.h
+++ b/source4/lib/ldb/include/ldb_module.h
@@ -89,6 +89,13 @@ int ldb_schema_attribute_add(struct ldb_context *ldb,
const char *syntax);
void ldb_schema_attribute_remove(struct ldb_context *ldb, const char *name);
+/* we allow external code to override the name -> schema_attribute function */
+typedef const struct ldb_schema_attribute *(*ldb_attribute_handler_override_fn_t)(struct ldb_context *, void *, const char *);
+
+void ldb_schema_attribute_set_override_handler(struct ldb_context *ldb,
+ ldb_attribute_handler_override_fn_t override,
+ void *private_data);
+
/* The following definitions come from lib/ldb/common/ldb_controls.c */
struct ldb_control *get_control_from_list(struct ldb_control **controls, const char *oid);
int save_controls(struct ldb_control *exclude, struct ldb_request *req, struct ldb_control ***saver);
diff --git a/source4/lib/ldb/include/ldb_private.h b/source4/lib/ldb/include/ldb_private.h
index 2e8da9941c..6946ca2182 100644
--- a/source4/lib/ldb/include/ldb_private.h
+++ b/source4/lib/ldb/include/ldb_private.h
@@ -65,6 +65,9 @@ struct ldb_module {
schema related information needed for matching rules
*/
struct ldb_schema {
+ void *attribute_handler_override_private;
+ ldb_attribute_handler_override_fn_t attribute_handler_override;
+
/* attribute handling table */
unsigned num_attributes;
struct ldb_schema_attribute *attributes;
diff --git a/source4/lib/ldb/ldb_tdb/ldb_cache.c b/source4/lib/ldb/ldb_tdb/ldb_cache.c
index 43b965f239..042c1c9282 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_cache.c
+++ b/source4/lib/ldb/ldb_tdb/ldb_cache.c
@@ -32,6 +32,7 @@
*/
#include "ldb_tdb.h"
+#include "ldb_private.h"
#define LTDB_FLAG_CASE_INSENSITIVE (1<<0)
#define LTDB_FLAG_INTEGER (1<<1)
@@ -115,6 +116,12 @@ static int ltdb_attributes_load(struct ldb_module *module)
ldb = ldb_module_get_ctx(module);
+ if (ldb->schema.attribute_handler_override) {
+ /* we skip loading the @ATTRIBUTES record when a module is supplying
+ its own attribute handling */
+ return LDB_SUCCESS;
+ }
+
dn = ldb_dn_new(module, ldb, LTDB_ATTRIBUTES);
if (dn == NULL) goto failed;
diff --git a/source4/libcli/util/nterr.c b/source4/libcli/util/nterr.c
index 7f544b5922..c196433710 100644
--- a/source4/libcli/util/nterr.c
+++ b/source4/libcli/util/nterr.c
@@ -549,7 +549,7 @@ static const nt_err_code_struct nt_errs[] =
{ "NT_STATUS_OBJECTID_NOT_FOUND", NT_STATUS_OBJECTID_NOT_FOUND },
{ "NT_STATUS_DOWNGRADE_DETECTED", NT_STATUS_DOWNGRADE_DETECTED },
{ "NT_STATUS_DS_BUSY", NT_STATUS_DS_BUSY },
- { "XXX_INVALID_RANGE", NT_STATUS_WIN7_INVALID_RANGE },
+ { "NT_STATUS_INVALID_LOCK_RANGE", NT_STATUS_INVALID_LOCK_RANGE },
{ "STATUS_MORE_ENTRIES", STATUS_MORE_ENTRIES },
{ "STATUS_SOME_UNMAPPED", STATUS_SOME_UNMAPPED },
{ "STATUS_NOTIFY_CLEANUP", STATUS_NOTIFY_CLEANUP },
diff --git a/source4/libnet/libnet_vampire.c b/source4/libnet/libnet_vampire.c
index 4140de0686..bd88b8ec81 100644
--- a/source4/libnet/libnet_vampire.c
+++ b/source4/libnet/libnet_vampire.c
@@ -243,7 +243,7 @@ static NTSTATUS vampire_apply_schema(struct vampire_state *s,
sa = talloc_zero(s->self_made_schema, struct dsdb_attribute);
NT_STATUS_HAVE_NO_MEMORY(sa);
- status = dsdb_attribute_from_drsuapi(s->self_made_schema, &cur->object, s, sa);
+ status = dsdb_attribute_from_drsuapi(s->ldb, s->self_made_schema, &cur->object, s, sa);
if (!W_ERROR_IS_OK(status)) {
return werror_to_ntstatus(status);
}
diff --git a/source4/min_versions.m4 b/source4/min_versions.m4
index 0469fb827a..76bc1fe867 100644
--- a/source4/min_versions.m4
+++ b/source4/min_versions.m4
@@ -2,5 +2,5 @@
# if we use the ones installed in the system.
define(TDB_MIN_VERSION,1.1.4)
define(TALLOC_MIN_VERSION,1.3.0)
-define(LDB_REQUIRED_VERSION,0.9.4)
+define(LDB_REQUIRED_VERSION,0.9.5)
define(TEVENT_REQUIRED_VERSION,0.9.5)
diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c
index a2c4790611..1480e54403 100644
--- a/source4/scripting/python/pyglue.c
+++ b/source4/scripting/python/pyglue.c
@@ -212,7 +212,7 @@ static PyObject *py_dsdb_set_global_schema(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-static PyObject *py_dsdb_attach_schema_from_ldif_file(PyObject *self, PyObject *args)
+static PyObject *py_dsdb_attach_schema_from_ldif(PyObject *self, PyObject *args)
{
WERROR result;
char *pf, *df;
@@ -224,12 +224,35 @@ static PyObject *py_dsdb_attach_schema_from_ldif_file(PyObject *self, PyObject *
PyErr_LDB_OR_RAISE(py_ldb, ldb);
- result = dsdb_attach_schema_from_ldif_file(ldb, pf, df);
+ result = dsdb_attach_schema_from_ldif(ldb, pf, df);
PyErr_WERROR_IS_ERR_RAISE(result);
Py_RETURN_NONE;
}
+static PyObject *py_dsdb_convert_schema_to_openldap(PyObject *self, PyObject *args)
+{
+ char *target_str, *mapping;
+ PyObject *py_ldb;
+ struct ldb_context *ldb;
+ PyObject *ret;
+ char *retstr;
+
+ if (!PyArg_ParseTuple(args, "Oss", &py_ldb, &target_str, &mapping))
+ return NULL;
+
+ PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+ retstr = dsdb_convert_schema_to_openldap(ldb, target_str, mapping);
+ if (!retstr) {
+ PyErr_SetString(PyExc_RuntimeError, "dsdb_convert_schema_to_openldap failed");
+ return NULL;
+ }
+ ret = PyString_FromString(retstr);
+ talloc_free(retstr);
+ return ret;
+}
+
static PyMethodDef py_misc_methods[] = {
{ "generate_random_str", (PyCFunction)py_generate_random_str, METH_VARARGS,
"random_password(len) -> string\n"
@@ -255,7 +278,9 @@ static PyMethodDef py_misc_methods[] = {
NULL },
{ "dsdb_set_global_schema", (PyCFunction)py_dsdb_set_global_schema, METH_VARARGS,
NULL },
- { "dsdb_attach_schema_from_ldif_file", (PyCFunction)py_dsdb_attach_schema_from_ldif_file, METH_VARARGS,
+ { "dsdb_attach_schema_from_ldif", (PyCFunction)py_dsdb_attach_schema_from_ldif, METH_VARARGS,
+ NULL },
+ { "dsdb_convert_schema_to_openldap", (PyCFunction)py_dsdb_convert_schema_to_openldap, METH_VARARGS,
NULL },
{ NULL }
};
diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py
index c5827b96e0..3ecb758595 100644
--- a/source4/scripting/python/samba/__init__.py
+++ b/source4/scripting/python/samba/__init__.py
@@ -233,10 +233,12 @@ def check_all_substituted(text):
def valid_netbios_name(name):
"""Check whether a name is valid as a NetBIOS name. """
- # FIXME: There are probably more constraints here.
- # crh has a paragraph on this in his book (1.4.1.1)
+ # See crh's book (1.4.1.1)
if len(name) > 15:
return False
+ for x in name:
+ if not x.isalnum() and not x in " !#$%&'()-.@^_{}~":
+ return False
return True
version = glue.version
diff --git a/source4/scripting/python/samba/ms_schema.py b/source4/scripting/python/samba/ms_schema.py
new file mode 100644
index 0000000000..2e8050e503
--- /dev/null
+++ b/source4/scripting/python/samba/ms_schema.py
@@ -0,0 +1,275 @@
+#!/usr/bin/env python
+#
+# create schema.ldif (as a string) from WSPP documentation
+#
+# based on minschema.py and minschema_wspp
+#
+
+import re
+import base64
+
+bitFields = {}
+
+# ADTS: 2.2.9
+# bit positions as labeled in the docs
+bitFields["searchflags"] = {
+ 'fATTINDEX': 31, # IX
+ 'fPDNTATTINDEX': 30, # PI
+ 'fANR': 29, #AR
+ 'fPRESERVEONDELETE': 28, # PR
+ 'fCOPY': 27, # CP
+ 'fTUPLEINDEX': 26, # TP
+ 'fSUBTREEATTINDEX': 25, # ST
+ 'fCONFIDENTIAL': 24, # CF
+ 'fNEVERVALUEAUDIT': 23, # NV
+ 'fRODCAttribute': 22, # RO
+
+
+ # missing in ADTS but required by LDIF
+ 'fRODCFilteredAttribute': 22, # RO ?
+ 'fCONFIDENTAIL': 24, # typo
+ 'fRODCFILTEREDATTRIBUTE': 22 # case
+ }
+
+# ADTS: 2.2.10
+bitFields["systemflags"] = {
+ 'FLAG_ATTR_NOT_REPLICATED': 31, 'FLAG_CR_NTDS_NC': 31, # NR
+ 'FLAG_ATTR_REQ_PARTIAL_SET_MEMBER': 30, 'FLAG_CR_NTDS_DOMAIN': 30, # PS
+ 'FLAG_ATTR_IS_CONSTRUCTED': 29, 'FLAG_CR_NTDS_NOT_GC_REPLICATED': 29, # CS
+ 'FLAG_ATTR_IS_OPERATIONAL': 28, # OP
+ 'FLAG_SCHEMA_BASE_OBJECT': 27, # BS
+ 'FLAG_ATTR_IS_RDN': 26, # RD
+ 'FLAG_DISALLOW_MOVE_ON_DELETE': 6, # DE
+ 'FLAG_DOMAIN_DISALLOW_MOVE': 5, # DM
+ 'FLAG_DOMAIN_DISALLOW_RENAME': 4, # DR
+ 'FLAG_CONFIG_ALLOW_LIMITED_MOVE': 3, # AL
+ 'FLAG_CONFIG_ALLOW_MOVE': 2, # AM
+ 'FLAG_CONFIG_ALLOW_RENAME': 1, # AR
+ 'FLAG_DISALLOW_DELETE': 0 # DD
+ }
+
+# ADTS: 2.2.11
+bitFields["schemaflagsex"] = {
+ 'FLAG_ATTR_IS_CRITICAL': 31
+ }
+
+# ADTS: 3.1.1.2.2.2
+oMObjectClassBER = {
+ '1.3.12.2.1011.28.0.702' : base64.b64encode('\x2B\x0C\x02\x87\x73\x1C\x00\x85\x3E'),
+ '1.2.840.113556.1.1.1.12': base64.b64encode('\x2A\x86\x48\x86\xF7\x14\x01\x01\x01\x0C'),
+ '2.6.6.1.2.5.11.29' : base64.b64encode('\x56\x06\x01\x02\x05\x0B\x1D'),
+ '1.2.840.113556.1.1.1.11': base64.b64encode('\x2A\x86\x48\x86\xF7\x14\x01\x01\x01\x0B'),
+ '1.3.12.2.1011.28.0.714' : base64.b64encode('\x2B\x0C\x02\x87\x73\x1C\x00\x85\x4A'),
+ '1.3.12.2.1011.28.0.732' : base64.b64encode('\x2B\x0C\x02\x87\x73\x1C\x00\x85\x5C'),
+ '1.2.840.113556.1.1.1.6' : base64.b64encode('\x2A\x86\x48\x86\xF7\x14\x01\x01\x01\x06')
+}
+
+# separated by commas in docs, and must be broken up
+multivalued_attrs = set(["auxiliaryclass","maycontain","mustcontain","posssuperiors",
+ "systemauxiliaryclass","systemmaycontain","systemmustcontain",
+ "systemposssuperiors"])
+
+def __read_folded_line(f, buffer):
+ """ reads a line from an LDIF file, unfolding it"""
+ line = buffer
+
+ while True:
+ l = f.readline()
+
+ if l[:1] == " ":
+ # continued line
+
+ # cannot fold an empty line
+ assert(line != "" and line != "\n")
+
+ # preserves '\n '
+ line = line + l
+ else:
+ # non-continued line
+ if line == "":
+ line = l
+
+ if l == "":
+ # eof, definitely won't be folded
+ break
+ else:
+ # marks end of a folded line
+ # line contains the now unfolded line
+ # buffer contains the start of the next possibly folded line
+ buffer = l
+ break
+
+ return (line, buffer)
+
+
+def __read_raw_entries(f):
+ """reads an LDIF entry, only unfolding lines"""
+
+ # will not match options after the attribute type
+ attr_type_re = re.compile("^([A-Za-z]+[A-Za-z0-9-]*):")
+
+ buffer = ""
+
+ while True:
+ entry = []
+
+ while True:
+ (l, buffer) = __read_folded_line(f, buffer)
+
+ if l[:1] == "#":
+ continue
+
+ if l == "\n" or l == "":
+ break
+
+ m = attr_type_re.match(l)
+
+ if m:
+ if l[-1:] == "\n":
+ l = l[:-1]
+
+ entry.append(l)
+ else:
+ print >>sys.stderr, "Invalid line: %s" % l,
+ sys.exit(1)
+
+ if len(entry):
+ yield entry
+
+ if l == "":
+ break
+
+
+def fix_dn(dn):
+ """fix a string DN to use ${SCHEMADN}"""
+
+ # folding?
+ if dn.find("<RootDomainDN>") != -1:
+ dn = dn.replace("\n ", "")
+ dn = dn.replace(" ", "")
+ return dn.replace("CN=Schema,CN=Configuration,<RootDomainDN>", "${SCHEMADN}")
+ else:
+ return dn
+
+def __convert_bitfield(key, value):
+ """Evaluate the OR expression in 'value'"""
+ assert(isinstance(value, str))
+
+ value = value.replace("\n ", "")
+ value = value.replace(" ", "")
+
+ try:
+ # some attributes already have numeric values
+ o = int(value)
+ except ValueError:
+ o = 0
+ flags = value.split("|")
+ for f in flags:
+ bitpos = bitFields[key][f]
+ o = o | (1 << (31 - bitpos))
+
+ return str(o)
+
+def __write_ldif_one(entry):
+ """Write out entry as LDIF"""
+ out = []
+
+ for l in entry:
+ if isinstance(l[1], str):
+ vl = [l[1]]
+ else:
+ vl = l[1]
+
+ if l[0].lower() == 'omobjectclass':
+ out.append("%s:: %s" % (l[0], l[1]))
+ continue
+
+ for v in vl:
+ out.append("%s: %s" % (l[0], v))
+
+
+ return "\n".join(out)
+
+def __transform_entry(entry, objectClass):
+ """Perform transformations required to convert the LDIF-like schema
+ file entries to LDIF, including Samba-specific stuff."""
+
+ entry = [l.split(":", 1) for l in entry]
+
+ cn = ""
+
+ for l in entry:
+ key = l[0].lower()
+ l[1] = l[1].lstrip()
+ l[1] = l[1].rstrip()
+
+ if not cn and key == "cn":
+ cn = l[1]
+
+ if key in multivalued_attrs:
+ # unlike LDIF, these are comma-separated
+ l[1] = l[1].replace("\n ", "")
+ l[1] = l[1].replace(" ", "")
+
+ l[1] = l[1].split(",")
+
+ if key in bitFields:
+ l[1] = __convert_bitfield(key, l[1])
+
+ if key == "omobjectclass":
+ l[1] = oMObjectClassBER[l[1].strip()]
+
+ if isinstance(l[1], str):
+ l[1] = fix_dn(l[1])
+
+
+ assert(cn)
+ entry.insert(0, ["dn", "CN=%s,${SCHEMADN}" % cn])
+ entry.insert(1, ["objectClass", ["top", objectClass]])
+
+ for l in entry:
+ key = l[0].lower()
+
+ if key == "cn":
+ entry.remove(l)
+
+ return entry
+
+def __parse_schema_file(filename, objectClass):
+ """Load and transform a schema file."""
+
+ out = []
+
+ f = open(filename, "rU")
+ for entry in __read_raw_entries(f):
+ out.append(__write_ldif_one(__transform_entry(entry, objectClass)))
+
+ return "\n\n".join(out)
+
+
+def read_ms_schema(attr_file, classes_file, dump_attributes = True, dump_classes = True, debug = False):
+ """Read WSPP documentation-derived schema files."""
+
+ attr_ldif = ""
+ classes_ldif = ""
+
+ if dump_attributes:
+ attr_ldif = __parse_schema_file(attr_file, "attributeSchema")
+ if dump_classes:
+ classes_ldif = __parse_schema_file(classes_file, "classSchema")
+
+ return attr_ldif + "\n\n" + classes_ldif + "\n\n"
+
+if __name__ == '__main__':
+ import sys
+
+ try:
+ attr_file = sys.argv[1]
+ classes_file = sys.argv[2]
+ except IndexError:
+ print >>sys.stderr, "Usage: %s attr-file.txt classes-file.txt" % (sys.argv[0])
+ sys.exit(1)
+
+ print read_ms_schema(attr_file, classes_file)
+
+
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 896f237bd7..189c93a1fc 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -44,6 +44,7 @@ from samba.dcerpc import security
import urllib
from ldb import SCOPE_SUBTREE, SCOPE_ONELEVEL, SCOPE_BASE, LdbError, \
timestring, CHANGETYPE_MODIFY, CHANGETYPE_NONE
+from ms_schema import read_ms_schema
__docformat__ = "restructuredText"
@@ -783,10 +784,8 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
if serverrole == "domain controller":
samdb.set_invocation_id(invocationid)
- load_schema(setup_path, samdb, names.schemadn, names.netbiosname,
- names.configdn, names.sitename, names.serverdn,
- names.hostname)
-
+ schema_data = load_schema(setup_path, samdb, names.schemadn, names.netbiosname,
+ names.configdn, names.sitename, names.serverdn)
samdb.transaction_start()
try:
@@ -851,12 +850,8 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
"PREFIXMAP_B64": b64encode(prefixmap)
})
- message("Setting up sam.ldb Samba4 schema")
- setup_add_ldif(samdb, setup_path("schema_samba4.ldif"),
- {"SCHEMADN": names.schemadn })
- message("Setting up sam.ldb AD schema")
- setup_add_ldif(samdb, setup_path("schema.ldif"),
- {"SCHEMADN": names.schemadn})
+ message("Setting up sam.ldb schema")
+ samdb.add_ldif(schema_data)
setup_add_ldif(samdb, setup_path("aggregate_schema.ldif"),
{"SCHEMADN": names.schemadn})
@@ -1249,28 +1244,33 @@ def provision_backend(setup_dir=None, message=None,
except OSError:
pass
- schemadb = Ldb(schemadb_path, lp=lp)
+ schemadb = SamDB(schemadb_path, lp=lp)
+ schemadb.transaction_start()
+ try:
- prefixmap = open(setup_path("prefixMap.txt"), 'r').read()
+ prefixmap = open(setup_path("prefixMap.txt"), 'r').read()
- setup_add_ldif(schemadb, setup_path("provision_schema_basedn.ldif"),
- {"SCHEMADN": names.schemadn,
- "ACI": "#",
- })
- setup_modify_ldif(schemadb,
- setup_path("provision_schema_basedn_modify.ldif"), \
- {"SCHEMADN": names.schemadn,
- "NETBIOSNAME": names.netbiosname,
- "DEFAULTSITE": DEFAULTSITE,
- "CONFIGDN": names.configdn,
- "SERVERDN": names.serverdn,
- "PREFIXMAP_B64": b64encode(prefixmap)
- })
-
- setup_add_ldif(schemadb, setup_path("schema_samba4.ldif"),
- {"SCHEMADN": names.schemadn })
- setup_add_ldif(schemadb, setup_path("schema.ldif"),
- {"SCHEMADN": names.schemadn})
+ setup_add_ldif(schemadb, setup_path("provision_schema_basedn.ldif"),
+ {"SCHEMADN": names.schemadn,
+ "ACI": "#",
+ })
+ setup_modify_ldif(schemadb,
+ setup_path("provision_schema_basedn_modify.ldif"), \
+ {"SCHEMADN": names.schemadn,
+ "NETBIOSNAME": names.netbiosname,
+ "DEFAULTSITE": DEFAULTSITE,
+ "CONFIGDN": names.configdn,
+ "SERVERDN": names.serverdn,
+ "PREFIXMAP_B64": b64encode(prefixmap)
+ })
+
+ data = load_schema(setup_path, schemadb, names.schemadn, names.netbiosname,
+ names.configdn, DEFAULTSITE, names.serverdn)
+ schemadb.add_ldif(data)
+ except:
+ schemadb.transaction_cancel()
+ raise
+ schemadb.transaction_commit()
if ldap_backend_type == "fedora-ds":
if ldap_backend_port is not None:
@@ -1483,10 +1483,10 @@ def provision_backend(setup_dir=None, message=None,
ldapuser = "--username=samba-admin"
-
- schema_command = "bin/ad2oLschema --option=convert:target=" + ldap_backend_type + " -I " + setup_path(mapping) + " -H tdb://" + schemadb_path + " -O " + os.path.join(paths.ldapdir, backend_schema)
-
- os.system(schema_command)
+
+ backend_schema_data = schemadb.convert_schema_to_openldap(ldap_backend_type, open(setup_path(mapping), 'r').read())
+ assert backend_schema_data is not None
+ open(os.path.join(paths.ldapdir, backend_schema), 'w').write(backend_schema_data)
message("Your %s Backend for Samba4 is now configured, and is ready to be started" % ldap_backend_type)
message("Server Role: %s" % serverrole)
@@ -1649,7 +1649,7 @@ def create_krb5_conf(path, setup_path, dnsdomain, hostname, realm):
def load_schema(setup_path, samdb, schemadn, netbiosname, configdn, sitename,
- serverdn, servername):
+ serverdn):
"""Load schema for the SamDB.
:param samdb: Load a schema into a SamDB.
@@ -1658,9 +1658,10 @@ def load_schema(setup_path, samdb, schemadn, netbiosname, configdn, sitename,
:param netbiosname: NetBIOS name of the host.
:param configdn: DN of the configuration
:param serverdn: DN of the server
- :param servername: Host name of the server
+
+ Returns the schema data loaded, to avoid double-parsing when then needing to add it to the db
"""
- schema_data = open(setup_path("schema.ldif"), 'r').read()
+ schema_data = get_schema_data(setup_path, {"SCHEMADN": schemadn})
schema_data += open(setup_path("schema_samba4.ldif"), 'r').read()
schema_data = substitute_var(schema_data, {"SCHEMADN": schemadn})
check_all_substituted(schema_data)
@@ -1675,8 +1676,26 @@ def load_schema(setup_path, samdb, schemadn, netbiosname, configdn, sitename,
"DEFAULTSITE": sitename,
"PREFIXMAP_B64": prefixmap,
"SERVERDN": serverdn,
- "SERVERNAME": servername,
})
check_all_substituted(head_data)
samdb.attach_schema_from_ldif(head_data, schema_data)
+ return schema_data;
+
+def get_schema_data(setup_path, subst_vars = None):
+ """Get schema data from the AD schema files instead of schema.ldif.
+
+ :param setup_path: Setup path function.
+ :param subst_vars: Optional variables to substitute in the file.
+
+ Returns the schema data after substitution
+ """
+ # this data used to be read from schema.ldif
+
+ data = read_ms_schema(setup_path('ad-schema/MS-AD_Schema_2K8_Attributes.txt'),
+ setup_path('ad-schema/MS-AD_Schema_2K8_Classes.txt'))
+
+ if subst_vars is not None:
+ data = substitute_var(data, subst_vars)
+ check_all_substituted(data)
+ return data
diff --git a/source4/scripting/python/samba/samdb.py b/source4/scripting/python/samba/samdb.py
index b92a91e2ef..17b5450a3e 100644
--- a/source4/scripting/python/samba/samdb.py
+++ b/source4/scripting/python/samba/samdb.py
@@ -199,7 +199,10 @@ userPassword:: %s
glue.samdb_set_domain_sid(self, sid)
def attach_schema_from_ldif(self, pf, df):
- glue.dsdb_attach_schema_from_ldif_file(self, pf, df)
+ glue.dsdb_attach_schema_from_ldif(self, pf, df)
+
+ def convert_schema_to_openldap(self, target, mapping):
+ return glue.dsdb_convert_schema_to_openldap(self, target, mapping)
def set_invocation_id(self, invocation_id):
"""Set the invocation id for this SamDB handle.
diff --git a/source4/scripting/python/samba/tests/__init__.py b/source4/scripting/python/samba/tests/__init__.py
index b342b93c49..3f8ee8da32 100644
--- a/source4/scripting/python/samba/tests/__init__.py
+++ b/source4/scripting/python/samba/tests/__init__.py
@@ -26,6 +26,7 @@ import tempfile
import unittest
class LdbTestCase(unittest.TestCase):
+
"""Trivial test case for running tests against a LDB."""
def setUp(self):
self.filename = os.tempnam()
@@ -41,6 +42,7 @@ class LdbTestCase(unittest.TestCase):
class TestCaseInTempDir(unittest.TestCase):
+
def setUp(self):
super(TestCaseInTempDir, self).setUp()
self.tempdir = tempfile.mkdtemp()
@@ -52,6 +54,7 @@ class TestCaseInTempDir(unittest.TestCase):
class SubstituteVarTestCase(unittest.TestCase):
+
def test_empty(self):
self.assertEquals("", samba.substitute_var("", {}))
@@ -75,6 +78,7 @@ class SubstituteVarTestCase(unittest.TestCase):
class LdbExtensionTests(TestCaseInTempDir):
+
def test_searchone(self):
path = self.tempdir + "/searchone.ldb"
l = samba.Ldb(path)
@@ -90,9 +94,22 @@ cmdline_loadparm = None
cmdline_credentials = None
class RpcInterfaceTestCase(unittest.TestCase):
+
def get_loadparm(self):
assert cmdline_loadparm is not None
return cmdline_loadparm
def get_credentials(self):
return cmdline_credentials
+
+
+class ValidNetbiosNameTests(unittest.TestCase):
+
+ def test_valid(self):
+ self.assertTrue(valid_netbios_name("FOO"))
+
+ def test_too_long(self):
+ self.assertFalse(valid_netbios_name("FOO"*10))
+
+ def test_invalid_characters(self):
+ self.assertFalse(valid_netbios_name("()BLA"))
diff --git a/source4/selftest/tests.sh b/source4/selftest/tests.sh
index 821db06414..d18fffae5c 100755
--- a/source4/selftest/tests.sh
+++ b/source4/selftest/tests.sh
@@ -422,6 +422,7 @@ plantest "subunit.python" none $SUBUNITRUN subunit
plantest "rpcecho.python" dc:local $SUBUNITRUN samba.tests.dcerpc.rpcecho
plantest "winreg.python" dc:local $SUBUNITRUN -U\$USERNAME%\$PASSWORD samba.tests.dcerpc.registry
plantest "ldap.python" dc $PYTHON $samba4srcdir/lib/ldb/tests/python/ldap.py $CONFIGURATION \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
+plantest "possibleInferiors.python" dc $PYTHON $samba4srcdir/dsdb/samdb/ldb_modules/tests/possibleinferiors.py $CONFIGURATION ldap://\$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN
plantest "blackbox.samba3dump" none $PYTHON $samba4srcdir/scripting/bin/samba3dump $samba4srcdir/../testdata/samba3
rm -rf $PREFIX/upgrade
plantest "blackbox.upgrade" none $PYTHON $samba4srcdir/setup/upgrade $CONFIGURATION --targetdir=$PREFIX/upgrade $samba4srcdir/../testdata/samba3 ../testdata/samba3/smb.conf
diff --git a/source4/setup/ad-schema/MS-AD_Schema_Attributes_v20080618.txt b/source4/setup/ad-schema/MS-AD_Schema_2K8_Attributes.txt
index ab4f3999bd..9d69ee6227 100644
--- a/source4/setup/ad-schema/MS-AD_Schema_Attributes_v20080618.txt
+++ b/source4/setup/ad-schema/MS-AD_Schema_2K8_Attributes.txt
@@ -1,50 +1,12 @@
-# © 2008 Microsoft Corporation. All rights reserved
+#Intellectual Property Rights Notice for Protocol Documentation
+#• Copyrights. This protocol documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you may make copies of it in order to develop implementations of the protocols, and may distribute portions of it in your implementations of the protocols or your documentation as necessary to properly document the implementation. You may also distribute in your implementation, with or without modification, any schema, IDL’s, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the protocol documentation.
+#• No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.
+#• Patents. Microsoft has patents that may cover your implementations of the protocols. Neither this notice nor Microsoft's delivery of the documentation grants any licenses under those or any other Microsoft patents. However, the protocols may be covered by Microsoft’s Open Specification Promise (available here: http://www.microsoft.com/interop/osp). If you would prefer a written license, or if the protocols are not covered by the OSP, patent licenses are available by contacting protocol@microsoft.com.
+#• Trademarks. The names of companies and products contained in this documentation may be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights.
+#Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than specifically described above, whether by implication, estoppel, or otherwise.
+#Tools. This protocol documentation is intended for use in conjunction with publicly available standard specifications and network programming art, and assumes that the reader either is familiar with the aforementioned material or has immediate access to it. A protocol specification does not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments you are free to take advantage of them.
#
-# Intellectual Property Rights Notice for Protocol Documentation
-#
-# Copyrights.
-# This protocol documentation is covered by Microsoft
-# copyrights. Regardless of any other terms that are contained in the
-# terms of use for the Microsoft website that hosts this documentation,
-# you may make copies of it in order to develop implementations of the
-# protocols, and may distribute portions of it in your implementations
-# of the protocols or your documentation as necessary to properly
-# document the implementation. You may also distribute in your
-# implementation, with or without modification, any schema, IDL's, or
-# code samples that are included in the documentation. This permission
-# also applies to any documents that are referenced in the protocol
-# documentation.
-#
-# No Trade Secrets.
-# Microsoft does not claim any trade secret rights in this documentation.
-#
-# Patents.
-# Microsoft has patents that may cover your implementations of the
-# protocols. Neither this notice nor Microsoft's delivery of the
-# documentation grants any licenses under those or any other Microsoft
-# patents. However, the protocols may be covered by MicrosoftÂ’s Open
-# Specification Promise (available here:
-# http://www.microsoft.com/interop/osp). If you would prefer a written
-# license, or if the protocols are not covered by the OSP, patent
-# licenses are available by contacting protocol@microsoft.com.
-#
-# Trademarks.
-# The names of companies and products contained in this documentation
-# may be covered by trademarks or similar intellectual property
-# rights. This notice does not grant any licenses under those
-# rights.Reservation of Rights. All other rights are reserved, and this
-# notice does not grant any rights other than specifically described
-# above, whether by implication, estoppel, or otherwise.
-#
-# Tools.
-# This protocol documentation is intended for use in conjunction with
-# publicly available standard specifications and network programming
-# art, and assumes that the reader either is familiar with the
-# aforementioned material or has immediate access to it. A protocol
-# specification does not require the use of Microsoft programming tools
-# or programming environments in order for you to develop an
-# implementation. If you have access to Microsoft programming tools and
-# environments you are free to take advantage of them.
+
cn: Account-Expires
ldapDisplayName: accountExpires
@@ -59,6 +21,94 @@ attributeSecurityGuid: 4c164200-20c0-11d0-a768-00aa006e0529
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: Account-Name-History
+ldapDisplayName: accountNameHistory
+attributeId: 1.2.840.113556.1.4.1307
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 031952ec-3b72-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Aggregate-Token-Rate-Per-User
+ldapDisplayName: aCSAggregateTokenRatePerUser
+attributeId: 1.2.840.113556.1.4.760
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 7f56127d-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Allocable-RSVP-Bandwidth
+ldapDisplayName: aCSAllocableRSVPBandwidth
+attributeId: 1.2.840.113556.1.4.766
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 7f561283-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Cache-Timeout
+ldapDisplayName: aCSCacheTimeout
+attributeId: 1.2.840.113556.1.4.779
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 1cb355a1-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Direction
+ldapDisplayName: aCSDirection
+attributeId: 1.2.840.113556.1.4.757
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 7f56127a-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-DSBM-DeadTime
+ldapDisplayName: aCSDSBMDeadTime
+attributeId: 1.2.840.113556.1.4.778
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 1cb355a0-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-DSBM-Priority
+ldapDisplayName: aCSDSBMPriority
+attributeId: 1.2.840.113556.1.4.776
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 1cb3559e-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-DSBM-Refresh
+ldapDisplayName: aCSDSBMRefresh
+attributeId: 1.2.840.113556.1.4.777
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 1cb3559f-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: ACS-Enable-ACS-Service
ldapDisplayName: aCSEnableACSService
attributeId: 1.2.840.113556.1.4.770
@@ -70,6 +120,1107 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: ACS-Enable-RSVP-Accounting
+ldapDisplayName: aCSEnableRSVPAccounting
+attributeId: 1.2.840.113556.1.4.899
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: f072230e-aef5-11d1-bdcf-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Enable-RSVP-Message-Logging
+ldapDisplayName: aCSEnableRSVPMessageLogging
+attributeId: 1.2.840.113556.1.4.768
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: 7f561285-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Event-Log-Level
+ldapDisplayName: aCSEventLogLevel
+attributeId: 1.2.840.113556.1.4.769
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 7f561286-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Identity-Name
+ldapDisplayName: aCSIdentityName
+attributeId: 1.2.840.113556.1.4.784
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: dab029b6-ddf7-11d1-90a5-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-Aggregate-Peak-Rate-Per-User
+ldapDisplayName: aCSMaxAggregatePeakRatePerUser
+attributeId: 1.2.840.113556.1.4.897
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: f072230c-aef5-11d1-bdcf-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-Duration-Per-Flow
+ldapDisplayName: aCSMaxDurationPerFlow
+attributeId: 1.2.840.113556.1.4.761
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 7f56127e-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Maximum-SDU-Size
+ldapDisplayName: aCSMaximumSDUSize
+attributeId: 1.2.840.113556.1.4.1314
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 87a2d8f9-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-No-Of-Account-Files
+ldapDisplayName: aCSMaxNoOfAccountFiles
+attributeId: 1.2.840.113556.1.4.901
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: f0722310-aef5-11d1-bdcf-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-No-Of-Log-Files
+ldapDisplayName: aCSMaxNoOfLogFiles
+attributeId: 1.2.840.113556.1.4.774
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 1cb3559c-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-Peak-Bandwidth
+ldapDisplayName: aCSMaxPeakBandwidth
+attributeId: 1.2.840.113556.1.4.767
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 7f561284-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-Peak-Bandwidth-Per-Flow
+ldapDisplayName: aCSMaxPeakBandwidthPerFlow
+attributeId: 1.2.840.113556.1.4.759
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 7f56127c-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-Size-Of-RSVP-Account-File
+ldapDisplayName: aCSMaxSizeOfRSVPAccountFile
+attributeId: 1.2.840.113556.1.4.902
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: f0722311-aef5-11d1-bdcf-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-Size-Of-RSVP-Log-File
+ldapDisplayName: aCSMaxSizeOfRSVPLogFile
+attributeId: 1.2.840.113556.1.4.775
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 1cb3559d-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-Token-Bucket-Per-Flow
+ldapDisplayName: aCSMaxTokenBucketPerFlow
+attributeId: 1.2.840.113556.1.4.1313
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 81f6e0df-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Max-Token-Rate-Per-Flow
+ldapDisplayName: aCSMaxTokenRatePerFlow
+attributeId: 1.2.840.113556.1.4.758
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 7f56127b-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Minimum-Delay-Variation
+ldapDisplayName: aCSMinimumDelayVariation
+attributeId: 1.2.840.113556.1.4.1317
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 9c65329b-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Minimum-Latency
+ldapDisplayName: aCSMinimumLatency
+attributeId: 1.2.840.113556.1.4.1316
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 9517fefb-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Minimum-Policed-Size
+ldapDisplayName: aCSMinimumPolicedSize
+attributeId: 1.2.840.113556.1.4.1315
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 8d0e7195-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Non-Reserved-Max-SDU-Size
+ldapDisplayName: aCSNonReservedMaxSDUSize
+attributeId: 1.2.840.113556.1.4.1320
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: aec2cfe3-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Non-Reserved-Min-Policed-Size
+ldapDisplayName: aCSNonReservedMinPolicedSize
+attributeId: 1.2.840.113556.1.4.1321
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: b6873917-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Non-Reserved-Peak-Rate
+ldapDisplayName: aCSNonReservedPeakRate
+attributeId: 1.2.840.113556.1.4.1318
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: a331a73f-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Non-Reserved-Token-Size
+ldapDisplayName: aCSNonReservedTokenSize
+attributeId: 1.2.840.113556.1.4.1319
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: a916d7c9-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Non-Reserved-Tx-Limit
+ldapDisplayName: aCSNonReservedTxLimit
+attributeId: 1.2.840.113556.1.4.780
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 1cb355a2-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Non-Reserved-Tx-Size
+ldapDisplayName: aCSNonReservedTxSize
+attributeId: 1.2.840.113556.1.4.898
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: f072230d-aef5-11d1-bdcf-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Permission-Bits
+ldapDisplayName: aCSPermissionBits
+attributeId: 1.2.840.113556.1.4.765
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 7f561282-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Policy-Name
+ldapDisplayName: aCSPolicyName
+attributeId: 1.2.840.113556.1.4.772
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 1cb3559a-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Priority
+ldapDisplayName: aCSPriority
+attributeId: 1.2.840.113556.1.4.764
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 7f561281-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-RSVP-Account-Files-Location
+ldapDisplayName: aCSRSVPAccountFilesLocation
+attributeId: 1.2.840.113556.1.4.900
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: f072230f-aef5-11d1-bdcf-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-RSVP-Log-Files-Location
+ldapDisplayName: aCSRSVPLogFilesLocation
+attributeId: 1.2.840.113556.1.4.773
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 1cb3559b-56d0-11d1-a9c6-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Server-List
+ldapDisplayName: aCSServerList
+attributeId: 1.2.840.113556.1.4.1312
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 7cbd59a5-3b90-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Service-Type
+ldapDisplayName: aCSServiceType
+attributeId: 1.2.840.113556.1.4.762
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 7f56127f-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Time-Of-Day
+ldapDisplayName: aCSTimeOfDay
+attributeId: 1.2.840.113556.1.4.756
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 7f561279-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Total-No-Of-Flows
+ldapDisplayName: aCSTotalNoOfFlows
+attributeId: 1.2.840.113556.1.4.763
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 7f561280-5301-11d1-a9c5-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Additional-Information
+ldapDisplayName: notes
+attributeId: 1.2.840.113556.1.4.265
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 6d05fb41-246b-11d0-a9c8-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 32768
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Additional-Trusted-Service-Names
+ldapDisplayName: additionalTrustedServiceNames
+attributeId: 1.2.840.113556.1.4.889
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 032160be-9824-11d1-aec0-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Address
+ldapDisplayName: streetAddress
+attributeId: 1.2.840.113556.1.2.256
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: f0f8ff84-1191-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 1024
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14889
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Address-Book-Roots
+ldapDisplayName: addressBookRoots
+attributeId: 1.2.840.113556.1.4.1244
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: f70b6e48-06f4-11d2-aa53-00c04fd7d83a
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Address-Book-Roots2
+ldapDisplayName: addressBookRoots2
+attributeId: 1.2.840.113556.1.4.2046
+attributeSyntax: 2.5.5.1
+linkID: 2122
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: 508ca374-a511-4e4e-9f4f-856f61a6b7e4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Address-Entry-Display-Table
+ldapDisplayName: addressEntryDisplayTable
+attributeId: 1.2.840.113556.1.2.324
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 5fd42461-1262-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 32768
+mapiID: 32791
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Address-Entry-Display-Table-MSDOS
+ldapDisplayName: addressEntryDisplayTableMSDOS
+attributeId: 1.2.840.113556.1.2.400
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 5fd42462-1262-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 32768
+mapiID: 32839
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Address-Home
+ldapDisplayName: homePostalAddress
+attributeId: 1.2.840.113556.1.2.617
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 16775781-47f3-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 4096
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14941
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Address-Syntax
+ldapDisplayName: addressSyntax
+attributeId: 1.2.840.113556.1.2.255
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 5fd42463-1262-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 4096
+mapiID: 32792
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Address-Type
+ldapDisplayName: addressType
+attributeId: 1.2.840.113556.1.2.350
+attributeSyntax: 2.5.5.4
+omSyntax: 20
+isSingleValued: TRUE
+schemaIdGuid: 5fd42464-1262-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 32
+mapiID: 32840
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Admin-Context-Menu
+ldapDisplayName: adminContextMenu
+attributeId: 1.2.840.113556.1.4.614
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 553fd038-f32e-11d0-b0bc-00c04fd8dca6
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Admin-Count
+ldapDisplayName: adminCount
+attributeId: 1.2.840.113556.1.4.150
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: bf967918-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Admin-Description
+ldapDisplayName: adminDescription
+attributeId: 1.2.840.113556.1.2.226
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf967919-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 0
+rangeUpper: 1024
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
+mapiID: 32842
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Admin-Display-Name
+ldapDisplayName: adminDisplayName
+attributeId: 1.2.840.113556.1.2.194
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf96791a-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 256
+mapiID: 32843
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Admin-Multiselect-Property-Pages
+ldapDisplayName: adminMultiselectPropertyPages
+attributeId: 1.2.840.113556.1.4.1690
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 18f9b67d-5ac6-4b3b-97db-d0a406afb7ba
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Admin-Property-Pages
+ldapDisplayName: adminPropertyPages
+attributeId: 1.2.840.113556.1.4.562
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 52458038-ca6a-11d0-afff-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Allowed-Attributes
+ldapDisplayName: allowedAttributes
+attributeId: 1.2.840.113556.1.4.913
+attributeSyntax: 2.5.5.2
+omSyntax: 6
+isSingleValued: FALSE
+schemaIdGuid: 9a7ad940-ca53-11d1-bbd0-0080c76670c0
+systemOnly: TRUE
+searchFlags: 0
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Allowed-Attributes-Effective
+ldapDisplayName: allowedAttributesEffective
+attributeId: 1.2.840.113556.1.4.914
+attributeSyntax: 2.5.5.2
+omSyntax: 6
+isSingleValued: FALSE
+schemaIdGuid: 9a7ad941-ca53-11d1-bbd0-0080c76670c0
+systemOnly: TRUE
+searchFlags: 0
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Allowed-Child-Classes
+ldapDisplayName: allowedChildClasses
+attributeId: 1.2.840.113556.1.4.911
+attributeSyntax: 2.5.5.2
+omSyntax: 6
+isSingleValued: FALSE
+schemaIdGuid: 9a7ad942-ca53-11d1-bbd0-0080c76670c0
+systemOnly: TRUE
+searchFlags: 0
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Allowed-Child-Classes-Effective
+ldapDisplayName: allowedChildClassesEffective
+attributeId: 1.2.840.113556.1.4.912
+attributeSyntax: 2.5.5.2
+omSyntax: 6
+isSingleValued: FALSE
+schemaIdGuid: 9a7ad943-ca53-11d1-bbd0-0080c76670c0
+systemOnly: TRUE
+searchFlags: 0
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Alt-Security-Identities
+ldapDisplayName: altSecurityIdentities
+attributeId: 1.2.840.113556.1.4.867
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 00fbf30c-91fe-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: fATTINDEX
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: ANR
+ldapDisplayName: aNR
+attributeId: 1.2.840.113556.1.4.1208
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 45b01500-c419-11d1-bbc9-0080c76670c0
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Application-Name
+ldapDisplayName: applicationName
+attributeId: 1.2.840.113556.1.4.218
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: dd712226-10e4-11d0-a05f-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Applies-To
+ldapDisplayName: appliesTo
+attributeId: 1.2.840.113556.1.4.341
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 8297931d-86d3-11d0-afda-00c04fd930c9
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 36
+rangeUpper: 36
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: App-Schema-Version
+ldapDisplayName: appSchemaVersion
+attributeId: 1.2.840.113556.1.4.848
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 96a7dd65-9118-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Asset-Number
+ldapDisplayName: assetNumber
+attributeId: 1.2.840.113556.1.4.283
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: ba305f75-47e3-11d0-a1a6-00c04fd930c9
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Assistant
+ldapDisplayName: assistant
+attributeId: 1.2.840.113556.1.4.652
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: TRUE
+schemaIdGuid: 0296c11c-40da-11d1-a9c0-0000f80367c1
+systemOnly: FALSE
+searchFlags: fCOPY
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: associatedDomain
+ldapDisplayName: associatedDomain
+attributeId: 0.9.2342.19200300.100.1.37
+attributeSyntax: 2.5.5.5
+omSyntax: 22
+isSingleValued: FALSE
+schemaIdGuid: 3320fc38-c379-4c17-a510-1bdf6133c5da
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 256
+
+cn: associatedName
+ldapDisplayName: associatedName
+attributeId: 0.9.2342.19200300.100.1.38
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: f7fbfc45-85ab-42a4-a435-780e62f7858b
+systemOnly: FALSE
+searchFlags: 0
+
+cn: Assoc-NT-Account
+ldapDisplayName: assocNTAccount
+attributeId: 1.2.840.113556.1.4.1213
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 398f63c0-ca60-11d1-bbd1-0000f81f10c0
+systemOnly: FALSE
+searchFlags: 0
+
+cn: attributeCertificateAttribute
+ldapDisplayName: attributeCertificateAttribute
+attributeId: 2.5.4.58
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: FALSE
+schemaIdGuid: fa4693bb-7bc2-4cb9-81a8-c99c43b7905e
+systemOnly: FALSE
+searchFlags: 0
+
+cn: Attribute-Display-Names
+ldapDisplayName: attributeDisplayNames
+attributeId: 1.2.840.113556.1.4.748
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: cb843f80-48d9-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Attribute-ID
+ldapDisplayName: attributeID
+attributeId: 1.2.840.113556.1.2.30
+attributeSyntax: 2.5.5.2
+omSyntax: 6
+isSingleValued: TRUE
+schemaIdGuid: bf967922-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags:fPRESERVEONDELETE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Attribute-Security-GUID
+ldapDisplayName: attributeSecurityGUID
+attributeId: 1.2.840.113556.1.4.149
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: bf967924-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 16
+rangeUpper: 16
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Attribute-Syntax
+ldapDisplayName: attributeSyntax
+attributeId: 1.2.840.113556.1.2.32
+attributeSyntax: 2.5.5.2
+omSyntax: 6
+isSingleValued: TRUE
+schemaIdGuid: bf967925-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags:fPRESERVEONDELETE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Attribute-Types
+ldapDisplayName: attributeTypes
+attributeId: 2.5.21.5
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 9a7ad944-ca53-11d1-bbd0-0080c76670c0
+systemOnly: TRUE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: audio
+ldapDisplayName: audio
+attributeId: 0.9.2342.19200300.100.1.55
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: FALSE
+schemaIdGuid: d0e1d224-e1a0-42ce-a2da-793ba5244f35
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 250000
+showInAdvancedViewOnly: FALSE
+
+cn: Auditing-Policy
+ldapDisplayName: auditingPolicy
+attributeId: 1.2.840.113556.1.4.202
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 6da8a4fe-0e52-11d0-a286-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Authentication-Options
+ldapDisplayName: authenticationOptions
+attributeId: 1.2.840.113556.1.4.11
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: bf967928-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Authority-Revocation-List
+ldapDisplayName: authorityRevocationList
+attributeId: 2.5.4.38
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: FALSE
+schemaIdGuid: 1677578d-47f3-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 10485760
+mapiID: 32806
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Auxiliary-Class
+ldapDisplayName: auxiliaryClass
+attributeId: 1.2.840.113556.1.2.351
+attributeSyntax: 2.5.5.2
+omSyntax: 6
+isSingleValued: FALSE
+schemaIdGuid: bf96792c-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Bad-Password-Time
+ldapDisplayName: badPasswordTime
+attributeId: 1.2.840.113556.1.4.49
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: bf96792d-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Bad-Pwd-Count
+ldapDisplayName: badPwdCount
+attributeId: 1.2.840.113556.1.4.12
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: bf96792e-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Birth-Location
+ldapDisplayName: birthLocation
+attributeId: 1.2.840.113556.1.4.332
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 1f0075f9-7e40-11d0-afd6-00c04fd930c9
+systemOnly: FALSE
+searchFlags: fATTINDEX
+rangeLower: 32
+rangeUpper: 32
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: BootFile
+ldapDisplayName: bootFile
+attributeId: 1.3.6.1.1.1.1.24
+attributeSyntax: 2.5.5.5
+omSyntax: 22
+isSingleValued: FALSE
+schemaIdGuid: e3f3cb4e-0f20-42eb-9703-d2ff26e52667
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 10240
+
+cn: BootParameter
+ldapDisplayName: bootParameter
+attributeId: 1.3.6.1.1.1.1.23
+attributeSyntax: 2.5.5.5
+omSyntax: 22
+isSingleValued: FALSE
+schemaIdGuid: d72a0750-8c7c-416e-8714-e65f11e908be
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 10240
+
+cn: Bridgehead-Server-List-BL
+ldapDisplayName: bridgeheadServerListBL
+attributeId: 1.2.840.113556.1.4.820
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: d50c2cdb-8951-11d1-aebc-0000f80367c1
+systemOnly: TRUE
+searchFlags: 0
+linkID: 99
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Bridgehead-Transport-List
+ldapDisplayName: bridgeheadTransportList
+attributeId: 1.2.840.113556.1.4.819
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: d50c2cda-8951-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+linkID: 98
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: buildingName
+ldapDisplayName: buildingName
+attributeId: 0.9.2342.19200300.100.1.48
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: f87fa54b-b2c5-4fd7-88c0-daccb21d93c5
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 256
+
+cn: Builtin-Creation-Time
+ldapDisplayName: builtinCreationTime
+attributeId: 1.2.840.113556.1.4.13
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: bf96792f-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Builtin-Modified-Count
+ldapDisplayName: builtinModifiedCount
+attributeId: 1.2.840.113556.1.4.14
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: bf967930-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Business-Category
+ldapDisplayName: businessCategory
+attributeId: 2.5.4.15
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: bf967931-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 128
+mapiID: 32855
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Bytes-Per-Minute
+ldapDisplayName: bytesPerMinute
+attributeId: 1.2.840.113556.1.4.284
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: ba305f76-47e3-11d0-a1a6-00c04fd930c9
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: CA-Certificate
+ldapDisplayName: cACertificate
+attributeId: 2.5.4.37
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: FALSE
+schemaIdGuid: bf967932-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 32768
+mapiID: 32771
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: CA-Certificate-DN
+ldapDisplayName: cACertificateDN
+attributeId: 1.2.840.113556.1.4.697
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 963d2740-48be-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: CA-Connect
+ldapDisplayName: cAConnect
+attributeId: 1.2.840.113556.1.4.687
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 963d2735-48be-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Canonical-Name
+ldapDisplayName: canonicalName
+attributeId: 1.2.840.113556.1.4.916
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 9a7ad945-ca53-11d1-bbd0-0080c76670c0
+systemOnly: TRUE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Can-Upgrade-Script
+ldapDisplayName: canUpgradeScript
+attributeId: 1.2.840.113556.1.4.815
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: d9e18314-8939-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: carLicense
+ldapDisplayName: carLicense
+attributeId: 2.16.840.1.113730.3.1.1
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: d4159c92-957d-4a87-8a67-8d2934e01649
+systemOnly: FALSE
+searchFlags: 0
+showInAdvancedViewOnly: FALSE
+
cn: Catalogs
ldapDisplayName: catalogs
attributeId: 1.2.840.113556.1.4.675
@@ -177,49 +1328,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Common-Name
-ldapDisplayName: cn
-attributeId: 2.5.4.3
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bf96793f-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fATTINDEX
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 14863
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: ACS-Enable-RSVP-Accounting
-ldapDisplayName: aCSEnableRSVPAccounting
-attributeId: 1.2.840.113556.1.4.899
-attributeSyntax: 2.5.5.8
-omSyntax: 1
-isSingleValued: TRUE
-schemaIdGuid: f072230e-aef5-11d1-bdcf-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Text-Country
-ldapDisplayName: co
-attributeId: 1.2.840.113556.1.2.131
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: f0f8ffa7-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: fCOPY
-rangeLower: 1
-rangeUpper: 128
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 14886
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Code-Page
ldapDisplayName: codePage
attributeId: 1.2.840.113556.1.4.16
@@ -272,17 +1380,36 @@ rangeLower: 36
rangeUpper: 36
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: User-Comment
-ldapDisplayName: comment
-attributeId: 1.2.840.113556.1.4.156
+cn: Comment
+ldapDisplayName: info
+attributeId: 1.2.840.113556.1.2.81
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: bf967a6a-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: bf96793e-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
-attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
+rangeLower: 1
+rangeUpper: 1024
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 12292
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Common-Name
+ldapDisplayName: cn
+attributeId: 2.5.4.3
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf96793f-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fATTINDEX
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 14863
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: COM-Other-Prog-Id
@@ -335,17 +1462,6 @@ rangeLower: 36
rangeUpper: 36
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Enable-RSVP-Message-Logging
-ldapDisplayName: aCSEnableRSVPMessageLogging
-attributeId: 1.2.840.113556.1.4.768
-attributeSyntax: 2.5.5.8
-omSyntax: 1
-isSingleValued: TRUE
-schemaIdGuid: 7f561285-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: COM-Typelib-Id
ldapDisplayName: cOMTypelibId
attributeId: 1.2.840.113556.1.4.254
@@ -434,6 +1550,23 @@ attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: Country-Name
+ldapDisplayName: c
+attributeId: 2.5.4.6
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf967945-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fCOPY
+rangeLower: 1
+rangeUpper: 3
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 32873
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: Create-Dialog
ldapDisplayName: createDialog
attributeId: 1.2.840.113556.1.4.810
@@ -454,7 +1587,7 @@ isSingleValued: TRUE
schemaIdGuid: 2df90d73-009f-11d2-aa4c-00c04fd7d83a
systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Create-Wizard-Ext
@@ -468,17 +1601,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Event-Log-Level
-ldapDisplayName: aCSEventLogLevel
-attributeId: 1.2.840.113556.1.4.769
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 7f561286-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Creation-Time
ldapDisplayName: creationTime
attributeId: 1.2.840.113556.1.4.26
@@ -600,17 +1722,6 @@ rangeLower: 16
rangeUpper: 16
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Identity-Name
-ldapDisplayName: aCSIdentityName
-attributeId: 1.2.840.113556.1.4.784
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: dab029b6-ddf7-11d1-90a5-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: DBCS-Pwd
ldapDisplayName: dBCSPwd
attributeId: 1.2.840.113556.1.4.55
@@ -623,21 +1734,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Domain-Component
-ldapDisplayName: dc
-attributeId: 0.9.2342.19200300.100.1.25
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 19195a55-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 255
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: Default-Class-Store
ldapDisplayName: defaultClassStore
attributeId: 1.2.840.113556.1.4.213
@@ -736,17 +1832,6 @@ searchFlags: 0
rangeUpper: 10485760
mapiID: 35910
-cn: ACS-Max-Aggregate-Peak-Rate-Per-User
-ldapDisplayName: aCSMaxAggregatePeakRatePerUser
-attributeId: 1.2.840.113556.1.4.897
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: f072230c-aef5-11d1-bdcf-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Department
ldapDisplayName: department
attributeId: 1.2.840.113556.1.2.141
@@ -870,17 +1955,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Max-Duration-Per-Flow
-ldapDisplayName: aCSMaxDurationPerFlow
-attributeId: 1.2.840.113556.1.4.761
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 7f56127e-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: dhcp-Obj-Description
ldapDisplayName: dhcpObjDescription
attributeId: 1.2.840.113556.1.4.703
@@ -992,17 +2066,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Maximum-SDU-Size
-ldapDisplayName: aCSMaximumSDUSize
-attributeId: 1.2.840.113556.1.4.1314
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 87a2d8f9-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: dhcp-Type
ldapDisplayName: dhcpType
attributeId: 1.2.840.113556.1.4.699
@@ -1036,21 +2099,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Reports
-ldapDisplayName: directReports
-attributeId: 1.2.840.113556.1.2.436
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: bf967a1c-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: 0
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-linkID: 43
-mapiID: 32782
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-
cn: Display-Name
ldapDisplayName: displayName
attributeId: 1.2.840.113556.1.2.13
@@ -1083,22 +2131,6 @@ mapiID: 14847
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Obj-Dist-Name
-ldapDisplayName: distinguishedName
-attributeId: 2.5.4.49
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: bf9679e4-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags:fPRESERVEONDELETE
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 32828
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: DIT-Content-Rules
ldapDisplayName: dITContentRules
attributeId: 2.5.21.2
@@ -1108,7 +2140,7 @@ isSingleValued: FALSE
schemaIdGuid: 9a7ad946-ca53-11d1-bbd0-0080c76670c0
systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Division
@@ -1138,17 +2170,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ACS-Max-No-Of-Account-Files
-ldapDisplayName: aCSMaxNoOfAccountFiles
-attributeId: 1.2.840.113556.1.4.901
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: f0722310-aef5-11d1-bdcf-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: DMD-Name
ldapDisplayName: dmdName
attributeId: 1.2.840.113556.1.2.598
@@ -1272,17 +2293,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Max-No-Of-Log-Files
-ldapDisplayName: aCSMaxNoOfLogFiles
-attributeId: 1.2.840.113556.1.4.774
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 1cb3559c-56d0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: DNS-Tombstoned
ldapDisplayName: dNSTombstoned
attributeId: 1.2.840.113556.1.4.1414
@@ -1377,6 +2387,21 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: Domain-Component
+ldapDisplayName: dc
+attributeId: 0.9.2342.19200300.100.1.25
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 19195a55-6da0-11d0-afd3-00c04fd930c9
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 255
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: Domain-Cross-Ref
ldapDisplayName: domainCrossRef
attributeId: 1.2.840.113556.1.4.472
@@ -1402,28 +2427,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Account-Name-History
-ldapDisplayName: accountNameHistory
-attributeId: 1.2.840.113556.1.4.1307
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 031952ec-3b72-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ACS-Max-Peak-Bandwidth
-ldapDisplayName: aCSMaxPeakBandwidth
-attributeId: 1.2.840.113556.1.4.767
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 7f561284-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Domain-Identifier
ldapDisplayName: domainIdentifier
attributeId: 1.2.840.113556.1.4.755
@@ -1548,17 +2551,6 @@ isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ACS-Max-Peak-Bandwidth-Per-Flow
-ldapDisplayName: aCSMaxPeakBandwidthPerFlow
-attributeId: 1.2.840.113556.1.4.759
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 7f56127c-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: DS-Heuristics
ldapDisplayName: dSHeuristics
attributeId: 1.2.840.113556.1.2.212
@@ -1629,6 +2621,22 @@ attributeSecurityGuid: a29b89fd-c7e8-11d0-9bae-00c04fd92ef5
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: E-mail-Addresses
+ldapDisplayName: mail
+attributeId: 0.9.2342.19200300.100.1.3
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf967961-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fATTINDEX
+rangeLower: 0
+rangeUpper: 256
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 14846
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: Employee-ID
ldapDisplayName: employeeID
attributeId: 1.2.840.113556.1.4.35
@@ -1683,17 +2691,6 @@ mapiID: 35873
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ACS-Max-Size-Of-RSVP-Account-File
-ldapDisplayName: aCSMaxSizeOfRSVPAccountFile
-attributeId: 1.2.840.113556.1.4.902
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: f0722311-aef5-11d1-bdcf-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Enabled-Connection
ldapDisplayName: enabledConnection
attributeId: 1.2.840.113556.1.4.36
@@ -1739,7 +2736,7 @@ isSingleValued: FALSE
schemaIdGuid: 9a7ad947-ca53-11d1-bbd0-0080c76670c0
systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Extended-Chars-Allowed
@@ -1754,7 +2751,6 @@ searchFlags: 0
mapiID: 32935
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-systemOnly: TRUE
cn: Extended-Class-Info
ldapDisplayName: extendedClassInfo
@@ -1765,7 +2761,7 @@ isSingleValued: FALSE
schemaIdGuid: 9a7ad948-ca53-11d1-bbd0-0080c76670c0
systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Extension-Name
@@ -1819,17 +2815,6 @@ systemOnly: FALSE
searchFlags: fATTINDEX
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Max-Size-Of-RSVP-Log-File
-ldapDisplayName: aCSMaxSizeOfRSVPLogFile
-attributeId: 1.2.840.113556.1.4.775
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 1cb3559d-56d0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Flags
ldapDisplayName: flags
attributeId: 1.2.840.113556.1.4.38
@@ -1898,7 +2883,7 @@ isSingleValued: FALSE
schemaIdGuid: 9a7ad949-ca53-11d1-bbd0-0080c76670c0
systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: From-Server
@@ -1954,17 +2939,6 @@ rangeLower: 0
rangeUpper: 32
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Max-Token-Bucket-Per-Flow
-ldapDisplayName: aCSMaxTokenBucketPerFlow
-attributeId: 1.2.840.113556.1.4.1313
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 81f6e0df-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: FRS-Control-Inbound-Backlog
ldapDisplayName: fRSControlInboundBacklog
attributeId: 1.2.840.113556.1.4.872
@@ -2090,17 +3064,6 @@ linkID: 104
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-cn: ACS-Max-Token-Rate-Per-Flow
-ldapDisplayName: aCSMaxTokenRatePerFlow
-attributeId: 1.2.840.113556.1.4.758
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 7f56127b-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: FRS-Member-Reference-BL
ldapDisplayName: fRSMemberReferenceBL
attributeId: 1.2.840.113556.1.4.876
@@ -2227,17 +3190,6 @@ rangeLower: 0
rangeUpper: 2048
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Minimum-Delay-Variation
-ldapDisplayName: aCSMinimumDelayVariation
-attributeId: 1.2.840.113556.1.4.1317
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 9c65329b-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: FRS-Time-Last-Command
ldapDisplayName: fRSTimeLastCommand
attributeId: 1.2.840.113556.1.4.880
@@ -2358,17 +3310,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Minimum-Latency
-ldapDisplayName: aCSMinimumLatency
-attributeId: 1.2.840.113556.1.4.1316
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 9517fefb-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Generation-Qualifier
ldapDisplayName: generationQualifier
attributeId: 2.5.4.44
@@ -2504,17 +3445,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Minimum-Policed-Size
-ldapDisplayName: aCSMinimumPolicedSize
-attributeId: 1.2.840.113556.1.4.1315
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 8d0e7195-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: GP-Link
ldapDisplayName: gPLink
attributeId: 1.2.840.113556.1.4.891
@@ -2640,17 +3570,6 @@ mapiID: 32826
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ACS-Non-Reserved-Max-SDU-Size
-ldapDisplayName: aCSNonReservedMaxSDUSize
-attributeId: 1.2.840.113556.1.4.1320
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: aec2cfe3-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Help-Data32
ldapDisplayName: helpData32
attributeId: 1.2.840.113556.1.2.9
@@ -2717,37 +3636,6 @@ attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Phone-Home-Primary
-ldapDisplayName: homePhone
-attributeId: 0.9.2342.19200300.100.1.20
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: f0f8ffa1-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14857
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Address-Home
-ldapDisplayName: homePostalAddress
-attributeId: 1.2.840.113556.1.2.617
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 16775781-47f3-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 4096
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14941
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: host
ldapDisplayName: host
attributeId: 0.9.2342.19200300.100.1.9
@@ -2785,28 +3673,6 @@ rangeLower: 0
rangeUpper: 2048
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Aggregate-Token-Rate-Per-User
-ldapDisplayName: aCSAggregateTokenRatePerUser
-attributeId: 1.2.840.113556.1.4.760
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 7f56127d-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ACS-Non-Reserved-Min-Policed-Size
-ldapDisplayName: aCSNonReservedMinPolicedSize
-attributeId: 1.2.840.113556.1.4.1321
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: b6873917-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Implemented-Categories
ldapDisplayName: implementedCategories
attributeId: 1.2.840.113556.1.4.320
@@ -2831,21 +3697,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Comment
-ldapDisplayName: info
-attributeId: 1.2.840.113556.1.2.81
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bf96793e-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 1024
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 12292
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Initial-Auth-Incoming
ldapDisplayName: initialAuthIncoming
attributeId: 1.2.840.113556.1.4.539
@@ -2937,17 +3788,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ACS-Non-Reserved-Peak-Rate
-ldapDisplayName: aCSNonReservedPeakRate
-attributeId: 1.2.840.113556.1.4.1318
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: a331a73f-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Inter-Site-Topology-Generator
ldapDisplayName: interSiteTopologyGenerator
attributeId: 1.2.840.113556.1.4.1246
@@ -3019,20 +3859,6 @@ systemOnly: FALSE
searchFlags: 0
rangeUpper: 128
-cn: Phone-Ip-Primary
-ldapDisplayName: ipPhone
-attributeId: 1.2.840.113556.1.4.721
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 4d146e4a-48d4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: IpProtocolNumber
ldapDisplayName: ipProtocolNumber
attributeId: 1.3.6.1.1.1.1.17
@@ -3065,17 +3891,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Non-Reserved-Token-Size
-ldapDisplayName: aCSNonReservedTokenSize
-attributeId: 1.2.840.113556.1.4.1319
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: a916d7c9-3b90-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Ipsec-Filter-Reference
ldapDisplayName: ipsecFilterReference
attributeId: 1.2.840.113556.1.4.629
@@ -3192,17 +4007,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Non-Reserved-Tx-Limit
-ldapDisplayName: aCSNonReservedTxLimit
-attributeId: 1.2.840.113556.1.4.780
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 1cb355a2-56d0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: IpServicePort
ldapDisplayName: ipServicePort
attributeId: 1.3.6.1.1.1.1.15
@@ -3273,6 +4077,22 @@ systemOnly: TRUE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: Is-Member-Of-DL
+ldapDisplayName: memberOf
+attributeId: 1.2.840.113556.1.2.102
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: bf967991-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: fCOPY
+attributeSecurityGuid: bc0ac240-79a9-11d0-9020-00c04fc2d4cf
+linkID: 3
+mapiID: 32776
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: Is-Member-Of-Partial-Attribute-Set
ldapDisplayName: isMemberOfPartialAttributeSet
attributeId: 1.2.840.113556.1.4.639
@@ -3322,17 +4142,6 @@ systemOnly: FALSE
searchFlags: 0
showInAdvancedViewOnly: FALSE
-cn: ACS-Non-Reserved-Tx-Size
-ldapDisplayName: aCSNonReservedTxSize
-attributeId: 1.2.840.113556.1.4.898
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: f072230d-aef5-11d1-bdcf-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Keywords
ldapDisplayName: keywords
attributeId: 1.2.840.113556.1.4.48
@@ -3359,23 +4168,6 @@ systemOnly: FALSE
searchFlags: 0
mapiID: 32963
-cn: Locality-Name
-ldapDisplayName: l
-attributeId: 2.5.4.7
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bf9679a2-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fCOPY | fATTINDEX
-rangeLower: 1
-rangeUpper: 128
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14887
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: labeledURI
ldapDisplayName: labeledURI
attributeId: 1.3.6.1.4.1.250.1.57
@@ -3456,22 +4248,11 @@ omSyntax: 65
isSingleValued: TRUE
schemaIdGuid: c0e20a04-0e5a-4ff3-9482-5efeaecd7060
systemOnly: FALSE
-searchFlags: 0
+searchFlags: fATTINDEX
attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ACS-Permission-Bits
-ldapDisplayName: aCSPermissionBits
-attributeId: 1.2.840.113556.1.4.765
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 7f561282-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Last-Set-Time
ldapDisplayName: lastSetTime
attributeId: 1.2.840.113556.1.4.53
@@ -3535,28 +4316,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: LSA-Creation-Time
-ldapDisplayName: lSACreationTime
-attributeId: 1.2.840.113556.1.4.66
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf9679ad-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: LSA-Modified-Count
-ldapDisplayName: lSAModifiedCount
-attributeId: 1.2.840.113556.1.4.67
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf9679ae-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Legacy-Exchange-DN
ldapDisplayName: legacyExchangeDN
attributeId: 1.2.840.113556.1.4.655
@@ -3597,17 +4356,6 @@ rangeLower: 0
rangeUpper: 16
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Policy-Name
-ldapDisplayName: aCSPolicyName
-attributeId: 1.2.840.113556.1.4.772
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 1cb3559a-56d0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Lm-Pwd-History
ldapDisplayName: lmPwdHistory
attributeId: 1.2.840.113556.1.4.160
@@ -3631,6 +4379,23 @@ systemOnly: FALSE
searchFlags: fCOPY
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: Locality-Name
+ldapDisplayName: l
+attributeId: 2.5.4.7
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf9679a2-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fCOPY | fATTINDEX
+rangeLower: 1
+rangeUpper: 128
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14887
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: Localization-Display-Id
ldapDisplayName: localizationDisplayId
attributeId: 1.2.840.113556.1.4.1353
@@ -3732,17 +4497,6 @@ attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ACS-Priority
-ldapDisplayName: aCSPriority
-attributeId: 1.2.840.113556.1.4.764
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 7f561281-5301-11d1-a9c5-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Lockout-Time
ldapDisplayName: lockoutTime
attributeId: 1.2.840.113556.1.4.662
@@ -3766,6 +4520,20 @@ systemOnly: FALSE
searchFlags: 0
rangeUpper: 1024
+cn: Logo
+ldapDisplayName: thumbnailLogo
+attributeId: 2.16.840.1.113730.3.1.36
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: bf9679a9-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 32767
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: Logon-Count
ldapDisplayName: logonCount
attributeId: 1.2.840.113556.1.4.169
@@ -3804,1051 +4572,651 @@ searchFlags: fCOPY
attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-RSVP-Account-Files-Location
-ldapDisplayName: aCSRSVPAccountFilesLocation
-attributeId: 1.2.840.113556.1.4.900
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: f072230f-aef5-11d1-bdcf-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ACS-RSVP-Log-Files-Location
-ldapDisplayName: aCSRSVPLogFilesLocation
-attributeId: 1.2.840.113556.1.4.773
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: LSA-Creation-Time
+ldapDisplayName: lSACreationTime
+attributeId: 1.2.840.113556.1.4.66
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: 1cb3559b-56d0-11d1-a9c6-0000f80367c1
+schemaIdGuid: bf9679ad-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Allocable-RSVP-Bandwidth
-ldapDisplayName: aCSAllocableRSVPBandwidth
-attributeId: 1.2.840.113556.1.4.766
+cn: LSA-Modified-Count
+ldapDisplayName: lSAModifiedCount
+attributeId: 1.2.840.113556.1.4.67
attributeSyntax: 2.5.5.16
omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: 7f561283-5301-11d1-a9c5-0000f80367c1
+schemaIdGuid: bf9679ae-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Server-List
-ldapDisplayName: aCSServerList
-attributeId: 1.2.840.113556.1.4.1312
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: MacAddress
+ldapDisplayName: macAddress
+attributeId: 1.3.6.1.1.1.1.22
+attributeSyntax: 2.5.5.5
+omSyntax: 22
isSingleValued: FALSE
-schemaIdGuid: 7cbd59a5-3b90-11d2-90cc-00c04fd91ab1
+schemaIdGuid: e6a522dd-9770-43e1-89de-1de5044328f7
systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+rangeUpper: 128
-cn: ACS-Service-Type
-ldapDisplayName: aCSServiceType
-attributeId: 1.2.840.113556.1.4.762
+cn: Machine-Architecture
+ldapDisplayName: machineArchitecture
+attributeId: 1.2.840.113556.1.4.68
attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 7f56127f-5301-11d1-a9c5-0000f80367c1
+omSyntax: 10
+isSingleValued: FALSE
+schemaIdGuid: bf9679af-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Time-Of-Day
-ldapDisplayName: aCSTimeOfDay
-attributeId: 1.2.840.113556.1.4.756
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Machine-Password-Change-Interval
+ldapDisplayName: machinePasswordChangeInterval
+attributeId: 1.2.840.113556.1.4.520
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: 7f561279-5301-11d1-a9c5-0000f80367c1
+schemaIdGuid: c9b6358e-bb38-11d0-afef-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+attributeSecurityGuid: a29b89fe-c7e8-11d0-9bae-00c04fd92ef5
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Total-No-Of-Flows
-ldapDisplayName: aCSTotalNoOfFlows
-attributeId: 1.2.840.113556.1.4.763
+cn: Machine-Role
+ldapDisplayName: machineRole
+attributeId: 1.2.840.113556.1.4.71
attributeSyntax: 2.5.5.9
-omSyntax: 2
+omSyntax: 10
isSingleValued: TRUE
-schemaIdGuid: 7f561280-5301-11d1-a9c5-0000f80367c1
+schemaIdGuid: bf9679b2-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Additional-Trusted-Service-Names
-ldapDisplayName: additionalTrustedServiceNames
-attributeId: 1.2.840.113556.1.4.889
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Machine-Wide-Policy
+ldapDisplayName: machineWidePolicy
+attributeId: 1.2.840.113556.1.4.459
+attributeSyntax: 2.5.5.10
+omSyntax: 4
isSingleValued: FALSE
-schemaIdGuid: 032160be-9824-11d1-aec0-0000f80367c1
+schemaIdGuid: 80a67e4f-9f22-11d0-afdd-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
+attributeSecurityGuid: a29b8a01-c7e8-11d0-9bae-00c04fd92ef5
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Address-Book-Roots
-ldapDisplayName: addressBookRoots
-attributeId: 1.2.840.113556.1.4.1244
+cn: Managed-By
+ldapDisplayName: managedBy
+attributeId: 1.2.840.113556.1.4.653
attributeSyntax: 2.5.5.1
omSyntax: 127
omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: f70b6e48-06f4-11d2-aa53-00c04fd7d83a
+isSingleValued: TRUE
+schemaIdGuid: 0296c120-40da-11d1-a9c0-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+linkID: 72
+mapiID: 32780
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Address-Book-Roots2
-ldapDisplayName: addressBookRoots2
-attributeId: 1.2.840.113556.1.4.2046
+cn: Managed-Objects
+ldapDisplayName: managedObjects
+attributeId: 1.2.840.113556.1.4.654
attributeSyntax: 2.5.5.1
-linkID: 2122
omSyntax: 127
omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: FALSE
-schemaIdGuid: 508ca374-a511-4e4e-9f4f-856f61a6b7e4
-systemOnly: FALSE
+schemaIdGuid: 0296c124-40da-11d1-a9c0-0000f80367c1
+systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+linkID: 73
+mapiID: 32804
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-cn: Address-Entry-Display-Table
-ldapDisplayName: addressEntryDisplayTable
-attributeId: 1.2.840.113556.1.2.324
-attributeSyntax: 2.5.5.10
-omSyntax: 4
+cn: Manager
+ldapDisplayName: manager
+attributeId: 0.9.2342.19200300.100.1.10
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: TRUE
-schemaIdGuid: 5fd42461-1262-11d0-a060-00aa006c33ed
+schemaIdGuid: bf9679b5-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 32768
-mapiID: 32791
+searchFlags: fCOPY
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+linkID: 42
+mapiID: 32773
+isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Address-Entry-Display-Table-MSDOS
-ldapDisplayName: addressEntryDisplayTableMSDOS
-attributeId: 1.2.840.113556.1.2.400
-attributeSyntax: 2.5.5.10
-omSyntax: 4
+cn: MAPI-ID
+ldapDisplayName: mAPIID
+attributeId: 1.2.840.113556.1.2.49
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: 5fd42462-1262-11d0-a060-00aa006c33ed
-systemOnly: FALSE
+schemaIdGuid: bf9679b7-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
searchFlags: 0
-rangeLower: 1
-rangeUpper: 32768
-mapiID: 32839
+mapiID: 32974
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Address-Syntax
-ldapDisplayName: addressSyntax
-attributeId: 1.2.840.113556.1.2.255
+cn: Marshalled-Interface
+ldapDisplayName: marshalledInterface
+attributeId: 1.2.840.113556.1.4.72
attributeSyntax: 2.5.5.10
omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 5fd42463-1262-11d0-a060-00aa006c33ed
+isSingleValued: FALSE
+schemaIdGuid: bf9679b9-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
-rangeLower: 1
-rangeUpper: 4096
-mapiID: 32792
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Address-Type
-ldapDisplayName: addressType
-attributeId: 1.2.840.113556.1.2.350
-attributeSyntax: 2.5.5.4
-omSyntax: 20
-isSingleValued: TRUE
-schemaIdGuid: 5fd42464-1262-11d0-a060-00aa006c33ed
-systemOnly: FALSE
+cn: Mastered-By
+ldapDisplayName: masteredBy
+attributeId: 1.2.840.113556.1.4.1409
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: e48e64e0-12c9-11d3-9102-00c04fd91ab1
+systemOnly: TRUE
searchFlags: 0
-rangeLower: 1
-rangeUpper: 32
-mapiID: 32840
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+linkID: 77
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ACS-Cache-Timeout
-ldapDisplayName: aCSCacheTimeout
-attributeId: 1.2.840.113556.1.4.779
-attributeSyntax: 2.5.5.9
-omSyntax: 2
+cn: Max-Pwd-Age
+ldapDisplayName: maxPwdAge
+attributeId: 1.2.840.113556.1.4.74
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: 1cb355a1-56d0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Admin-Context-Menu
-ldapDisplayName: adminContextMenu
-attributeId: 1.2.840.113556.1.4.614
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 553fd038-f32e-11d0-b0bc-00c04fd8dca6
+schemaIdGuid: bf9679bb-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Admin-Count
-ldapDisplayName: adminCount
-attributeId: 1.2.840.113556.1.4.150
-attributeSyntax: 2.5.5.9
-omSyntax: 2
+cn: Max-Renew-Age
+ldapDisplayName: maxRenewAge
+attributeId: 1.2.840.113556.1.4.75
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: bf967918-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: bf9679bc-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Admin-Description
-ldapDisplayName: adminDescription
-attributeId: 1.2.840.113556.1.2.226
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Max-Storage
+ldapDisplayName: maxStorage
+attributeId: 1.2.840.113556.1.4.76
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: bf967919-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: bf9679bd-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 1024
-attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-mapiID: 32842
+searchFlags: fCOPY
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Admin-Display-Name
-ldapDisplayName: adminDisplayName
-attributeId: 1.2.840.113556.1.2.194
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Max-Ticket-Age
+ldapDisplayName: maxTicketAge
+attributeId: 1.2.840.113556.1.4.77
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: bf96791a-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 256
-mapiID: 32843
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Admin-Multiselect-Property-Pages
-ldapDisplayName: adminMultiselectPropertyPages
-attributeId: 1.2.840.113556.1.4.1690
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 18f9b67d-5ac6-4b3b-97db-d0a406afb7ba
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Admin-Property-Pages
-ldapDisplayName: adminPropertyPages
-attributeId: 1.2.840.113556.1.4.562
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 52458038-ca6a-11d0-afff-0000f80367c1
+schemaIdGuid: bf9679be-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Allowed-Attributes
-ldapDisplayName: allowedAttributes
-attributeId: 1.2.840.113556.1.4.913
-attributeSyntax: 2.5.5.2
-omSyntax: 6
-isSingleValued: FALSE
-schemaIdGuid: 9a7ad940-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-searchFlags: 0
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Allowed-Attributes-Effective
-ldapDisplayName: allowedAttributesEffective
-attributeId: 1.2.840.113556.1.4.914
-attributeSyntax: 2.5.5.2
-omSyntax: 6
-isSingleValued: FALSE
-schemaIdGuid: 9a7ad941-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-searchFlags: 0
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Allowed-Child-Classes
-ldapDisplayName: allowedChildClasses
-attributeId: 1.2.840.113556.1.4.911
-attributeSyntax: 2.5.5.2
-omSyntax: 6
-isSingleValued: FALSE
-schemaIdGuid: 9a7ad942-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-searchFlags: 0
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Allowed-Child-Classes-Effective
-ldapDisplayName: allowedChildClassesEffective
-attributeId: 1.2.840.113556.1.4.912
+cn: May-Contain
+ldapDisplayName: mayContain
+attributeId: 1.2.840.113556.1.2.25
attributeSyntax: 2.5.5.2
omSyntax: 6
isSingleValued: FALSE
-schemaIdGuid: 9a7ad943-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-searchFlags: 0
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: ACS-Direction
-ldapDisplayName: aCSDirection
-attributeId: 1.2.840.113556.1.4.757
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 7f56127a-5301-11d1-a9c5-0000f80367c1
+schemaIdGuid: bf9679bf-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Alt-Security-Identities
-ldapDisplayName: altSecurityIdentities
-attributeId: 1.2.840.113556.1.4.867
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 00fbf30c-91fe-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: fATTINDEX
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: ANR
-ldapDisplayName: aNR
-attributeId: 1.2.840.113556.1.4.1208
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 45b01500-c419-11d1-bbc9-0080c76670c0
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Application-Name
-ldapDisplayName: applicationName
-attributeId: 1.2.840.113556.1.4.218
+cn: meetingAdvertiseScope
+ldapDisplayName: meetingAdvertiseScope
+attributeId: 1.2.840.113556.1.4.582
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: dd712226-10e4-11d0-a05f-00aa006c33ed
+schemaIdGuid: 11b6cc8b-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Applies-To
-ldapDisplayName: appliesTo
-attributeId: 1.2.840.113556.1.4.341
+cn: meetingApplication
+ldapDisplayName: meetingApplication
+attributeId: 1.2.840.113556.1.4.573
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: 8297931d-86d3-11d0-afda-00c04fd930c9
+schemaIdGuid: 11b6cc83-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeLower: 36
-rangeUpper: 36
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: App-Schema-Version
-ldapDisplayName: appSchemaVersion
-attributeId: 1.2.840.113556.1.4.848
+cn: meetingBandwidth
+ldapDisplayName: meetingBandwidth
+attributeId: 1.2.840.113556.1.4.589
attributeSyntax: 2.5.5.9
omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 96a7dd65-9118-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Asset-Number
-ldapDisplayName: assetNumber
-attributeId: 1.2.840.113556.1.4.283
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: ba305f75-47e3-11d0-a1a6-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Assistant
-ldapDisplayName: assistant
-attributeId: 1.2.840.113556.1.4.652
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: 0296c11c-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-searchFlags: fCOPY
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: associatedDomain
-ldapDisplayName: associatedDomain
-attributeId: 0.9.2342.19200300.100.1.37
-attributeSyntax: 2.5.5.5
-omSyntax: 22
isSingleValued: FALSE
-schemaIdGuid: 3320fc38-c379-4c17-a510-1bdf6133c5da
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 256
-
-cn: associatedName
-ldapDisplayName: associatedName
-attributeId: 0.9.2342.19200300.100.1.38
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: f7fbfc45-85ab-42a4-a435-780e62f7858b
+schemaIdGuid: 11b6cc92-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Assoc-NT-Account
-ldapDisplayName: assocNTAccount
-attributeId: 1.2.840.113556.1.4.1213
+cn: meetingBlob
+ldapDisplayName: meetingBlob
+attributeId: 1.2.840.113556.1.4.590
attributeSyntax: 2.5.5.10
omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: 398f63c0-ca60-11d1-bbd1-0000f81f10c0
-systemOnly: FALSE
-searchFlags: 0
-
-cn: ACS-DSBM-DeadTime
-ldapDisplayName: aCSDSBMDeadTime
-attributeId: 1.2.840.113556.1.4.778
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 1cb355a0-56d0-11d1-a9c6-0000f80367c1
+schemaIdGuid: 11b6cc93-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: attributeCertificateAttribute
-ldapDisplayName: attributeCertificateAttribute
-attributeId: 2.5.4.58
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: fa4693bb-7bc2-4cb9-81a8-c99c43b7905e
-systemOnly: FALSE
-searchFlags: 0
-
-cn: Attribute-Display-Names
-ldapDisplayName: attributeDisplayNames
-attributeId: 1.2.840.113556.1.4.748
+cn: meetingContactInfo
+ldapDisplayName: meetingContactInfo
+attributeId: 1.2.840.113556.1.4.578
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: cb843f80-48d9-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Attribute-ID
-ldapDisplayName: attributeID
-attributeId: 1.2.840.113556.1.2.30
-attributeSyntax: 2.5.5.2
-omSyntax: 6
isSingleValued: TRUE
-schemaIdGuid: bf967922-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags:fPRESERVEONDELETE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Attribute-Security-GUID
-ldapDisplayName: attributeSecurityGUID
-attributeId: 1.2.840.113556.1.4.149
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: bf967924-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 11b6cc87-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeLower: 16
-rangeUpper: 16
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Attribute-Syntax
-ldapDisplayName: attributeSyntax
-attributeId: 1.2.840.113556.1.2.32
-attributeSyntax: 2.5.5.2
-omSyntax: 6
-isSingleValued: TRUE
-schemaIdGuid: bf967925-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags:fPRESERVEONDELETE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Attribute-Types
-ldapDisplayName: attributeTypes
-attributeId: 2.5.21.5
+cn: meetingDescription
+ldapDisplayName: meetingDescription
+attributeId: 1.2.840.113556.1.4.567
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 9a7ad944-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: audio
-ldapDisplayName: audio
-attributeId: 0.9.2342.19200300.100.1.55
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: d0e1d224-e1a0-42ce-a2da-793ba5244f35
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 250000
-showInAdvancedViewOnly: FALSE
-
-cn: Auditing-Policy
-ldapDisplayName: auditingPolicy
-attributeId: 1.2.840.113556.1.4.202
-attributeSyntax: 2.5.5.10
-omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: 6da8a4fe-0e52-11d0-a286-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Authentication-Options
-ldapDisplayName: authenticationOptions
-attributeId: 1.2.840.113556.1.4.11
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: bf967928-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 11b6cc7e-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Authority-Revocation-List
-ldapDisplayName: authorityRevocationList
-attributeId: 2.5.4.38
-attributeSyntax: 2.5.5.10
-omSyntax: 4
+cn: meetingEndTime
+ldapDisplayName: meetingEndTime
+attributeId: 1.2.840.113556.1.4.588
+attributeSyntax: 2.5.5.11
+omSyntax: 23
isSingleValued: FALSE
-schemaIdGuid: 1677578d-47f3-11d1-a9c3-0000f80367c1
+schemaIdGuid: 11b6cc91-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 10485760
-mapiID: 32806
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-DSBM-Priority
-ldapDisplayName: aCSDSBMPriority
-attributeId: 1.2.840.113556.1.4.776
-attributeSyntax: 2.5.5.9
-omSyntax: 2
+cn: meetingID
+ldapDisplayName: meetingID
+attributeId: 1.2.840.113556.1.4.565
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 1cb3559e-56d0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Auxiliary-Class
-ldapDisplayName: auxiliaryClass
-attributeId: 1.2.840.113556.1.2.351
-attributeSyntax: 2.5.5.2
-omSyntax: 6
-isSingleValued: FALSE
-schemaIdGuid: bf96792c-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 11b6cc7c-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Bad-Password-Time
-ldapDisplayName: badPasswordTime
-attributeId: 1.2.840.113556.1.4.49
-attributeSyntax: 2.5.5.16
-omSyntax: 65
+cn: meetingIP
+ldapDisplayName: meetingIP
+attributeId: 1.2.840.113556.1.4.580
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: bf96792d-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 11b6cc89-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Bad-Pwd-Count
-ldapDisplayName: badPwdCount
-attributeId: 1.2.840.113556.1.4.12
-attributeSyntax: 2.5.5.9
-omSyntax: 2
+cn: meetingIsEncrypted
+ldapDisplayName: meetingIsEncrypted
+attributeId: 1.2.840.113556.1.4.585
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: bf96792e-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 11b6cc8e-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Birth-Location
-ldapDisplayName: birthLocation
-attributeId: 1.2.840.113556.1.4.332
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 1f0075f9-7e40-11d0-afd6-00c04fd930c9
-systemOnly: FALSE
-searchFlags: fATTINDEX
-rangeLower: 32
-rangeUpper: 32
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: BootFile
-ldapDisplayName: bootFile
-attributeId: 1.3.6.1.1.1.1.24
-attributeSyntax: 2.5.5.5
-omSyntax: 22
-isSingleValued: FALSE
-schemaIdGuid: e3f3cb4e-0f20-42eb-9703-d2ff26e52667
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 10240
-
-cn: BootParameter
-ldapDisplayName: bootParameter
-attributeId: 1.3.6.1.1.1.1.23
-attributeSyntax: 2.5.5.5
-omSyntax: 22
-isSingleValued: FALSE
-schemaIdGuid: d72a0750-8c7c-416e-8714-e65f11e908be
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 10240
-
-cn: Bridgehead-Server-List-BL
-ldapDisplayName: bridgeheadServerListBL
-attributeId: 1.2.840.113556.1.4.820
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: d50c2cdb-8951-11d1-aebc-0000f80367c1
-systemOnly: TRUE
-searchFlags: 0
-linkID: 99
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Bridgehead-Transport-List
-ldapDisplayName: bridgeheadTransportList
-attributeId: 1.2.840.113556.1.4.819
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
+cn: meetingKeyword
+ldapDisplayName: meetingKeyword
+attributeId: 1.2.840.113556.1.4.568
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: d50c2cda-8951-11d1-aebc-0000f80367c1
+schemaIdGuid: 11b6cc7f-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-linkID: 98
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: buildingName
-ldapDisplayName: buildingName
-attributeId: 0.9.2342.19200300.100.1.48
+cn: meetingLanguage
+ldapDisplayName: meetingLanguage
+attributeId: 1.2.840.113556.1.4.574
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: f87fa54b-b2c5-4fd7-88c0-daccb21d93c5
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 256
-
-cn: Builtin-Creation-Time
-ldapDisplayName: builtinCreationTime
-attributeId: 1.2.840.113556.1.4.13
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf96792f-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ACS-DSBM-Refresh
-ldapDisplayName: aCSDSBMRefresh
-attributeId: 1.2.840.113556.1.4.777
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 1cb3559f-56d0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Builtin-Modified-Count
-ldapDisplayName: builtinModifiedCount
-attributeId: 1.2.840.113556.1.4.14
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf967930-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 11b6cc84-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Business-Category
-ldapDisplayName: businessCategory
-attributeId: 2.5.4.15
+cn: meetingLocation
+ldapDisplayName: meetingLocation
+attributeId: 1.2.840.113556.1.4.569
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: bf967931-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 11b6cc80-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeLower: 1
-rangeUpper: 128
-mapiID: 32855
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Bytes-Per-Minute
-ldapDisplayName: bytesPerMinute
-attributeId: 1.2.840.113556.1.4.284
+cn: meetingMaxParticipants
+ldapDisplayName: meetingMaxParticipants
+attributeId: 1.2.840.113556.1.4.576
attributeSyntax: 2.5.5.9
omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: ba305f76-47e3-11d0-a1a6-00c04fd930c9
+schemaIdGuid: 11b6cc85-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Country-Name
-ldapDisplayName: c
-attributeId: 2.5.4.6
+cn: meetingName
+ldapDisplayName: meetingName
+attributeId: 1.2.840.113556.1.4.566
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: bf967945-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fCOPY
-rangeLower: 1
-rangeUpper: 3
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 32873
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: CA-Certificate
-ldapDisplayName: cACertificate
-attributeId: 2.5.4.37
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: bf967932-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 11b6cc7d-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeLower: 1
-rangeUpper: 32768
-mapiID: 32771
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: CA-Certificate-DN
-ldapDisplayName: cACertificateDN
-attributeId: 1.2.840.113556.1.4.697
+cn: meetingOriginator
+ldapDisplayName: meetingOriginator
+attributeId: 1.2.840.113556.1.4.577
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 963d2740-48be-11d1-a9c3-0000f80367c1
+schemaIdGuid: 11b6cc86-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: CA-Connect
-ldapDisplayName: cAConnect
-attributeId: 1.2.840.113556.1.4.687
+cn: meetingOwner
+ldapDisplayName: meetingOwner
+attributeId: 1.2.840.113556.1.4.579
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 963d2735-48be-11d1-a9c3-0000f80367c1
+schemaIdGuid: 11b6cc88-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Canonical-Name
-ldapDisplayName: canonicalName
-attributeId: 1.2.840.113556.1.4.916
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 9a7ad945-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Can-Upgrade-Script
-ldapDisplayName: canUpgradeScript
-attributeId: 1.2.840.113556.1.4.815
+cn: meetingProtocol
+ldapDisplayName: meetingProtocol
+attributeId: 1.2.840.113556.1.4.570
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: d9e18314-8939-11d1-aebc-0000f80367c1
+schemaIdGuid: 11b6cc81-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: carLicense
-ldapDisplayName: carLicense
-attributeId: 2.16.840.1.113730.3.1.1
+cn: meetingRating
+ldapDisplayName: meetingRating
+attributeId: 1.2.840.113556.1.4.584
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: d4159c92-957d-4a87-8a67-8d2934e01649
-systemOnly: FALSE
-searchFlags: 0
-showInAdvancedViewOnly: FALSE
-
-cn: MacAddress
-ldapDisplayName: macAddress
-attributeId: 1.3.6.1.1.1.1.22
-attributeSyntax: 2.5.5.5
-omSyntax: 22
-isSingleValued: FALSE
-schemaIdGuid: e6a522dd-9770-43e1-89de-1de5044328f7
+schemaIdGuid: 11b6cc8d-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 128
-
-cn: Manager
-ldapDisplayName: manager
-attributeId: 0.9.2342.19200300.100.1.10
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: bf9679b5-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fCOPY
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-linkID: 42
-mapiID: 32773
-isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-NamedPipe
-ldapDisplayName: mS-SQL-NamedPipe
-attributeId: 1.2.840.113556.1.4.1374
+cn: meetingRecurrence
+ldapDisplayName: meetingRecurrence
+attributeId: 1.2.840.113556.1.4.586
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 7b91c840-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 11b6cc8f-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-PublicationURL
-ldapDisplayName: mS-SQL-PublicationURL
-attributeId: 1.2.840.113556.1.4.1384
+cn: meetingScope
+ldapDisplayName: meetingScope
+attributeId: 1.2.840.113556.1.4.581
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: ae0c11b8-ccee-11d2-9993-0000f87a57d4
+isSingleValued: FALSE
+schemaIdGuid: 11b6cc8a-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Publisher
-ldapDisplayName: mS-SQL-Publisher
-attributeId: 1.2.840.113556.1.4.1402
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: c1676858-d34b-11d2-999a-0000f87a57d4
+cn: meetingStartTime
+ldapDisplayName: meetingStartTime
+attributeId: 1.2.840.113556.1.4.587
+attributeSyntax: 2.5.5.11
+omSyntax: 23
+isSingleValued: FALSE
+schemaIdGuid: 11b6cc90-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-RegisteredOwner
-ldapDisplayName: mS-SQL-RegisteredOwner
-attributeId: 1.2.840.113556.1.4.1364
+cn: meetingType
+ldapDisplayName: meetingType
+attributeId: 1.2.840.113556.1.4.571
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 48fd44ea-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 11b6cc82-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-ServiceAccount
-ldapDisplayName: mS-SQL-ServiceAccount
-attributeId: 1.2.840.113556.1.4.1369
+cn: meetingURL
+ldapDisplayName: meetingURL
+attributeId: 1.2.840.113556.1.4.583
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 64933a3e-ccee-11d2-9993-0000f87a57d4
+isSingleValued: FALSE
+schemaIdGuid: 11b6cc8c-48c4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Size
-ldapDisplayName: mS-SQL-Size
-attributeId: 1.2.840.113556.1.4.1396
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: e9098084-ccee-11d2-9993-0000f87a57d4
+cn: Member
+ldapDisplayName: member
+attributeId: 2.5.4.31
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: bf9679c0-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+attributeSecurityGuid: bc0ac240-79a9-11d0-9020-00c04fc2d4cf
+linkID: 2
+mapiID: 32777
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-SortOrder
-ldapDisplayName: mS-SQL-SortOrder
-attributeId: 1.2.840.113556.1.4.1371
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 6ddc42c0-ccee-11d2-9993-0000f87a57d4
+cn: MemberNisNetgroup
+ldapDisplayName: memberNisNetgroup
+attributeId: 1.3.6.1.1.1.1.13
+attributeSyntax: 2.5.5.5
+omSyntax: 22
+isSingleValued: FALSE
+schemaIdGuid: 0f6a17dc-53e5-4be8-9442-8f3ce2f9012a
systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+rangeUpper: 153600
-cn: MS-SQL-SPX
-ldapDisplayName: mS-SQL-SPX
-attributeId: 1.2.840.113556.1.4.1376
+cn: MemberUid
+ldapDisplayName: memberUid
+attributeId: 1.3.6.1.1.1.1.12
+attributeSyntax: 2.5.5.5
+omSyntax: 22
+isSingleValued: FALSE
+schemaIdGuid: 03dab236-672e-4f61-ab64-f77d2dc2ffab
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 256000
+
+cn: MHS-OR-Address
+ldapDisplayName: mhsORAddress
+attributeId: 1.2.840.113556.1.4.650
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 86b08004-ccee-11d2-9993-0000f87a57d4
+isSingleValued: FALSE
+schemaIdGuid: 0296c122-40da-11d1-a9c0-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Status
-ldapDisplayName: mS-SQL-Status
-attributeId: 1.2.840.113556.1.4.1380
+cn: Min-Pwd-Age
+ldapDisplayName: minPwdAge
+attributeId: 1.2.840.113556.1.4.78
attributeSyntax: 2.5.5.16
omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: 9a7d4770-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: bf9679c2-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-TCPIP
-ldapDisplayName: mS-SQL-TCPIP
-attributeId: 1.2.840.113556.1.4.1377
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Min-Pwd-Length
+ldapDisplayName: minPwdLength
+attributeId: 1.2.840.113556.1.4.79
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: 8ac263a6-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: bf9679c3-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MAPI-ID
-ldapDisplayName: mAPIID
-attributeId: 1.2.840.113556.1.2.49
-attributeSyntax: 2.5.5.9
-omSyntax: 2
+cn: Min-Ticket-Age
+ldapDisplayName: minTicketAge
+attributeId: 1.2.840.113556.1.4.80
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: bf9679b7-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
+schemaIdGuid: bf9679c4-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
searchFlags: 0
-mapiID: 32974
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-ThirdParty
-ldapDisplayName: mS-SQL-ThirdParty
-attributeId: 1.2.840.113556.1.4.1407
-attributeSyntax: 2.5.5.8
-omSyntax: 1
+cn: Modified-Count
+ldapDisplayName: modifiedCount
+attributeId: 1.2.840.113556.1.4.168
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: c4e311fc-d34b-11d2-999a-0000f87a57d4
+schemaIdGuid: bf9679c5-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-Type
-ldapDisplayName: mS-SQL-Type
-attributeId: 1.2.840.113556.1.4.1391
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Modified-Count-At-Last-Prom
+ldapDisplayName: modifiedCountAtLastProm
+attributeId: 1.2.840.113556.1.4.81
+attributeSyntax: 2.5.5.16
+omSyntax: 65
isSingleValued: TRUE
-schemaIdGuid: ca48eba8-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: bf9679c6-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-UnicodeSortOrder
-ldapDisplayName: mS-SQL-UnicodeSortOrder
-attributeId: 1.2.840.113556.1.4.1372
-attributeSyntax: 2.5.5.9
-omSyntax: 2
+cn: Modify-Time-Stamp
+ldapDisplayName: modifyTimeStamp
+attributeId: 2.5.18.2
+attributeSyntax: 2.5.5.11
+omSyntax: 24
isSingleValued: TRUE
-schemaIdGuid: 72dc918a-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 9a7ad94a-ca53-11d1-bbd0-0080c76670c0
+systemOnly: TRUE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Moniker
+ldapDisplayName: moniker
+attributeId: 1.2.840.113556.1.4.82
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: FALSE
+schemaIdGuid: bf9679c7-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Version
-ldapDisplayName: mS-SQL-Version
-attributeId: 1.2.840.113556.1.4.1388
+cn: Moniker-Display-Name
+ldapDisplayName: monikerDisplayName
+attributeId: 1.2.840.113556.1.4.83
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: c07cc1d0-ccee-11d2-9993-0000f87a57d4
+isSingleValued: FALSE
+schemaIdGuid: bf9679c8-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
-searchFlags: fATTINDEX
-isMemberOfPartialAttributeSet: TRUE
+searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Vines
-ldapDisplayName: mS-SQL-Vines
-attributeId: 1.2.840.113556.1.4.1379
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 94c56394-ccee-11d2-9993-0000f87a57d4
+cn: Move-Tree-State
+ldapDisplayName: moveTreeState
+attributeId: 1.2.840.113556.1.4.1305
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: FALSE
+schemaIdGuid: 1f2ac2c8-3b71-11d2-90cc-00c04fd91ab1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
@@ -4915,17 +5283,6 @@ searchFlags: 0
linkID: 1049
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-cn: Marshalled-Interface
-ldapDisplayName: marshalledInterface
-attributeId: 1.2.840.113556.1.4.72
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: bf9679b9-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-COM-UserPartitionSetLink
ldapDisplayName: msCOM-UserPartitionSetLink
attributeId: 1.2.840.113556.1.4.1426
@@ -4950,6 +5307,98 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: ms-DFS-Comment-v2
+ldapDisplayName: msDFS-Commentv2
+attributeId: 1.2.840.113556.1.4.2036
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: b786cec9-61fd-4523-b2c1-5ceb3860bb32
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 0
+rangeUpper: 32766
+
+cn: ms-DFS-Generation-GUID-v2
+ldapDisplayName: msDFS-GenerationGUIDv2
+attributeId: 1.2.840.113556.1.4.2032
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 35b8b3d9-c58f-43d6-930e-5040f2f1a781
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 16
+rangeUpper: 16
+
+cn: ms-DFS-Last-Modified-v2
+ldapDisplayName: msDFS-LastModifiedv2
+attributeId: 1.2.840.113556.1.4.2034
+attributeSyntax: 2.5.5.11
+omSyntax: 24
+isSingleValued: TRUE
+schemaIdGuid: 3c095e8a-314e-465b-83f5-ab8277bcf29b
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+
+cn: ms-DFS-Link-Identity-GUID-v2
+ldapDisplayName: msDFS-LinkIdentityGUIDv2
+attributeId: 1.2.840.113556.1.4.2041
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: edb027f3-5726-4dee-8d4e-dbf07e1ad1f1
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower:16
+rangeUpper: 16
+
+cn: ms-DFS-Link-Path-v2
+ldapDisplayName: msDFS-LinkPathv2
+attributeId: 1.2.840.113556.1.4.2039
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 86b021f6-10ab-40a2-a252-1dc0cc3be6a9
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 0
+rangeUpper: 32766
+
+cn: ms-DFS-Link-Security-Descriptor-v2
+ldapDisplayName: msDFS-LinkSecurityDescriptorv2
+attributeId: 1.2.840.113556.1.4.2040
+attributeSyntax: 2.5.5.15
+omSyntax: 66
+isSingleValued: TRUE
+schemaIdGuid: 57cf87f7-3426-4841-b322-02b3b6e9eba8
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+
+cn: ms-DFS-Namespace-Identity-GUID-v2
+ldapDisplayName: msDFS-NamespaceIdentityGUIDv2
+attributeId: 1.2.840.113556.1.4.2033
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 200432ce-ec5f-4931-a525-d7f4afe34e68
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 16
+rangeUpper: 16
+
+cn: ms-DFS-Properties-v2
+ldapDisplayName: msDFS-Propertiesv2
+attributeId: 1.2.840.113556.1.4.2037
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 0c3e5bc5-eb0e-40f5-9b53-334e958dffdb
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 0
+rangeUpper: 1024
+
cn: ms-DFSR-CachePolicy
ldapDisplayName: msDFSR-CachePolicy
attributeId: 1.2.840.113556.1.6.13.3.29
@@ -5037,20 +5486,6 @@ searchFlags: 0
rangeLower: 16
rangeUpper: 16
-cn: Mastered-By
-ldapDisplayName: masteredBy
-attributeId: 1.2.840.113556.1.4.1409
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: e48e64e0-12c9-11d3-9102-00c04fd91ab1
-systemOnly: TRUE
-searchFlags: 0
-linkID: 77
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-DFSR-DefaultCompressionExclusionFilter
ldapDisplayName: msDFSR-DefaultCompressionExclusionFilter
attributeId: 1.2.840.113556.1.6.13.3.34
@@ -5155,19 +5590,6 @@ searchFlags: 0
rangeLower: 0
rangeUpper: 32767
-cn: Max-Pwd-Age
-ldapDisplayName: maxPwdAge
-attributeId: 1.2.840.113556.1.4.74
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf9679bb-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-DFSR-Flags
ldapDisplayName: msDFSR-Flags
attributeId: 1.2.840.113556.1.6.13.3.16
@@ -5271,18 +5693,6 @@ isSingleValued: TRUE
schemaIdGuid: 11e24318-4ca6-4f49-9afe-e5eb1afa3473
searchFlags: 0
-cn: Max-Renew-Age
-ldapDisplayName: maxRenewAge
-attributeId: 1.2.840.113556.1.4.75
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf9679bc-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-DFSR-Priority
ldapDisplayName: msDFSR-Priority
attributeId: 1.2.840.113556.1.6.13.3.25
@@ -5321,15 +5731,6 @@ isSingleValued: TRUE
schemaIdGuid: 5ac48021-e447-46e7-9d23-92c0c6a90dfb
searchFlags: 0
-cn: ms-DFSR-StagingCleanupTriggerInPercent
-ldapDisplayName: msDFSR-StagingCleanupTriggerInPercent
-attributeId: 1.2.840.113556.1.6.13.3.40
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: d64b9c23-e1fa-467b-b317-6964d744d633
-searchFlags: 0
-
cn: ms-DFSR-ReplicationGroupGuid
ldapDisplayName: msDFSR-ReplicationGroupGuid
attributeId: 1.2.840.113556.1.6.13.3.23
@@ -5381,17 +5782,6 @@ searchFlags: 0
rangeLower: 0
rangeUpper: -1
-cn: Max-Storage
-ldapDisplayName: maxStorage
-attributeId: 1.2.840.113556.1.4.76
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf9679bd-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fCOPY
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DFSR-Schedule
ldapDisplayName: msDFSR-Schedule
attributeId: 1.2.840.113556.1.6.13.3.14
@@ -5403,6 +5793,15 @@ searchFlags: 0
rangeLower: 336
rangeUpper: 336
+cn: ms-DFSR-StagingCleanupTriggerInPercent
+ldapDisplayName: msDFSR-StagingCleanupTriggerInPercent
+attributeId: 1.2.840.113556.1.6.13.3.40
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: d64b9c23-e1fa-467b-b317-6964d744d633
+searchFlags: 0
+
cn: ms-DFSR-StagingPath
ldapDisplayName: msDFSR-StagingPath
attributeId: 1.2.840.113556.1.6.13.3.5
@@ -5446,6 +5845,64 @@ schemaIdGuid: 1a861408-38c3-49ea-ba75-85481a77c655
searchFlags: 0
rangeUpper: 256
+cn: ms-DFS-Schema-Major-Version
+ldapDisplayName: msDFS-SchemaMajorVersion
+attributeId: 1.2.840.113556.1.4.2030
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: ec6d7855-704a-4f61-9aa6-c49a7c1d54c7
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 2
+rangeUpper: 2
+
+cn: ms-DFS-Schema-Minor-Version
+ldapDisplayName: msDFS-SchemaMinorVersion
+attributeId: 1.2.840.113556.1.4.2031
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: fef9a725-e8f1-43ab-bd86-6a0115ce9e38
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 0
+rangeUpper: 0
+
+cn: ms-DFS-Short-Name-Link-Path-v2
+ldapDisplayName: msDFS-ShortNameLinkPathv2
+attributeId: 1.2.840.113556.1.4.2042
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 2d7826f0-4cf7-42e9-a039-1110e0d9ca99
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 0
+rangeUpper: 32766
+
+cn: ms-DFS-Target-List-v2
+ldapDisplayName: msDFS-TargetListv2
+attributeId: 1.2.840.113556.1.4.2038
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 6ab126c6-fa41-4b36-809e-7ca91610d48f
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+rangeLower: 0
+rangeUpper: 2097152
+
+cn: ms-DFS-Ttl-v2
+ldapDisplayName: msDFS-Ttlv2
+attributeId: 1.2.840.113556.1.4.2035
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: ea944d31-864a-4349-ada5-062e2c614f5e
+isMemberOfPartialAttributeSet: FALSE
+searchFlags: 0
+
cn: MS-DRM-Identity-Certificate
ldapDisplayName: msDRM-IdentityCertificate
attributeId: 1.2.840.113556.1.4.1843
@@ -5514,18 +5971,6 @@ attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Max-Ticket-Age
-ldapDisplayName: maxTicketAge
-attributeId: 1.2.840.113556.1.4.77
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf9679be-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: MS-DS-All-Users-Trust-Quota
ldapDisplayName: msDS-AllUsersTrustQuota
attributeId: 1.2.840.113556.1.4.1789
@@ -5655,18 +6100,6 @@ rangeLower: 0
rangeUpper: 64
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: May-Contain
-ldapDisplayName: mayContain
-attributeId: 1.2.840.113556.1.2.25
-attributeSyntax: 2.5.5.2
-omSyntax: 6
-isSingleValued: FALSE
-schemaIdGuid: bf9679bf-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-DS-Az-Class-ID
ldapDisplayName: msDS-AzClassId
attributeId: 1.2.840.113556.1.4.1816
@@ -5791,17 +6224,6 @@ searchFlags: 0
rangeLower: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingAdvertiseScope
-ldapDisplayName: meetingAdvertiseScope
-attributeId: 1.2.840.113556.1.4.582
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc8b-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Az-Scope-Name
ldapDisplayName: msDS-AzScopeName
attributeId: 1.2.840.113556.1.4.1799
@@ -5874,7 +6296,7 @@ isSingleValued: FALSE
showInAdvancedViewOnly: TRUE
schemaIdGuid: 3ced1465-7b71-2541-8780-1e1ea6243a82
searchFlags: 0
-systemFlags: FLAG_ATTR_NOT_REPLICATED | FLAG_ATTR_IS_OPERATIONAL | FLAG_SCHEMA_BASE_OBJECT
+systemFlags: FLAG_ATTR_NOT_REPLICATED | FLAG_ATTR_IS_OPERATIONAL |FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: ms-DS-Byte-Array
@@ -5912,6 +6334,40 @@ searchFlags: fATTINDEX
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: MS-DS-Consistency-Child-Count
+ldapDisplayName: mS-DS-ConsistencyChildCount
+attributeId: 1.2.840.113556.1.4.1361
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 178b7bc2-b63a-11d2-90e1-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-DS-Consistency-Guid
+ldapDisplayName: mS-DS-ConsistencyGuid
+attributeId: 1.2.840.113556.1.4.1360
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 23773dc2-b63a-11d2-90e1-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-DS-Creator-SID
+ldapDisplayName: mS-DS-CreatorSID
+attributeId: 1.2.840.113556.1.4.1410
+attributeSyntax: 2.5.5.17
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: c5e60132-1480-11d3-91c1-0000f87a57d4
+systemOnly: TRUE
+searchFlags: fATTINDEX
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: ms-DS-Date-Time
ldapDisplayName: msDS-DateTime
attributeId: 1.2.840.113556.1.4.1832
@@ -5934,28 +6390,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Machine-Architecture
-ldapDisplayName: machineArchitecture
-attributeId: 1.2.840.113556.1.4.68
-attributeSyntax: 2.5.5.9
-omSyntax: 10
-isSingleValued: FALSE
-schemaIdGuid: bf9679af-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: meetingApplication
-ldapDisplayName: meetingApplication
-attributeId: 1.2.840.113556.1.4.573
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc83-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-DnsRootAlias
ldapDisplayName: msDS-DnsRootAlias
attributeId: 1.2.840.113556.1.4.1719
@@ -6087,17 +6521,6 @@ linkID: 2026
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: meetingBandwidth
-ldapDisplayName: meetingBandwidth
-attributeId: 1.2.840.113556.1.4.589
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc92-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Has-Full-Replica-NCs
ldapDisplayName: msDS-hasFullReplicaNCs
attributeId: 1.2.840.113556.1.4.1925
@@ -6227,17 +6650,17 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: meetingBlob
-ldapDisplayName: meetingBlob
-attributeId: 1.2.840.113556.1.4.590
-attributeSyntax: 2.5.5.10
-omSyntax: 4
+cn: ms-DS-Is-User-Cachable-At-Rodc
+ldapDisplayName: msDS-IsUserCachableAtRodc
+attributeId: 1.2.840.113556.1.4.2025
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: 11b6cc93-48c4-11d1-a9c3-0000f80367c1
+schemaIdGuid: fe01245a-341f-4556-951f-48c033a89050
systemOnly: FALSE
searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: ms-DS-KeyVersionNumber
ldapDisplayName: msDS-KeyVersionNumber
@@ -6313,11 +6736,24 @@ omSyntax: 65
isSingleValued: TRUE
systemOnly: FALSE
searchFlags: 0
-rangeLower: 0
+rangeUpper: 0
schemaIdGuid: 421f889a-472e-4fe4-8eb9-e1d0bc6071b2
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: ms-DS-Lockout-Observation-Window
+ldapDisplayName: msDS-LockoutObservationWindow
+attributeId: 1.2.840.113556.1.4.2017
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 0
+schemaIdGuid: b05bda89-76af-468a-b892-1be55558ecc8
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: ms-DS-Lockout-Threshold
ldapDisplayName: msDS-LockoutThreshold
attributeId: 1.2.840.113556.1.4.2019
@@ -6332,29 +6768,28 @@ schemaIdGuid: b8c8c35e-4a19-4a95-99d0-69fe4446286f
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ms-DS-Lockout-Observation-Window
-ldapDisplayName: msDS-LockoutObservationWindow
-attributeId: 1.2.840.113556.1.4.2017
-attributeSyntax: 2.5.5.16
-omSyntax: 65
+cn: ms-DS-Logon-Time-Sync-Interval
+ldapDisplayName: msDS-LogonTimeSyncInterval
+attributeId: 1.2.840.113556.1.4.1784
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
+schemaIdGuid: ad7940f8-e43a-4a42-83bc-d688e59ea605
systemOnly: FALSE
searchFlags: 0
rangeLower: 0
-schemaIdGuid: b05bda89-76af-468a-b892-1be55558ecc8
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ms-DS-Logon-Time-Sync-Interval
-ldapDisplayName: msDS-LogonTimeSyncInterval
-attributeId: 1.2.840.113556.1.4.1784
+cn: MS-DS-Machine-Account-Quota
+ldapDisplayName: ms-DS-MachineAccountQuota
+attributeId: 1.2.840.113556.1.4.1411
attributeSyntax: 2.5.5.9
omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: ad7940f8-e43a-4a42-83bc-d688e59ea605
+schemaIdGuid: d064fb68-1480-11d3-91c1-0000f87a57d4
systemOnly: FALSE
searchFlags: 0
-rangeLower: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
@@ -6372,17 +6807,6 @@ linkID: 2037
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: meetingContactInfo
-ldapDisplayName: meetingContactInfo
-attributeId: 1.2.840.113556.1.4.578
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc87-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Maximum-Password-Age
ldapDisplayName: msDS-MaximumPasswordAge
attributeId: 1.2.840.113556.1.4.2011
@@ -6391,7 +6815,7 @@ omSyntax: 65
isSingleValued: TRUE
systemOnly: FALSE
searchFlags: 0
-rangeLower: 0
+rangeUpper: 0
schemaIdGuid: fdd337f5-4999-4fce-b252-8ff9c9b43875
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
@@ -6443,7 +6867,7 @@ omSyntax: 65
isSingleValued: TRUE
systemOnly: FALSE
searchFlags: 0
-rangeLower: 0
+rangeUpper: 0
schemaIdGuid: 2a74f878-4d9c-49f9-97b3-6767d1cbd9a3
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
@@ -6462,6 +6886,18 @@ schemaIdGuid: b21b3439-4c3a-441c-bb5f-08f20e9b315e
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: ms-DS-NC-Repl-Cursors
+ldapDisplayName: msDS-NCReplCursors
+attributeId: 1.2.840.113556.1.4.1704
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 8a167ce4-f9e8-47eb-8d78-f7fe80abb2cc
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: ms-DS-NC-Replica-Locations
ldapDisplayName: msDS-NC-Replica-Locations
attributeId: 1.2.840.113556.1.4.1661
@@ -6476,6 +6912,30 @@ linkID: 1044
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: ms-DS-NC-Repl-Inbound-Neighbors
+ldapDisplayName: msDS-NCReplInboundNeighbors
+attributeId: 1.2.840.113556.1.4.1705
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 9edba85a-3e9e-431b-9b1a-a5b6e9eda796
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: ms-DS-NC-Repl-Outbound-Neighbors
+ldapDisplayName: msDS-NCReplOutboundNeighbors
+attributeId: 1.2.840.113556.1.4.1706
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 855f2ef5-a1c5-4cc4-ba6d-32522848b61f
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: ms-DS-NC-RO-Replica-Locations
ldapDisplayName: msDS-NC-RO-Replica-Locations
attributeId: 1.2.840.113556.1.4.1967
@@ -6517,54 +6977,6 @@ isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: meetingDescription
-ldapDisplayName: meetingDescription
-attributeId: 1.2.840.113556.1.4.567
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc7e-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ms-DS-NC-Repl-Cursors
-ldapDisplayName: msDS-NCReplCursors
-attributeId: 1.2.840.113556.1.4.1704
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 8a167ce4-f9e8-47eb-8d78-f7fe80abb2cc
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: ms-DS-NC-Repl-Inbound-Neighbors
-ldapDisplayName: msDS-NCReplInboundNeighbors
-attributeId: 1.2.840.113556.1.4.1705
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 9edba85a-3e9e-431b-9b1a-a5b6e9eda796
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: ms-DS-NC-Repl-Outbound-Neighbors
-ldapDisplayName: msDS-NCReplOutboundNeighbors
-attributeId: 1.2.840.113556.1.4.1706
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 855f2ef5-a1c5-4cc4-ba6d-32522848b61f
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-DS-Never-Reveal-Group
ldapDisplayName: msDS-NeverRevealGroup
attributeId: 1.2.840.113556.1.4.1926
@@ -6579,17 +6991,6 @@ linkID: 2106
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ms-DS-Non-Security-Group-Extra-Classes
-ldapDisplayName: msDS-Non-Security-Group-Extra-Classes
-attributeId: 1.2.840.113556.1.4.1689
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 2de144fc-1f52-486f-bdf4-16fcc3084e54
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Non-Members
ldapDisplayName: msDS-NonMembers
attributeId: 1.2.840.113556.1.4.1793
@@ -6617,6 +7018,17 @@ searchFlags: 0
linkID: 2015
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+cn: ms-DS-Non-Security-Group-Extra-Classes
+ldapDisplayName: msDS-Non-Security-Group-Extra-Classes
+attributeId: 1.2.840.113556.1.4.1689
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 2de144fc-1f52-486f-bdf4-16fcc3084e54
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: ms-DS-Object-Reference
ldapDisplayName: msDS-ObjectReference
attributeId: 1.2.840.113556.1.4.1840
@@ -6655,17 +7067,6 @@ searchFlags: 0
linkID: 2022
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingEndTime
-ldapDisplayName: meetingEndTime
-attributeId: 1.2.840.113556.1.4.588
-attributeSyntax: 2.5.5.11
-omSyntax: 23
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc91-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Operations-For-Az-Role-BL
ldapDisplayName: msDS-OperationsForAzRoleBL
attributeId: 1.2.840.113556.1.4.1813
@@ -6763,7 +7164,7 @@ omSyntax: 2
isSingleValued: TRUE
systemOnly: FALSE
searchFlags: 0
-rangeLower: 0
+rangeLower: 1
schemaIdGuid: 456374ac-1f0a-4617-93cf-bc55a7c9d341
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
@@ -6792,17 +7193,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: meetingID
-ldapDisplayName: meetingID
-attributeId: 1.2.840.113556.1.4.565
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc7c-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Phonetic-Company-Name
ldapDisplayName: msDS-PhoneticCompanyName
attributeId: 1.2.840.113556.1.4.1945
@@ -6923,7 +7313,7 @@ attributeSyntax: 2.5.5.1
omSyntax: 127
isSingleValued: FALSE
systemOnly: TRUE
-searchFlags: 0
+searchFlags: fCOPY
omObjectClass: 1.3.12.2.1011.28.0.714
schemaIdGuid: 5e6cf031-bda8-43c8-aca4-8fee4127005b
linkID: 2119
@@ -6943,17 +7333,6 @@ schemaIdGuid: 64c80f48-cdd2-4881-a86d-4e97b6f561fc
linkID: 2118
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingIP
-ldapDisplayName: meetingIP
-attributeId: 1.2.840.113556.1.4.580
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc89-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Quota-Amount
ldapDisplayName: msDS-QuotaAmount
attributeId: 1.2.840.113556.1.4.1845
@@ -7016,6 +7395,31 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: MS-DS-Replicates-NC-Reason
+ldapDisplayName: mS-DS-ReplicatesNCReason
+attributeId: 1.2.840.113556.1.4.1408
+attributeSyntax: 2.5.5.7
+omSyntax: 127
+omObjectClass: 1.2.840.113556.1.1.1.11
+isSingleValued: FALSE
+schemaIdGuid: 0ea12b84-08b3-11d3-91bc-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: ms-DS-ReplicationEpoch
+ldapDisplayName: msDS-ReplicationEpoch
+attributeId: 1.2.840.113556.1.4.1720
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 08e3aa79-eb1c-45b5-af7b-8f94246c8e41
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: ms-DS-Replication-Notify-First-DSA-Delay
ldapDisplayName: msDS-Replication-Notify-First-DSA-Delay
attributeId: 1.2.840.113556.1.4.1663
@@ -7040,18 +7444,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ms-DS-ReplicationEpoch
-ldapDisplayName: msDS-ReplicationEpoch
-attributeId: 1.2.840.113556.1.4.1720
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 08e3aa79-eb1c-45b5-af7b-8f94246c8e41
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-DS-Repl-Value-Meta-Data
ldapDisplayName: msDS-ReplValueMetaData
attributeId: 1.2.840.113556.1.4.1708
@@ -7071,23 +7463,12 @@ attributeSyntax: 2.5.5.1
omSyntax: 127
isSingleValued: TRUE
systemOnly: TRUE
-searchFlags: 0
+searchFlags: fCOPY
omObjectClass: 1.3.12.2.1011.28.0.714
schemaIdGuid: b77ea093-88d0-4780-9a98-911f8e8b1dca
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: meetingIsEncrypted
-ldapDisplayName: meetingIsEncrypted
-attributeId: 1.2.840.113556.1.4.585
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc8e-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Retired-Repl-NC-Signatures
ldapDisplayName: msDS-RetiredReplNCSignatures
attributeId: 1.2.840.113556.1.4.1826
@@ -7218,17 +7599,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingKeyword
-ldapDisplayName: meetingKeyword
-attributeId: 1.2.840.113556.1.4.568
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc7f-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Settings
ldapDisplayName: msDS-Settings
attributeId: 1.2.840.113556.1.4.1697
@@ -7240,18 +7610,6 @@ systemOnly: FALSE
searchFlags: 0
rangeUpper: 1000000
-cn: ms-DS-SiteName
-ldapDisplayName: msDS-SiteName
-attributeId: 1.2.840.113556.1.4.1961
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 98a7f36d-3595-448a-9e6f-6b8965baed9c
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-DS-Site-Affinity
ldapDisplayName: msDS-Site-Affinity
attributeId: 1.2.840.113556.1.4.1443
@@ -7264,6 +7622,18 @@ searchFlags: fATTINDEX
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: ms-DS-SiteName
+ldapDisplayName: msDS-SiteName
+attributeId: 1.2.840.113556.1.4.1961
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 98a7f36d-3595-448a-9e6f-6b8965baed9c
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: ms-DS-Source-Object-DN
ldapDisplayName: msDS-SourceObjectDN
attributeId: 1.2.840.113556.1.4.1879
@@ -7342,29 +7712,6 @@ searchFlags: 0
linkID: 2020
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Machine-Password-Change-Interval
-ldapDisplayName: machinePasswordChangeInterval
-attributeId: 1.2.840.113556.1.4.520
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: c9b6358e-bb38-11d0-afef-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: a29b89fe-c7e8-11d0-9bae-00c04fd92ef5
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: meetingLanguage
-ldapDisplayName: meetingLanguage
-attributeId: 1.2.840.113556.1.4.574
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc84-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-DS-Tasks-For-Az-Task-BL
ldapDisplayName: msDS-TasksForAzTaskBL
attributeId: 1.2.840.113556.1.4.1811
@@ -7491,16 +7838,18 @@ rangeLower: 1
rangeUpper: 1024
mapiID: 35921
-cn: meetingLocation
-ldapDisplayName: meetingLocation
-attributeId: 1.2.840.113556.1.4.569
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: ms-Exch-Owner-BL
+ldapDisplayName: ownerBL
+attributeId: 1.2.840.113556.1.2.104
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: FALSE
-schemaIdGuid: 11b6cc80-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
+schemaIdGuid: bf9679f4-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+linkID: 45
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
cn: ms-FRS-Hub-Member
ldapDisplayName: msFRS-Hub-Member
@@ -7607,17 +7956,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingMaxParticipants
-ldapDisplayName: meetingMaxParticipants
-attributeId: 1.2.840.113556.1.4.576
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc85-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-IIS-FTP-Dir
ldapDisplayName: msIIS-FTPDir
attributeId: 1.2.840.113556.1.4.1786
@@ -7688,44 +8026,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MSMQ-Multicast-Address
-ldapDisplayName: MSMQ-MulticastAddress
-attributeId: 1.2.840.113556.1.4.1714
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 1d2f4412-f10d-4337-9b48-6e5b125cd265
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 9
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MSMQ-Recipient-FormatName
-ldapDisplayName: msMQ-Recipient-FormatName
-attributeId: 1.2.840.113556.1.4.1695
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 3bfe6748-b544-485a-b067-1b310c4334bf
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 255
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MSMQ-Secured-Source
-ldapDisplayName: MSMQ-SecuredSource
-attributeId: 1.2.840.113556.1.4.1713
-attributeSyntax: 2.5.5.8
-omSyntax: 1
-isSingleValued: TRUE
-schemaIdGuid: 8bf0221b-7a06-4d63-91f0-1499941813d3
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MSMQ-Authenticate
ldapDisplayName: mSMQAuthenticate
attributeId: 1.2.840.113556.1.4.923
@@ -7738,18 +8038,6 @@ searchFlags: 0
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingName
-ldapDisplayName: meetingName
-attributeId: 1.2.840.113556.1.4.566
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc7d-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MSMQ-Base-Priority
ldapDisplayName: mSMQBasePriority
attributeId: 1.2.840.113556.1.4.920
@@ -7867,17 +8155,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingOriginator
-ldapDisplayName: meetingOriginator
-attributeId: 1.2.840.113556.1.4.577
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc86-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MSMQ-Ds-Services
ldapDisplayName: mSMQDsServices
attributeId: 1.2.840.113556.1.4.1228
@@ -8000,17 +8277,6 @@ rangeUpper: 124
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingOwner
-ldapDisplayName: meetingOwner
-attributeId: 1.2.840.113556.1.4.579
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc88-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MSMQ-Long-Lived
ldapDisplayName: mSMQLongLived
attributeId: 1.2.840.113556.1.4.941
@@ -8033,6 +8299,19 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: MSMQ-Multicast-Address
+ldapDisplayName: MSMQ-MulticastAddress
+attributeId: 1.2.840.113556.1.4.1714
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 1d2f4412-f10d-4337-9b48-6e5b125cd265
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 9
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: MSMQ-Name-Style
ldapDisplayName: mSMQNameStyle
attributeId: 1.2.840.113556.1.4.939
@@ -8132,18 +8411,6 @@ rangeUpper: 2
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingProtocol
-ldapDisplayName: meetingProtocol
-attributeId: 1.2.840.113556.1.4.570
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc81-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MSMQ-QM-ID
ldapDisplayName: mSMQQMID
attributeId: 1.2.840.113556.1.4.951
@@ -8220,6 +8487,19 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: MSMQ-Recipient-FormatName
+ldapDisplayName: msMQ-Recipient-FormatName
+attributeId: 1.2.840.113556.1.4.1695
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 3bfe6748-b544-485a-b067-1b310c4334bf
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 255
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: MSMQ-Routing-Service
ldapDisplayName: mSMQRoutingService
attributeId: 1.2.840.113556.1.4.1237
@@ -8243,6 +8523,18 @@ searchFlags: 0
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: MSMQ-Secured-Source
+ldapDisplayName: MSMQ-SecuredSource
+attributeId: 1.2.840.113556.1.4.1713
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: 8bf0221b-7a06-4d63-91f0-1499941813d3
+systemOnly: FALSE
+searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: MSMQ-Services
ldapDisplayName: mSMQServices
attributeId: 1.2.840.113556.1.4.950
@@ -8266,17 +8558,6 @@ searchFlags: 0
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingRating
-ldapDisplayName: meetingRating
-attributeId: 1.2.840.113556.1.4.584
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc8d-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MSMQ-Sign-Certificates
ldapDisplayName: mSMQSignCertificates
attributeId: 1.2.840.113556.1.4.947
@@ -8397,17 +8678,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingRecurrence
-ldapDisplayName: meetingRecurrence
-attributeId: 1.2.840.113556.1.4.586
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc8f-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MSMQ-Site-Name-Ex
ldapDisplayName: mSMQSiteNameEx
attributeId: 1.2.840.113556.1.4.1416
@@ -8470,6 +8740,78 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: ms-net-ieee-80211-GP-PolicyData
+ldapDisplayName: ms-net-ieee-80211-GP-PolicyData
+attributeId: 1.2.840.113556.1.4.1952
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 9c1495a5-4d76-468e-991e-1433b0a67855
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 4194304
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-net-ieee-80211-GP-PolicyGUID
+ldapDisplayName: ms-net-ieee-80211-GP-PolicyGUID
+attributeId: 1.2.840.113556.1.4.1951
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 35697062-1eaf-448b-ac1e-388e0be4fdee
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 64
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-net-ieee-80211-GP-PolicyReserved
+ldapDisplayName: ms-net-ieee-80211-GP-PolicyReserved
+attributeId: 1.2.840.113556.1.4.1953
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 0f69c62e-088e-4ff5-a53a-e923cec07c0a
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 4194304
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-net-ieee-8023-GP-PolicyData
+ldapDisplayName: ms-net-ieee-8023-GP-PolicyData
+attributeId: 1.2.840.113556.1.4.1955
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 8398948b-7457-4d91-bd4d-8d7ed669c9f7
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 1048576
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-net-ieee-8023-GP-PolicyGUID
+ldapDisplayName: ms-net-ieee-8023-GP-PolicyGUID
+attributeId: 1.2.840.113556.1.4.1954
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 94a7b05a-b8b2-4f59-9c25-39e69baa1684
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 64
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-net-ieee-8023-GP-PolicyReserved
+ldapDisplayName: ms-net-ieee-8023-GP-PolicyReserved
+attributeId: 1.2.840.113556.1.4.1956
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: d3c527c7-2606-4deb-8cfd-18426feec8ce
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 1048576
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: msNPAllowDialin
ldapDisplayName: msNPAllowDialin
attributeId: 1.2.840.113556.1.4.1119
@@ -8516,26 +8858,18 @@ systemOnly: FALSE
searchFlags: fCOPY
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-PKI-Cert-Template-OID
-ldapDisplayName: msPKI-Cert-Template-OID
-attributeId: 1.2.840.113556.1.4.1436
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 3164c36a-ba26-468c-8bda-c1e5cc256728
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: meetingScope
-ldapDisplayName: meetingScope
-attributeId: 1.2.840.113556.1.4.581
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: ms-PKI-AccountCredentials
+ldapDisplayName: msPKIAccountCredentials
+attributeId: 1.2.840.113556.1.4.1894
+attributeSyntax: 2.5.5.7
+omSyntax: 127
+omObjectClass: 1.2.840.113556.1.1.1.11
isSingleValued: FALSE
-schemaIdGuid: 11b6cc8a-48c4-11d1-a9c3-0000f80367c1
+schemaIdGuid: b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7
systemOnly: FALSE
-searchFlags: 0
+searchFlags: fCONFIDENTIAL | fRODCFilteredAttribute
+attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8
+linkID: 2048
systemFlags: FLAG_SCHEMA_BASE_OBJECT
cn: ms-PKI-Certificate-Application-Policy
@@ -8571,6 +8905,31 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: ms-PKI-Cert-Template-OID
+ldapDisplayName: msPKI-Cert-Template-OID
+attributeId: 1.2.840.113556.1.4.1436
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 3164c36a-ba26-468c-8bda-c1e5cc256728
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-PKI-DPAPIMasterKeys
+ldapDisplayName: msPKIDPAPIMasterKeys
+attributeId: 1.2.840.113556.1.4.1893
+attributeSyntax: 2.5.5.7
+omSyntax: 127
+omObjectClass: 1.2.840.113556.1.1.1.11
+isSingleValued: FALSE
+schemaIdGuid: b3f93023-9239-4f7c-b99c-6745d87adbc2
+systemOnly: FALSE
+searchFlags: fCONFIDENTIAL | fRODCFilteredAttribute
+attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8
+linkID: 2046
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: ms-PKI-Enrollment-Flag
ldapDisplayName: msPKI-Enrollment-Flag
attributeId: 1.2.840.113556.1.4.1430
@@ -8616,28 +8975,28 @@ searchFlags: 0
rangeUpper: 32768
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-PKI-OID-User-Notice
-ldapDisplayName: msPKI-OID-User-Notice
-attributeId: 1.2.840.113556.1.4.1673
+cn: ms-PKI-OID-LocalizedName
+ldapDisplayName: msPKI-OIDLocalizedName
+attributeId: 1.2.840.113556.1.4.1712
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: 04c4da7a-e114-4e69-88de-e293f2d3b395
+schemaIdGuid: 7d59a816-bb05-4a72-971f-5c1331f67559
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 32768
+rangeUpper: 512
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-PKI-OID-LocalizedName
-ldapDisplayName: msPKI-OIDLocalizedName
-attributeId: 1.2.840.113556.1.4.1712
+cn: ms-PKI-OID-User-Notice
+ldapDisplayName: msPKI-OID-User-Notice
+attributeId: 1.2.840.113556.1.4.1673
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: 7d59a816-bb05-4a72-971f-5c1331f67559
+schemaIdGuid: 04c4da7a-e114-4e69-88de-e293f2d3b395
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 512
+rangeUpper: 32768
systemFlags: FLAG_SCHEMA_BASE_OBJECT
cn: ms-PKI-Private-Key-Flag
@@ -8651,29 +9010,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Machine-Role
-ldapDisplayName: machineRole
-attributeId: 1.2.840.113556.1.4.71
-attributeSyntax: 2.5.5.9
-omSyntax: 10
-isSingleValued: TRUE
-schemaIdGuid: bf9679b2-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: meetingStartTime
-ldapDisplayName: meetingStartTime
-attributeId: 1.2.840.113556.1.4.587
-attributeSyntax: 2.5.5.11
-omSyntax: 23
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc90-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-PKI-RA-Application-Policies
ldapDisplayName: msPKI-RA-Application-Policies
attributeId: 1.2.840.113556.1.4.1675
@@ -8707,6 +9043,18 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: ms-PKI-RoamingTimeStamp
+ldapDisplayName: msPKIRoamingTimeStamp
+attributeId: 1.2.840.113556.1.4.1892
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 6617e4ac-a2f1-43ab-b60c-11fbd1facf05
+systemOnly: FALSE
+searchFlags: fCONFIDENTIAL | fRODCFilteredAttribute
+attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: ms-PKI-Supersede-Templates
ldapDisplayName: msPKI-Supersede-Templates
attributeId: 1.2.840.113556.1.4.1437
@@ -8740,46 +9088,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-PKI-AccountCredentials
-ldapDisplayName: msPKIAccountCredentials
-attributeId: 1.2.840.113556.1.4.1894
-attributeSyntax: 2.5.5.7
-omSyntax: 127
-omObjectClass: 1.2.840.113556.1.1.1.11
-isSingleValued: FALSE
-schemaIdGuid: b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7
-systemOnly: FALSE
-searchFlags: fCONFIDENTIAL | fRODCFilteredAttribute
-attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8
-linkID: 2048
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ms-PKI-DPAPIMasterKeys
-ldapDisplayName: msPKIDPAPIMasterKeys
-attributeId: 1.2.840.113556.1.4.1893
-attributeSyntax: 2.5.5.7
-omSyntax: 127
-omObjectClass: 1.2.840.113556.1.1.1.11
-isSingleValued: FALSE
-schemaIdGuid: b3f93023-9239-4f7c-b99c-6745d87adbc2
-systemOnly: FALSE
-searchFlags: fCONFIDENTAIL | fRODCFilteredAttribute
-attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8
-linkID: 2046
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ms-PKI-RoamingTimeStamp
-ldapDisplayName: msPKIRoamingTimeStamp
-attributeId: 1.2.840.113556.1.4.1892
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 6617e4ac-a2f1-43ab-b60c-11fbd1facf05
-systemOnly: FALSE
-searchFlags: fCONFIDENTIAL | fRODCFilteredAttribute
-attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: msRADIUSCallbackNumber
ldapDisplayName: msRADIUSCallbackNumber
attributeId: 1.2.840.113556.1.4.1145
@@ -8792,17 +9100,6 @@ searchFlags: fCOPY
attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingType
-ldapDisplayName: meetingType
-attributeId: 1.2.840.113556.1.4.571
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 11b6cc82-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-RADIUS-FramedInterfaceId
ldapDisplayName: msRADIUS-FramedInterfaceId
attributeId: 1.2.840.113556.1.4.1913
@@ -8920,17 +9217,6 @@ systemOnly: FALSE
searchFlags: fCOPY
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: meetingURL
-ldapDisplayName: meetingURL
-attributeId: 1.2.840.113556.1.4.583
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 11b6cc8c-48c4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: msRASSavedFramedIPAddress
ldapDisplayName: msRASSavedFramedIPAddress
attributeId: 1.2.840.113556.1.4.1190
@@ -9041,23 +9327,6 @@ schemaIdGuid: 0dea42f5-278d-4157-b4a7-49b59664915b
systemOnly: FALSE
searchFlags: fATTINDEX
-cn: Member
-ldapDisplayName: member
-attributeId: 2.5.4.31
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: bf9679c0-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: bc0ac240-79a9-11d0-9020-00c04fc2d4cf
-linkID: 2
-mapiID: 32777
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: msSFU-30-Key-Attributes
ldapDisplayName: msSFU30KeyAttributes
attributeId: 1.2.840.113556.1.6.18.1.301
@@ -9166,17 +9435,6 @@ systemOnly: FALSE
searchFlags: fPRESERVEONDELETE | fATTINDEX
rangeUpper: 1024
-cn: MemberNisNetgroup
-ldapDisplayName: memberNisNetgroup
-attributeId: 1.3.6.1.1.1.1.13
-attributeSyntax: 2.5.5.5
-omSyntax: 22
-isSingleValued: FALSE
-schemaIdGuid: 0f6a17dc-53e5-4be8-9442-8f3ce2f9012a
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 153600
-
cn: msSFU-30-NSMAP-Field-Position
ldapDisplayName: msSFU30NSMAPFieldPosition
attributeId: 1.2.840.113556.1.6.18.1.345
@@ -9268,6 +9526,505 @@ systemOnly: FALSE
searchFlags: fATTINDEX
rangeUpper: 20480
+cn: MS-SQL-Alias
+ldapDisplayName: mS-SQL-Alias
+attributeId: 1.2.840.113556.1.4.1395
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: e0c6baae-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: fATTINDEX
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-AllowAnonymousSubscription
+ldapDisplayName: mS-SQL-AllowAnonymousSubscription
+attributeId: 1.2.840.113556.1.4.1394
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: db77be4a-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-AllowImmediateUpdatingSubscription
+ldapDisplayName: mS-SQL-AllowImmediateUpdatingSubscription
+attributeId: 1.2.840.113556.1.4.1404
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: c4186b6e-d34b-11d2-999a-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-AllowKnownPullSubscription
+ldapDisplayName: mS-SQL-AllowKnownPullSubscription
+attributeId: 1.2.840.113556.1.4.1403
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: c3bb7054-d34b-11d2-999a-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-AllowQueuedUpdatingSubscription
+ldapDisplayName: mS-SQL-AllowQueuedUpdatingSubscription
+attributeId: 1.2.840.113556.1.4.1405
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: c458ca80-d34b-11d2-999a-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-AllowSnapshotFilesFTPDownloading
+ldapDisplayName: mS-SQL-AllowSnapshotFilesFTPDownloading
+attributeId: 1.2.840.113556.1.4.1406
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: c49b8be8-d34b-11d2-999a-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-AppleTalk
+ldapDisplayName: mS-SQL-AppleTalk
+attributeId: 1.2.840.113556.1.4.1378
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 8fda89f4-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Applications
+ldapDisplayName: mS-SQL-Applications
+attributeId: 1.2.840.113556.1.4.1400
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: fbcda2ea-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Build
+ldapDisplayName: mS-SQL-Build
+attributeId: 1.2.840.113556.1.4.1368
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 603e94c4-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-CharacterSet
+ldapDisplayName: mS-SQL-CharacterSet
+attributeId: 1.2.840.113556.1.4.1370
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 696177a6-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Clustered
+ldapDisplayName: mS-SQL-Clustered
+attributeId: 1.2.840.113556.1.4.1373
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: 7778bd90-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-ConnectionURL
+ldapDisplayName: mS-SQL-ConnectionURL
+attributeId: 1.2.840.113556.1.4.1383
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: a92d23da-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Contact
+ldapDisplayName: mS-SQL-Contact
+attributeId: 1.2.840.113556.1.4.1365
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 4f6cbdd8-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-CreationDate
+ldapDisplayName: mS-SQL-CreationDate
+attributeId: 1.2.840.113556.1.4.1397
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: ede14754-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Database
+ldapDisplayName: mS-SQL-Database
+attributeId: 1.2.840.113556.1.4.1393
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: d5a0dbdc-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: fATTINDEX
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Description
+ldapDisplayName: mS-SQL-Description
+attributeId: 1.2.840.113556.1.4.1390
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 8386603c-ccef-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-GPSHeight
+ldapDisplayName: mS-SQL-GPSHeight
+attributeId: 1.2.840.113556.1.4.1387
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bcdd4f0e-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-GPSLatitude
+ldapDisplayName: mS-SQL-GPSLatitude
+attributeId: 1.2.840.113556.1.4.1385
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: b222ba0e-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-GPSLongitude
+ldapDisplayName: mS-SQL-GPSLongitude
+attributeId: 1.2.840.113556.1.4.1386
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: b7577c94-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-InformationDirectory
+ldapDisplayName: mS-SQL-InformationDirectory
+attributeId: 1.2.840.113556.1.4.1392
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: d0aedb2e-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-InformationURL
+ldapDisplayName: mS-SQL-InformationURL
+attributeId: 1.2.840.113556.1.4.1382
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: a42cd510-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Keywords
+ldapDisplayName: mS-SQL-Keywords
+attributeId: 1.2.840.113556.1.4.1401
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 01e9a98a-ccef-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Language
+ldapDisplayName: mS-SQL-Language
+attributeId: 1.2.840.113556.1.4.1389
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: c57f72f4-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-LastBackupDate
+ldapDisplayName: mS-SQL-LastBackupDate
+attributeId: 1.2.840.113556.1.4.1398
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: f2b6abca-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-LastDiagnosticDate
+ldapDisplayName: mS-SQL-LastDiagnosticDate
+attributeId: 1.2.840.113556.1.4.1399
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: f6d6dd88-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-LastUpdatedDate
+ldapDisplayName: mS-SQL-LastUpdatedDate
+attributeId: 1.2.840.113556.1.4.1381
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 9fcc43d4-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Location
+ldapDisplayName: mS-SQL-Location
+attributeId: 1.2.840.113556.1.4.1366
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 561c9644-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Memory
+ldapDisplayName: mS-SQL-Memory
+attributeId: 1.2.840.113556.1.4.1367
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 5b5d448c-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-MultiProtocol
+ldapDisplayName: mS-SQL-MultiProtocol
+attributeId: 1.2.840.113556.1.4.1375
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 8157fa38-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Name
+ldapDisplayName: mS-SQL-Name
+attributeId: 1.2.840.113556.1.4.1363
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 3532dfd8-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: fATTINDEX
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-NamedPipe
+ldapDisplayName: mS-SQL-NamedPipe
+attributeId: 1.2.840.113556.1.4.1374
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 7b91c840-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-PublicationURL
+ldapDisplayName: mS-SQL-PublicationURL
+attributeId: 1.2.840.113556.1.4.1384
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: ae0c11b8-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Publisher
+ldapDisplayName: mS-SQL-Publisher
+attributeId: 1.2.840.113556.1.4.1402
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: c1676858-d34b-11d2-999a-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-RegisteredOwner
+ldapDisplayName: mS-SQL-RegisteredOwner
+attributeId: 1.2.840.113556.1.4.1364
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 48fd44ea-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-ServiceAccount
+ldapDisplayName: mS-SQL-ServiceAccount
+attributeId: 1.2.840.113556.1.4.1369
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 64933a3e-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Size
+ldapDisplayName: mS-SQL-Size
+attributeId: 1.2.840.113556.1.4.1396
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: e9098084-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-SortOrder
+ldapDisplayName: mS-SQL-SortOrder
+attributeId: 1.2.840.113556.1.4.1371
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 6ddc42c0-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-SPX
+ldapDisplayName: mS-SQL-SPX
+attributeId: 1.2.840.113556.1.4.1376
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 86b08004-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Status
+ldapDisplayName: mS-SQL-Status
+attributeId: 1.2.840.113556.1.4.1380
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 9a7d4770-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-TCPIP
+ldapDisplayName: mS-SQL-TCPIP
+attributeId: 1.2.840.113556.1.4.1377
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 8ac263a6-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-ThirdParty
+ldapDisplayName: mS-SQL-ThirdParty
+attributeId: 1.2.840.113556.1.4.1407
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: c4e311fc-d34b-11d2-999a-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Type
+ldapDisplayName: mS-SQL-Type
+attributeId: 1.2.840.113556.1.4.1391
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: ca48eba8-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-UnicodeSortOrder
+ldapDisplayName: mS-SQL-UnicodeSortOrder
+attributeId: 1.2.840.113556.1.4.1372
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 72dc918a-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Version
+ldapDisplayName: mS-SQL-Version
+attributeId: 1.2.840.113556.1.4.1388
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: c07cc1d0-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: fATTINDEX
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-Vines
+ldapDisplayName: mS-SQL-Vines
+attributeId: 1.2.840.113556.1.4.1379
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 94c56394-ccee-11d2-9993-0000f87a57d4
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: ms-TAPI-Conference-Blob
ldapDisplayName: msTAPI-ConferenceBlob
attributeId: 1.2.840.113556.1.4.1700
@@ -9290,22 +10047,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Is-Member-Of-DL
-ldapDisplayName: memberOf
-attributeId: 1.2.840.113556.1.2.102
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: bf967991-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: fCOPY
-attributeSecurityGuid: bc0ac240-79a9-11d0-9020-00c04fc2d4cf
-linkID: 3
-mapiID: 32776
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-TAPI-Protocol-Id
ldapDisplayName: msTAPI-ProtocolId
attributeId: 1.2.840.113556.1.4.1699
@@ -9336,7 +10077,7 @@ attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
schemaIdGuid: aa4e1a6d-550d-4e05-8c35-4afcb917a9fe
-searchFlags: fRODCFilteredAttribute | fCOPY | fPRESERVEONDELETE |fPDNTATTINDEX | fATTINDEX
+searchFlags: fPRESERVEONDELETE | fCOPY | fCONFIDENTIAL |fRODCFilteredAttribute
rangeUpper: 128
systemFlags: FLAG_SCHEMA_BASE_OBJECT
@@ -9421,17 +10162,6 @@ attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e
systemFlags: FLAG_SCHEMA_BASE_OBJECT
showInAdvancedViewOnly: TRUE
-cn: MemberUid
-ldapDisplayName: memberUid
-attributeId: 1.3.6.1.1.1.1.12
-attributeSyntax: 2.5.5.5
-omSyntax: 22
-isSingleValued: FALSE
-schemaIdGuid: 03dab236-672e-4f61-ab64-f77d2dc2ffab
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 256000
-
cn: MS-TS-ExpireDate3
ldapDisplayName: msTSExpireDate3
attributeId: 1.2.840.113556.1.4.2003
@@ -9564,17 +10294,6 @@ rangeUpper: 32767
schemaIdGuid: 87e53590-971d-4a52-955b-4794d15a84ae
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MHS-OR-Address
-ldapDisplayName: mhsORAddress
-attributeId: 1.2.840.113556.1.4.650
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 0296c122-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MS-TSLS-Property02
ldapDisplayName: msTSLSProperty02
attributeId: 1.2.840.113556.1.4.2010
@@ -9701,19 +10420,6 @@ rangeLower: 0
rangeUpper: 32767
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Other-Name
-ldapDisplayName: middleName
-attributeId: 2.16.840.1.113730.3.1.34
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bf9679f2-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 64
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MS-TS-Property02
ldapDisplayName: msTSProperty02
attributeId: 1.2.840.113556.1.4.1992
@@ -9828,19 +10534,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Min-Pwd-Age
-ldapDisplayName: minPwdAge
-attributeId: 1.2.840.113556.1.4.78
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf9679c2-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-WMI-ID
ldapDisplayName: msWMI-ID
attributeId: 1.2.840.113556.1.4.1627
@@ -9951,31 +10644,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Machine-Wide-Policy
-ldapDisplayName: machineWidePolicy
-attributeId: 1.2.840.113556.1.4.459
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: 80a67e4f-9f22-11d0-afdd-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: a29b8a01-c7e8-11d0-9bae-00c04fd92ef5
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Min-Pwd-Length
-ldapDisplayName: minPwdLength
-attributeId: 1.2.840.113556.1.4.79
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: bf9679c3-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-WMI-intMax
ldapDisplayName: msWMI-IntMax
attributeId: 1.2.840.113556.1.4.1629
@@ -10086,18 +10754,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Min-Ticket-Age
-ldapDisplayName: minTicketAge
-attributeId: 1.2.840.113556.1.4.80
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: bf9679c4-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: ms-WMI-PropertyName
ldapDisplayName: msWMI-PropertyName
attributeId: 1.2.840.113556.1.4.1641
@@ -10208,21 +10864,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Phone-Mobile-Primary
-ldapDisplayName: mobile
-attributeId: 0.9.2342.19200300.100.1.41
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: f0f8ffa3-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14876
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-WMI-TargetPath
ldapDisplayName: msWMI-TargetPath
attributeId: 1.2.840.113556.1.4.1648
@@ -10257,785 +10898,1310 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Modified-Count
-ldapDisplayName: modifiedCount
-attributeId: 1.2.840.113556.1.4.168
-attributeSyntax: 2.5.5.16
-omSyntax: 65
+cn: Name-Service-Flags
+ldapDisplayName: nameServiceFlags
+attributeId: 1.2.840.113556.1.4.753
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: bf9679c5-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 80212840-4bdc-11d1-a9c4-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: NC-Name
+ldapDisplayName: nCName
+attributeId: 1.2.840.113556.1.2.16
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: TRUE
+schemaIdGuid: bf9679d6-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: fPRESERVEONDELETE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Modified-Count-At-Last-Prom
-ldapDisplayName: modifiedCountAtLastProm
-attributeId: 1.2.840.113556.1.4.81
-attributeSyntax: 2.5.5.16
-omSyntax: 65
+cn: NETBIOS-Name
+ldapDisplayName: nETBIOSName
+attributeId: 1.2.840.113556.1.4.87
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: bf9679c6-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: bf9679d8-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
-searchFlags: 0
+searchFlags: fATTINDEX
+rangeLower: 1
+rangeUpper: 16
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Modify-Time-Stamp
-ldapDisplayName: modifyTimeStamp
-attributeId: 2.5.18.2
-attributeSyntax: 2.5.5.11
-omSyntax: 24
+cn: netboot-Allow-New-Clients
+ldapDisplayName: netbootAllowNewClients
+attributeId: 1.2.840.113556.1.4.849
+attributeSyntax: 2.5.5.8
+omSyntax: 1
isSingleValued: TRUE
-schemaIdGuid: 9a7ad94a-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
+schemaIdGuid: 07383076-91df-11d1-aebc-0000f80367c1
+systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Moniker
-ldapDisplayName: moniker
-attributeId: 1.2.840.113556.1.4.82
+cn: netboot-Answer-Only-Valid-Clients
+ldapDisplayName: netbootAnswerOnlyValidClients
+attributeId: 1.2.840.113556.1.4.854
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: 0738307b-91df-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: netboot-Answer-Requests
+ldapDisplayName: netbootAnswerRequests
+attributeId: 1.2.840.113556.1.4.853
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: 0738307a-91df-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: netboot-Current-Client-Count
+ldapDisplayName: netbootCurrentClientCount
+attributeId: 1.2.840.113556.1.4.852
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 07383079-91df-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Netboot-GUID
+ldapDisplayName: netbootGUID
+attributeId: 1.2.840.113556.1.4.359
attributeSyntax: 2.5.5.10
omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: bf9679c7-0de6-11d0-a285-00aa003049e2
+isSingleValued: TRUE
+schemaIdGuid: 3e978921-8c01-11d0-afda-00c04fd930c9
+systemOnly: FALSE
+searchFlags: fATTINDEX
+rangeLower: 16
+rangeUpper: 16
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Netboot-Initialization
+ldapDisplayName: netbootInitialization
+attributeId: 1.2.840.113556.1.4.358
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 3e978920-8c01-11d0-afda-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Moniker-Display-Name
-ldapDisplayName: monikerDisplayName
-attributeId: 1.2.840.113556.1.4.83
+cn: netboot-IntelliMirror-OSes
+ldapDisplayName: netbootIntelliMirrorOSes
+attributeId: 1.2.840.113556.1.4.857
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: bf9679c8-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 0738307e-91df-11d1-aebc-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Move-Tree-State
-ldapDisplayName: moveTreeState
-attributeId: 1.2.840.113556.1.4.1305
-attributeSyntax: 2.5.5.10
-omSyntax: 4
+cn: netboot-Limit-Clients
+ldapDisplayName: netbootLimitClients
+attributeId: 1.2.840.113556.1.4.850
+attributeSyntax: 2.5.5.8
+omSyntax: 1
+isSingleValued: TRUE
+schemaIdGuid: 07383077-91df-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: netboot-Locally-Installed-OSes
+ldapDisplayName: netbootLocallyInstalledOSes
+attributeId: 1.2.840.113556.1.4.859
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: 1f2ac2c8-3b71-11d2-90cc-00c04fd91ab1
+schemaIdGuid: 07383080-91df-11d1-aebc-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-DS-Consistency-Child-Count
-ldapDisplayName: mS-DS-ConsistencyChildCount
-attributeId: 1.2.840.113556.1.4.1361
+cn: Netboot-Machine-File-Path
+ldapDisplayName: netbootMachineFilePath
+attributeId: 1.2.840.113556.1.4.361
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 3e978923-8c01-11d0-afda-00c04fd930c9
+systemOnly: FALSE
+searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: netboot-Max-Clients
+ldapDisplayName: netbootMaxClients
+attributeId: 1.2.840.113556.1.4.851
attributeSyntax: 2.5.5.9
omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: 178b7bc2-b63a-11d2-90e1-00c04fd91ab1
+schemaIdGuid: 07383078-91df-11d1-aebc-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: E-mail-Addresses
-ldapDisplayName: mail
-attributeId: 0.9.2342.19200300.100.1.3
+cn: Netboot-Mirror-Data-File
+ldapDisplayName: netbootMirrorDataFile
+attributeId: 1.2.840.113556.1.4.1241
attributeSyntax: 2.5.5.12
omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 2df90d85-009f-11d2-aa4c-00c04fd7d83a
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: netboot-New-Machine-Naming-Policy
+ldapDisplayName: netbootNewMachineNamingPolicy
+attributeId: 1.2.840.113556.1.4.855
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 0738307c-91df-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: netboot-New-Machine-OU
+ldapDisplayName: netbootNewMachineOU
+attributeId: 1.2.840.113556.1.4.856
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: TRUE
-schemaIdGuid: bf967961-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 0738307d-91df-11d1-aebc-0000f80367c1
systemOnly: FALSE
-searchFlags: fATTINDEX
-rangeLower: 0
-rangeUpper: 256
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 14846
-isMemberOfPartialAttributeSet: TRUE
+searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-DS-Consistency-Guid
-ldapDisplayName: mS-DS-ConsistencyGuid
-attributeId: 1.2.840.113556.1.4.1360
-attributeSyntax: 2.5.5.10
-omSyntax: 4
+cn: netboot-SCP-BL
+ldapDisplayName: netbootSCPBL
+attributeId: 1.2.840.113556.1.4.864
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: 07383082-91df-11d1-aebc-0000f80367c1
+systemOnly: TRUE
+searchFlags: 0
+linkID: 101
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+
+cn: netboot-Server
+ldapDisplayName: netbootServer
+attributeId: 1.2.840.113556.1.4.860
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: TRUE
-schemaIdGuid: 23773dc2-b63a-11d2-90e1-00c04fd91ab1
+schemaIdGuid: 07383081-91df-11d1-aebc-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+linkID: 100
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-DS-Creator-SID
-ldapDisplayName: mS-DS-CreatorSID
-attributeId: 1.2.840.113556.1.4.1410
-attributeSyntax: 2.5.5.17
-omSyntax: 4
+cn: Netboot-SIF-File
+ldapDisplayName: netbootSIFFile
+attributeId: 1.2.840.113556.1.4.1240
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 2df90d84-009f-11d2-aa4c-00c04fd7d83a
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: netboot-Tools
+ldapDisplayName: netbootTools
+attributeId: 1.2.840.113556.1.4.858
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 0738307f-91df-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Network-Address
+ldapDisplayName: networkAddress
+attributeId: 1.2.840.113556.1.2.459
+attributeSyntax: 2.5.5.4
+omSyntax: 20
+isSingleValued: FALSE
+schemaIdGuid: bf9679d9-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 0
+rangeUpper: 256
+mapiID: 33136
+
+cn: Next-Level-Store
+ldapDisplayName: nextLevelStore
+attributeId: 1.2.840.113556.1.4.214
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: TRUE
-schemaIdGuid: c5e60132-1480-11d3-91c1-0000f87a57d4
-systemOnly: TRUE
-searchFlags: fATTINDEX
+schemaIdGuid: bf9679da-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-DS-Machine-Account-Quota
-ldapDisplayName: ms-DS-MachineAccountQuota
-attributeId: 1.2.840.113556.1.4.1411
+cn: Next-Rid
+ldapDisplayName: nextRid
+attributeId: 1.2.840.113556.1.4.88
attributeSyntax: 2.5.5.9
omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: d064fb68-1480-11d3-91c1-0000f87a57d4
+schemaIdGuid: bf9679db-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-DS-Replicates-NC-Reason
-ldapDisplayName: mS-DS-ReplicatesNCReason
-attributeId: 1.2.840.113556.1.4.1408
-attributeSyntax: 2.5.5.7
+cn: NisMapEntry
+ldapDisplayName: nisMapEntry
+attributeId: 1.3.6.1.1.1.1.27
+attributeSyntax: 2.5.5.5
+omSyntax: 22
+isSingleValued: TRUE
+schemaIdGuid: 4a95216e-fcc0-402e-b57f-5971626148a9
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 1024
+
+cn: NisMapName
+ldapDisplayName: nisMapName
+attributeId: 1.3.6.1.1.1.1.26
+attributeSyntax: 2.5.5.5
+omSyntax: 22
+isSingleValued: TRUE
+schemaIdGuid: 969d3c79-0e9a-4d95-b0ac-bdde7ff8f3a1
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 1024
+
+cn: NisNetgroupTriple
+ldapDisplayName: nisNetgroupTriple
+attributeId: 1.3.6.1.1.1.1.14
+attributeSyntax: 2.5.5.5
+omSyntax: 22
+isSingleValued: FALSE
+schemaIdGuid: a8032e74-30ef-4ff5-affc-0fc217783fec
+systemOnly: FALSE
+searchFlags: 0
+rangeUpper: 153600
+
+cn: Non-Security-Member
+ldapDisplayName: nonSecurityMember
+attributeId: 1.2.840.113556.1.4.530
+attributeSyntax: 2.5.5.1
omSyntax: 127
-omObjectClass: 1.2.840.113556.1.1.1.11
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: FALSE
-schemaIdGuid: 0ea12b84-08b3-11d3-91bc-0000f87a57d4
+schemaIdGuid: 52458018-ca6a-11d0-afff-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+linkID: 50
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ms-net-ieee-80211-GP-PolicyData
-ldapDisplayName: ms-net-ieee-80211-GP-PolicyData
-attributeId: 1.2.840.113556.1.4.1952
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Non-Security-Member-BL
+ldapDisplayName: nonSecurityMemberBL
+attributeId: 1.2.840.113556.1.4.531
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: 52458019-ca6a-11d0-afff-0000f80367c1
+systemOnly: TRUE
+searchFlags: 0
+linkID: 51
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+
+cn: Notification-List
+ldapDisplayName: notificationList
+attributeId: 1.2.840.113556.1.4.303
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: TRUE
-schemaIdGuid: 9c1495a5-4d76-468e-991e-1433b0a67855
+schemaIdGuid: 19195a56-6da0-11d0-afd3-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 4194304
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-net-ieee-80211-GP-PolicyGUID
-ldapDisplayName: ms-net-ieee-80211-GP-PolicyGUID
-attributeId: 1.2.840.113556.1.4.1951
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: NT-Group-Members
+ldapDisplayName: nTGroupMembers
+attributeId: 1.2.840.113556.1.4.89
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: FALSE
+schemaIdGuid: bf9679df-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: NT-Mixed-Domain
+ldapDisplayName: nTMixedDomain
+attributeId: 1.2.840.113556.1.4.357
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: 35697062-1eaf-448b-ac1e-388e0be4fdee
+schemaIdGuid: 3e97891f-8c01-11d0-afda-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 64
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ms-net-ieee-80211-GP-PolicyReserved
-ldapDisplayName: ms-net-ieee-80211-GP-PolicyReserved
-attributeId: 1.2.840.113556.1.4.1953
+cn: Nt-Pwd-History
+ldapDisplayName: ntPwdHistory
+attributeId: 1.2.840.113556.1.4.94
attributeSyntax: 2.5.5.10
omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 0f69c62e-088e-4ff5-a53a-e923cec07c0a
+isSingleValued: FALSE
+schemaIdGuid: bf9679e2-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 4194304
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ms-net-ieee-8023-GP-PolicyData
-ldapDisplayName: ms-net-ieee-8023-GP-PolicyData
-attributeId: 1.2.840.113556.1.4.1955
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: NT-Security-Descriptor
+ldapDisplayName: nTSecurityDescriptor
+attributeId: 1.2.840.113556.1.2.281
+attributeSyntax: 2.5.5.15
+omSyntax: 66
isSingleValued: TRUE
-schemaIdGuid: 8398948b-7457-4d91-bd4d-8d7ed669c9f7
+schemaIdGuid: bf9679e3-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fPRESERVEONDELETE
+rangeLower: 0
+rangeUpper: 132096
+mapiID: 32787
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_OPERATIONAL |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Obj-Dist-Name
+ldapDisplayName: distinguishedName
+attributeId: 2.5.4.49
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: TRUE
+schemaIdGuid: bf9679e4-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags:fPRESERVEONDELETE
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 32828
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Object-Category
+ldapDisplayName: objectCategory
+attributeId: 1.2.840.113556.1.4.782
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: TRUE
+schemaIdGuid: 26d97369-6070-11d1-a9c6-0000f80367c1
systemOnly: FALSE
+searchFlags: fATTINDEX
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Object-Class
+ldapDisplayName: objectClass
+attributeId: 2.5.4.0
+attributeSyntax: 2.5.5.2
+omSyntax: 6
+isSingleValued: FALSE
+schemaIdGuid: bf9679e5-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: fATTINDEX | fPRESERVEONDELETE
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Object-Class-Category
+ldapDisplayName: objectClassCategory
+attributeId: 1.2.840.113556.1.2.370
+attributeSyntax: 2.5.5.9
+omSyntax: 10
+isSingleValued: TRUE
+schemaIdGuid: bf9679e6-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
searchFlags: 0
-rangeUpper: 1048576
+rangeLower: 0
+rangeUpper: 3
+mapiID: 33014
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: ms-net-ieee-8023-GP-PolicyGUID
-ldapDisplayName: ms-net-ieee-8023-GP-PolicyGUID
-attributeId: 1.2.840.113556.1.4.1954
+cn: Object-Classes
+ldapDisplayName: objectClasses
+attributeId: 2.5.21.6
attributeSyntax: 2.5.5.12
omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 9a7ad94b-ca53-11d1-bbd0-0080c76670c0
+systemOnly: TRUE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Object-Count
+ldapDisplayName: objectCount
+attributeId: 1.2.840.113556.1.4.506
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: 94a7b05a-b8b2-4f59-9c25-39e69baa1684
+schemaIdGuid: 34aaa216-b699-11d0-afee-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 64
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-net-ieee-8023-GP-PolicyReserved
-ldapDisplayName: ms-net-ieee-8023-GP-PolicyReserved
-attributeId: 1.2.840.113556.1.4.1956
+cn: Object-Guid
+ldapDisplayName: objectGUID
+attributeId: 1.2.840.113556.1.4.2
attributeSyntax: 2.5.5.10
omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: d3c527c7-2606-4deb-8cfd-18426feec8ce
+schemaIdGuid: bf9679e7-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: fPRESERVEONDELETE | fATTINDEX
+rangeLower: 16
+rangeUpper: 16
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 35949
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Object-Sid
+ldapDisplayName: objectSid
+attributeId: 1.2.840.113556.1.4.146
+attributeSyntax: 2.5.5.17
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: bf9679e8-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: fPRESERVEONDELETE | fATTINDEX
+rangeLower: 0
+rangeUpper: 28
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
+mapiID: 32807
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Object-Version
+ldapDisplayName: objectVersion
+attributeId: 1.2.840.113556.1.2.76
+attributeSyntax: 2.5.5.9
+omSyntax: 2
+isSingleValued: TRUE
+schemaIdGuid: 16775848-47f3-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-rangeUpper: 1048576
+mapiID: 33015
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: SMTP-Mail-Address
-ldapDisplayName: mailAddress
-attributeId: 1.2.840.113556.1.4.786
+cn: OEM-Information
+ldapDisplayName: oEMInformation
+attributeId: 1.2.840.113556.1.4.151
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 26d9736f-6070-11d1-a9c6-0000f80367c1
+schemaIdGuid: bf9679ea-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
+rangeLower: 0
+rangeUpper: 32767
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-Alias
-ldapDisplayName: mS-SQL-Alias
-attributeId: 1.2.840.113556.1.4.1395
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: OM-Object-Class
+ldapDisplayName: oMObjectClass
+attributeId: 1.2.840.113556.1.2.218
+attributeSyntax: 2.5.5.10
+omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: e0c6baae-ccee-11d2-9993-0000f87a57d4
-systemOnly: FALSE
-searchFlags: fATTINDEX
-isMemberOfPartialAttributeSet: TRUE
+schemaIdGuid: bf9679ec-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: 0
+mapiID: 33021
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-AllowAnonymousSubscription
-ldapDisplayName: mS-SQL-AllowAnonymousSubscription
-attributeId: 1.2.840.113556.1.4.1394
-attributeSyntax: 2.5.5.8
-omSyntax: 1
+cn: OM-Syntax
+ldapDisplayName: oMSyntax
+attributeId: 1.2.840.113556.1.2.231
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: db77be4a-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: bf9679ed-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: fPRESERVEONDELETE
+mapiID: 33022
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: OMT-Guid
+ldapDisplayName: oMTGuid
+attributeId: 1.2.840.113556.1.4.505
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: ddac0cf3-af8f-11d0-afeb-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
+rangeLower: 0
+rangeUpper: 16
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-AllowImmediateUpdatingSubscription
-ldapDisplayName: mS-SQL-AllowImmediateUpdatingSubscription
-attributeId: 1.2.840.113556.1.4.1404
-attributeSyntax: 2.5.5.8
-omSyntax: 1
+cn: OMT-Indx-Guid
+ldapDisplayName: oMTIndxGuid
+attributeId: 1.2.840.113556.1.4.333
+attributeSyntax: 2.5.5.10
+omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: c4186b6e-d34b-11d2-999a-0000f87a57d4
+schemaIdGuid: 1f0075fa-7e40-11d0-afd6-00c04fd930c9
systemOnly: FALSE
-searchFlags: 0
+searchFlags: fATTINDEX
+rangeLower: 0
+rangeUpper: 16
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-AllowKnownPullSubscription
-ldapDisplayName: mS-SQL-AllowKnownPullSubscription
-attributeId: 1.2.840.113556.1.4.1403
-attributeSyntax: 2.5.5.8
-omSyntax: 1
+cn: OncRpcNumber
+ldapDisplayName: oncRpcNumber
+attributeId: 1.3.6.1.1.1.1.18
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: c3bb7054-d34b-11d2-999a-0000f87a57d4
+schemaIdGuid: 966825f5-01d9-4a5c-a011-d15ae84efa55
systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-AllowQueuedUpdatingSubscription
-ldapDisplayName: mS-SQL-AllowQueuedUpdatingSubscription
-attributeId: 1.2.840.113556.1.4.1405
-attributeSyntax: 2.5.5.8
-omSyntax: 1
+cn: Operating-System
+ldapDisplayName: operatingSystem
+attributeId: 1.2.840.113556.1.4.363
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: c458ca80-d34b-11d2-999a-0000f87a57d4
+schemaIdGuid: 3e978925-8c01-11d0-afda-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-AllowSnapshotFilesFTPDownloading
-ldapDisplayName: mS-SQL-AllowSnapshotFilesFTPDownloading
-attributeId: 1.2.840.113556.1.4.1406
-attributeSyntax: 2.5.5.8
-omSyntax: 1
+cn: Operating-System-Hotfix
+ldapDisplayName: operatingSystemHotfix
+attributeId: 1.2.840.113556.1.4.415
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: c49b8be8-d34b-11d2-999a-0000f87a57d4
+schemaIdGuid: bd951b3c-9c96-11d0-afdd-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-AppleTalk
-ldapDisplayName: mS-SQL-AppleTalk
-attributeId: 1.2.840.113556.1.4.1378
+cn: Operating-System-Service-Pack
+ldapDisplayName: operatingSystemServicePack
+attributeId: 1.2.840.113556.1.4.365
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 8fda89f4-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 3e978927-8c01-11d0-afda-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-Applications
-ldapDisplayName: mS-SQL-Applications
-attributeId: 1.2.840.113556.1.4.1400
+cn: Operating-System-Version
+ldapDisplayName: operatingSystemVersion
+attributeId: 1.2.840.113556.1.4.364
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: fbcda2ea-ccee-11d2-9993-0000f87a57d4
+isSingleValued: TRUE
+schemaIdGuid: 3e978926-8c01-11d0-afda-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-Build
-ldapDisplayName: mS-SQL-Build
-attributeId: 1.2.840.113556.1.4.1368
+cn: Operator-Count
+ldapDisplayName: operatorCount
+attributeId: 1.2.840.113556.1.4.144
attributeSyntax: 2.5.5.9
omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: 603e94c4-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: bf9679ee-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-CharacterSet
-ldapDisplayName: mS-SQL-CharacterSet
-attributeId: 1.2.840.113556.1.4.1370
+cn: Option-Description
+ldapDisplayName: optionDescription
+attributeId: 1.2.840.113556.1.4.712
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 963d274d-48be-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Options
+ldapDisplayName: options
+attributeId: 1.2.840.113556.1.4.307
attributeSyntax: 2.5.5.9
omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: 696177a6-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 19195a53-6da0-11d0-afd3-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Managed-By
-ldapDisplayName: managedBy
-attributeId: 1.2.840.113556.1.4.653
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: 0296c120-40da-11d1-a9c0-0000f80367c1
+cn: Options-Location
+ldapDisplayName: optionsLocation
+attributeId: 1.2.840.113556.1.4.713
+attributeSyntax: 2.5.5.5
+omSyntax: 19
+isSingleValued: FALSE
+schemaIdGuid: 963d274e-48be-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-linkID: 72
-mapiID: 32780
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: organizationalStatus
+ldapDisplayName: organizationalStatus
+attributeId: 0.9.2342.19200300.100.1.45
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 28596019-7349-4d2f-adff-5a629961f942
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 256
+
+cn: Organizational-Unit-Name
+ldapDisplayName: ou
+attributeId: 2.5.4.11
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: bf9679f0-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fATTINDEX
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 33026
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: MS-SQL-Clustered
-ldapDisplayName: mS-SQL-Clustered
-attributeId: 1.2.840.113556.1.4.1373
-attributeSyntax: 2.5.5.8
-omSyntax: 1
+cn: Organization-Name
+ldapDisplayName: o
+attributeId: 2.5.4.10
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: bf9679ef-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 33025
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Original-Display-Table
+ldapDisplayName: originalDisplayTable
+attributeId: 1.2.840.113556.1.2.445
+attributeSyntax: 2.5.5.10
+omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: 7778bd90-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 5fd424ce-1262-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 32768
+mapiID: 33027
+
+cn: Original-Display-Table-MSDOS
+ldapDisplayName: originalDisplayTableMSDOS
+attributeId: 1.2.840.113556.1.2.214
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 5fd424cf-1262-11d0-a060-00aa006c33ed
systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 32768
+mapiID: 33028
+
+cn: Other-Login-Workstations
+ldapDisplayName: otherLoginWorkstations
+attributeId: 1.2.840.113556.1.4.91
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: bf9679f1-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fCOPY
+rangeLower: 0
+rangeUpper: 1024
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-ConnectionURL
-ldapDisplayName: mS-SQL-ConnectionURL
-attributeId: 1.2.840.113556.1.4.1383
+cn: Other-Mailbox
+ldapDisplayName: otherMailbox
+attributeId: 1.2.840.113556.1.4.651
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: a92d23da-ccee-11d2-9993-0000f87a57d4
+isSingleValued: FALSE
+schemaIdGuid: 0296c123-40da-11d1-a9c0-0000f80367c1
systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-cn: MS-SQL-Contact
-ldapDisplayName: mS-SQL-Contact
-attributeId: 1.2.840.113556.1.4.1365
+cn: Other-Name
+ldapDisplayName: middleName
+attributeId: 2.16.840.1.113730.3.1.34
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 4f6cbdd8-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: bf9679f2-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
+rangeLower: 0
+rangeUpper: 64
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-CreationDate
-ldapDisplayName: mS-SQL-CreationDate
-attributeId: 1.2.840.113556.1.4.1397
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Other-Well-Known-Objects
+ldapDisplayName: otherWellKnownObjects
+attributeId: 1.2.840.113556.1.4.1359
+attributeSyntax: 2.5.5.7
+omSyntax: 127
+omObjectClass: 1.2.840.113556.1.1.1.11
+isSingleValued: FALSE
+schemaIdGuid: 1ea64e5d-ac0f-11d2-90df-00c04fd91ab1
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 16
+rangeUpper: 16
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Owner
+ldapDisplayName: owner
+attributeId: 2.5.4.32
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: TRUE
-schemaIdGuid: ede14754-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: bf9679f3-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
+linkID: 44
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Database
-ldapDisplayName: mS-SQL-Database
-attributeId: 1.2.840.113556.1.4.1393
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Package-Flags
+ldapDisplayName: packageFlags
+attributeId: 1.2.840.113556.1.4.327
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: d5a0dbdc-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 7d6c0e99-7e20-11d0-afd6-00c04fd930c9
systemOnly: FALSE
searchFlags: fATTINDEX
-isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Description
-ldapDisplayName: mS-SQL-Description
-attributeId: 1.2.840.113556.1.4.1390
+cn: Package-Name
+ldapDisplayName: packageName
+attributeId: 1.2.840.113556.1.4.326
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 8386603c-ccef-11d2-9993-0000f87a57d4
+schemaIdGuid: 7d6c0e98-7e20-11d0-afd6-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-GPSHeight
-ldapDisplayName: mS-SQL-GPSHeight
-attributeId: 1.2.840.113556.1.4.1387
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Package-Type
+ldapDisplayName: packageType
+attributeId: 1.2.840.113556.1.4.324
+attributeSyntax: 2.5.5.9
+omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: bcdd4f0e-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 7d6c0e96-7e20-11d0-afd6-00c04fd930c9
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-GPSLatitude
-ldapDisplayName: mS-SQL-GPSLatitude
-attributeId: 1.2.840.113556.1.4.1385
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Parent-CA
+ldapDisplayName: parentCA
+attributeId: 1.2.840.113556.1.4.557
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: TRUE
-schemaIdGuid: b222ba0e-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 5245801b-ca6a-11d0-afff-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-GPSLongitude
-ldapDisplayName: mS-SQL-GPSLongitude
-attributeId: 1.2.840.113556.1.4.1386
-attributeSyntax: 2.5.5.12
-omSyntax: 64
+cn: Parent-CA-Certificate-Chain
+ldapDisplayName: parentCACertificateChain
+attributeId: 1.2.840.113556.1.4.685
+attributeSyntax: 2.5.5.10
+omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: b7577c94-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 963d2733-48be-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-InformationDirectory
-ldapDisplayName: mS-SQL-InformationDirectory
-attributeId: 1.2.840.113556.1.4.1392
-attributeSyntax: 2.5.5.8
-omSyntax: 1
+cn: Parent-GUID
+ldapDisplayName: parentGUID
+attributeId: 1.2.840.113556.1.4.1224
+attributeSyntax: 2.5.5.10
+omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: d0aedb2e-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 2df90d74-009f-11d2-aa4c-00c04fd7d83a
+systemOnly: TRUE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Partial-Attribute-Deletion-List
+ldapDisplayName: partialAttributeDeletionList
+attributeId: 1.2.840.113556.1.4.663
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 28630ec0-41d5-11d1-a9c1-0000f80367c1
+systemOnly: TRUE
+searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Partial-Attribute-Set
+ldapDisplayName: partialAttributeSet
+attributeId: 1.2.840.113556.1.4.640
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 19405b9e-3cfa-11d1-a9c0-0000f80367c1
+systemOnly: TRUE
+searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Pek-Key-Change-Interval
+ldapDisplayName: pekKeyChangeInterval
+attributeId: 1.2.840.113556.1.4.866
+attributeSyntax: 2.5.5.16
+omSyntax: 65
+isSingleValued: TRUE
+schemaIdGuid: 07383084-91df-11d1-aebc-0000f80367c1
systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Managed-Objects
-ldapDisplayName: managedObjects
-attributeId: 1.2.840.113556.1.4.654
+cn: Pek-List
+ldapDisplayName: pekList
+attributeId: 1.2.840.113556.1.4.865
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 07383083-91df-11d1-aebc-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
+cn: Pending-CA-Certificates
+ldapDisplayName: pendingCACertificates
+attributeId: 1.2.840.113556.1.4.693
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 963d273c-48be-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Pending-Parent-CA
+ldapDisplayName: pendingParentCA
+attributeId: 1.2.840.113556.1.4.695
attributeSyntax: 2.5.5.1
omSyntax: 127
omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: FALSE
-schemaIdGuid: 0296c124-40da-11d1-a9c0-0000f80367c1
-systemOnly: TRUE
+schemaIdGuid: 963d273e-48be-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
searchFlags: 0
-linkID: 73
-mapiID: 32804
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-InformationURL
-ldapDisplayName: mS-SQL-InformationURL
-attributeId: 1.2.840.113556.1.4.1382
+cn: Per-Msg-Dialog-Display-Table
+ldapDisplayName: perMsgDialogDisplayTable
+attributeId: 1.2.840.113556.1.2.325
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 5fd424d3-1262-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 32768
+mapiID: 33032
+
+cn: Per-Recip-Dialog-Display-Table
+ldapDisplayName: perRecipDialogDisplayTable
+attributeId: 1.2.840.113556.1.2.326
+attributeSyntax: 2.5.5.10
+omSyntax: 4
+isSingleValued: TRUE
+schemaIdGuid: 5fd424d4-1262-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 32768
+mapiID: 33033
+
+cn: Personal-Title
+ldapDisplayName: personalTitle
+attributeId: 1.2.840.113556.1.2.615
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: a42cd510-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 16775858-47f3-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 35947
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Keywords
-ldapDisplayName: mS-SQL-Keywords
-attributeId: 1.2.840.113556.1.4.1401
+cn: Phone-Fax-Other
+ldapDisplayName: otherFacsimileTelephoneNumber
+attributeId: 1.2.840.113556.1.4.646
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: FALSE
-schemaIdGuid: 01e9a98a-ccef-11d2-9993-0000f87a57d4
+schemaIdGuid: 0296c11d-40da-11d1-a9c0-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Language
-ldapDisplayName: mS-SQL-Language
-attributeId: 1.2.840.113556.1.4.1389
+cn: Phone-Home-Other
+ldapDisplayName: otherHomePhone
+attributeId: 1.2.840.113556.1.2.277
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: c57f72f4-ccee-11d2-9993-0000f87a57d4
+isSingleValued: FALSE
+schemaIdGuid: f0f8ffa2-1191-11d0-a060-00aa006c33ed
systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14895
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-LastBackupDate
-ldapDisplayName: mS-SQL-LastBackupDate
-attributeId: 1.2.840.113556.1.4.1398
+cn: Phone-Home-Primary
+ldapDisplayName: homePhone
+attributeId: 0.9.2342.19200300.100.1.20
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: f2b6abca-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: f0f8ffa1-1191-11d0-a060-00aa006c33ed
systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14857
+isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-LastDiagnosticDate
-ldapDisplayName: mS-SQL-LastDiagnosticDate
-attributeId: 1.2.840.113556.1.4.1399
+cn: Phone-Ip-Other
+ldapDisplayName: otherIpPhone
+attributeId: 1.2.840.113556.1.4.722
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: f6d6dd88-ccee-11d2-9993-0000f87a57d4
+isSingleValued: FALSE
+schemaIdGuid: 4d146e4b-48d4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-LastUpdatedDate
-ldapDisplayName: mS-SQL-LastUpdatedDate
-attributeId: 1.2.840.113556.1.4.1381
+cn: Phone-Ip-Primary
+ldapDisplayName: ipPhone
+attributeId: 1.2.840.113556.1.4.721
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 9fcc43d4-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 4d146e4a-48d4-11d1-a9c3-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Location
-ldapDisplayName: mS-SQL-Location
-attributeId: 1.2.840.113556.1.4.1366
+cn: Phone-ISDN-Primary
+ldapDisplayName: primaryInternationalISDNNumber
+attributeId: 1.2.840.113556.1.4.649
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 561c9644-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: 0296c11f-40da-11d1-a9c0-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Memory
-ldapDisplayName: mS-SQL-Memory
-attributeId: 1.2.840.113556.1.4.1367
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 5b5d448c-ccee-11d2-9993-0000f87a57d4
+cn: Phone-Mobile-Other
+ldapDisplayName: otherMobile
+attributeId: 1.2.840.113556.1.4.647
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 0296c11e-40da-11d1-a9c0-0000f80367c1
systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-MultiProtocol
-ldapDisplayName: mS-SQL-MultiProtocol
-attributeId: 1.2.840.113556.1.4.1375
+cn: Phone-Mobile-Primary
+ldapDisplayName: mobile
+attributeId: 0.9.2342.19200300.100.1.41
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 8157fa38-ccee-11d2-9993-0000f87a57d4
+schemaIdGuid: f0f8ffa3-1191-11d0-a060-00aa006c33ed
systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14876
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MS-SQL-Name
-ldapDisplayName: mS-SQL-Name
-attributeId: 1.2.840.113556.1.4.1363
+cn: Phone-Office-Other
+ldapDisplayName: otherTelephone
+attributeId: 1.2.840.113556.1.2.18
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 3532dfd8-ccee-11d2-9993-0000f87a57d4
+isSingleValued: FALSE
+schemaIdGuid: f0f8ffa5-1191-11d0-a060-00aa006c33ed
systemOnly: FALSE
-searchFlags: fATTINDEX
-isMemberOfPartialAttributeSet: TRUE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14875
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Comment-v2
-ldapDisplayName: msDFS-Commentv2
-attributeId: 1.2.840.113556.1.4.2036
+cn: Phone-Pager-Other
+ldapDisplayName: otherPager
+attributeId: 1.2.840.113556.1.2.118
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 4fb42f00-29bd-4f82-b94b-07c7fa61e449
-isMemberOfPartialAttributeSet: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 32766
-
-cn: ms-DFS-Generation-GUID-v2
-ldapDisplayName: msDFS-GenerationGUIDv2
-attributeId: 1.2.840.113556.1.4.2032
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 62a45d41-424c-4905-b728-e5ef1fc4fe42
-isMemberOfPartialAttributeSet: FALSE
+isSingleValued: FALSE
+schemaIdGuid: f0f8ffa4-1191-11d0-a060-00aa006c33ed
+systemOnly: FALSE
searchFlags: 0
-rangeLower: 16
-rangeUpper: 16
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 35950
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Last-Modified-v2
-ldapDisplayName: msDFS-LastModifiedv2
-attributeId: 1.2.840.113556.1.4.2034
-attributeSyntax: 2.5.5.11
-omSyntax: 24
+cn: Phone-Pager-Primary
+ldapDisplayName: pager
+attributeId: 0.9.2342.19200300.100.1.42
+attributeSyntax: 2.5.5.12
+omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: d6147e9b-b369-4b98-9f7b-1f345bb0680a
-isMemberOfPartialAttributeSet: FALSE
+schemaIdGuid: f0f8ffa6-1191-11d0-a060-00aa006c33ed
+systemOnly: FALSE
searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14881
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Link-Identity-GUID-v2
-ldapDisplayName: msDFS-LinkIdentityGUIDv2
-attributeId: 1.2.840.113556.1.4.2041
+cn: photo
+ldapDisplayName: photo
+attributeId: 0.9.2342.19200300.100.1.7
attributeSyntax: 2.5.5.10
omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 19e2bd91-e8fa-49b2-be2b-7efd5ae5676d
-isMemberOfPartialAttributeSet: FALSE
+isSingleValued: FALSE
+schemaIdGuid: 9c979768-ba1a-4c08-9632-c6a5c1ed649a
+systemOnly: FALSE
searchFlags: 0
-rangeLower:16
-rangeUpper: 16
-cn: ms-DFS-Link-Path-v2
-ldapDisplayName: msDFS-LinkPathv2
-attributeId: 1.2.840.113556.1.4.2039
+cn: Physical-Delivery-Office-Name
+ldapDisplayName: physicalDeliveryOfficeName
+attributeId: 2.5.4.19
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: 5882bb1e-3101-4845-a21e-1516e59279f2
-isMemberOfPartialAttributeSet: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 32766
+schemaIdGuid: bf9679f7-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fANR | fATTINDEX
+rangeLower: 1
+rangeUpper: 128
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+mapiID: 14873
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Link-Security-Descriptor-v2
-ldapDisplayName: msDFS-LinkSecurityDescriptorv2
-attributeId: 1.2.840.113556.1.4.2040
-attributeSyntax: 2.5.5.15
-omSyntax: 66
+cn: Physical-Location-Object
+ldapDisplayName: physicalLocationObject
+attributeId: 1.2.840.113556.1.4.514
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: TRUE
-schemaIdGuid: d780b945-3caa-4d28-975b-eb3f08e455e1
-isMemberOfPartialAttributeSet: FALSE
-searchFlags: 0
+schemaIdGuid: b7b13119-b82e-11d0-afee-0000f80367c1
+systemOnly: FALSE
+searchFlags: fATTINDEX
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Namespace-Identity-GUID-v2
-ldapDisplayName: msDFS-NamespaceIdentityGUIDv2
-attributeId: 1.2.840.113556.1.4.2033
+cn: Picture
+ldapDisplayName: thumbnailPhoto
+attributeId: 2.16.840.1.113730.3.1.35
attributeSyntax: 2.5.5.10
omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: 87011f22-e651-4c27-b55b-51daf9f9d364
-isMemberOfPartialAttributeSet: FALSE
+schemaIdGuid: 8d3bca50-1d7e-11d0-a081-00aa006c33ed
+systemOnly: FALSE
searchFlags: 0
-rangeLower: 16
-rangeUpper: 16
+rangeLower: 0
+rangeUpper: 102400
+mapiId: 35998
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Properties-v2
-ldapDisplayName: msDFS-Propertiesv2
-attributeId: 1.2.840.113556.1.4.2037
+cn: PKI-Critical-Extensions
+ldapDisplayName: pKICriticalExtensions
+attributeId: 1.2.840.113556.1.4.1330
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 1c070014-ebf6-4088-95b4-28b16cc31241
-isMemberOfPartialAttributeSet: FALSE
+isSingleValued: FALSE
+schemaIdGuid: fc5a9106-3b9d-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
searchFlags: 0
-rangeLower: 0
-rangeUpper: 1024
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Schema-Major-Version
-ldapDisplayName: msDFS-SchemaMajorVersion
-attributeId: 1.2.840.113556.1.4.2030
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 2bcf447b-39d8-4ee8-909a-bb0755cc2f8d
-isMemberOfPartialAttributeSet: FALSE
+cn: PKI-Default-CSPs
+ldapDisplayName: pKIDefaultCSPs
+attributeId: 1.2.840.113556.1.4.1334
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 1ef6336e-3b9e-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
searchFlags: 0
-rangeLower: 2
-rangeUpper: 2
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Schema-Minor-Version
-ldapDisplayName: msDFS-SchemaMinorVersion
-attributeId: 1.2.840.113556.1.4.2031
+cn: PKI-Default-Key-Spec
+ldapDisplayName: pKIDefaultKeySpec
+attributeId: 1.2.840.113556.1.4.1327
attributeSyntax: 2.5.5.9
omSyntax: 2
isSingleValued: TRUE
-schemaIdGuid: d1e1dafb-8559-4519-866e-89e775557b9c
-isMemberOfPartialAttributeSet: FALSE
+schemaIdGuid: 426cae6e-3b9d-11d2-90cc-00c04fd91ab1
+systemOnly: FALSE
searchFlags: 0
-rangeLower: 0
-rangeUpper: 0
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Short-Name-Link-Path-v2
-ldapDisplayName: msDFS-ShortNameLinkPathv2
-attributeId: 1.2.840.113556.1.4.2042
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 52bfc673-9713-4e9b-aafd-56ee72fd16a4
-isMemberOfPartialAttributeSet: FALSE
+cn: PKI-Enrollment-Access
+ldapDisplayName: pKIEnrollmentAccess
+attributeId: 1.2.840.113556.1.4.1335
+attributeSyntax: 2.5.5.15
+omSyntax: 66
+isSingleValued: FALSE
+schemaIdGuid: 926be278-56f9-11d2-90d0-00c04fd91ab1
+systemOnly: FALSE
searchFlags: 0
-rangeLower: 0
-rangeUpper: 32766
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ms-DFS-Target-List-v2
-ldapDisplayName: msDFS-TargetListv2
-attributeId: 1.2.840.113556.1.4.2038
+cn: PKI-Expiration-Period
+ldapDisplayName: pKIExpirationPeriod
+attributeId: 1.2.840.113556.1.4.1331
attributeSyntax: 2.5.5.10
omSyntax: 4
isSingleValued: TRUE
-schemaIdGuid: 9649b643-59a7-4791-999d-79100cf871d7
-isMemberOfPartialAttributeSet: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 2097152
-
-cn: ms-DFS-Ttl-v2
-ldapDisplayName: msDFS-Ttlv2
-attributeId: 1.2.840.113556.1.4.2035
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 81ee1500-467e-4c83-a41a-295d12bdcc23
-isMemberOfPartialAttributeSet: FALSE
-searchFlags: 0
-
-cn: ms-DS-Is-User-Cachable-At-Rodc
-ldapDisplayName: msDS-IsUserCachableAtRodc
-attributeId: 1.2.840.113556.1.4.2025
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: fe01245a-341f-4556-951f-48c033a89050
+schemaIdGuid: 041570d2-3b9e-11d2-90cc-00c04fd91ab1
systemOnly: FALSE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: RDN
-ldapDisplayName: name
-attributeId: 1.2.840.113556.1.4.1
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bf967a0e-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: fPRESERVEONDELETE| fANR | fATTINDEX
-rangeLower: 1
-rangeUpper: 255
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 33282
isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Netboot-Initialization
-ldapDisplayName: netbootInitialization
-attributeId: 1.2.840.113556.1.4.358
+cn: PKI-Extended-Key-Usage
+ldapDisplayName: pKIExtendedKeyUsage
+attributeId: 1.2.840.113556.1.4.1333
attributeSyntax: 2.5.5.12
omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 3e978920-8c01-11d0-afda-00c04fd930c9
+isSingleValued: FALSE
+schemaIdGuid: 18976af6-3b9e-11d2-90cc-00c04fd91ab1
systemOnly: FALSE
searchFlags: 0
+isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
cn: PKI-Key-Usage
@@ -11130,7 +12296,7 @@ isSingleValued: FALSE
schemaIdGuid: 9a7ad94c-ca53-11d1-bbd0-0080c76670c0
systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Poss-Superiors
@@ -11161,17 +12327,6 @@ attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
mapiID: 33036
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: netboot-IntelliMirror-OSes
-ldapDisplayName: netbootIntelliMirrorOSes
-attributeId: 1.2.840.113556.1.4.857
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 0738307e-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Postal-Code
ldapDisplayName: postalCode
attributeId: 2.5.4.17
@@ -11298,17 +12453,6 @@ isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: netboot-Limit-Clients
-ldapDisplayName: netbootLimitClients
-attributeId: 1.2.840.113556.1.4.850
-attributeSyntax: 2.5.5.8
-omSyntax: 1
-isSingleValued: TRUE
-schemaIdGuid: 07383077-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Primary-Group-Token
ldapDisplayName: primaryGroupToken
attributeId: 1.2.840.113556.1.4.1412
@@ -11321,34 +12465,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Phone-ISDN-Primary
-ldapDisplayName: primaryInternationalISDNNumber
-attributeId: 1.2.840.113556.1.4.649
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 0296c11f-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Telex-Primary
-ldapDisplayName: primaryTelexNumber
-attributeId: 1.2.840.113556.1.4.648
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 0296c121-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Print-Attributes
ldapDisplayName: printAttributes
attributeId: 1.2.840.113556.1.4.247
@@ -11429,17 +12545,6 @@ searchFlags: 0
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: netboot-Locally-Installed-OSes
-ldapDisplayName: netbootLocallyInstalledOSes
-attributeId: 1.2.840.113556.1.4.859
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 07383080-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Print-Form-Name
ldapDisplayName: printFormName
attributeId: 1.2.840.113556.1.4.235
@@ -11554,18 +12659,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Netboot-Machine-File-Path
-ldapDisplayName: netbootMachineFilePath
-attributeId: 1.2.840.113556.1.4.361
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 3e978923-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Print-Memory
ldapDisplayName: printMemory
attributeId: 1.2.840.113556.1.4.282
@@ -11681,17 +12774,6 @@ searchFlags: 0
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: netboot-Max-Clients
-ldapDisplayName: netbootMaxClients
-attributeId: 1.2.840.113556.1.4.851
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 07383078-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Print-Rate-Unit
ldapDisplayName: printRateUnit
attributeId: 1.2.840.113556.1.4.286
@@ -11807,17 +12889,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Netboot-Mirror-Data-File
-ldapDisplayName: netbootMirrorDataFile
-attributeId: 1.2.840.113556.1.4.1241
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 2df90d85-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Private-Key
ldapDisplayName: privateKey
attributeId: 1.2.840.113556.1.4.101
@@ -11943,17 +13014,6 @@ systemOnly: FALSE
searchFlags: 0
mapiID: 33201
-cn: netboot-New-Machine-Naming-Policy
-ldapDisplayName: netbootNewMachineNamingPolicy
-attributeId: 1.2.840.113556.1.4.855
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 0738307c-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Proxy-Lifetime
ldapDisplayName: proxyLifetime
attributeId: 1.2.840.113556.1.4.103
@@ -12079,18 +13139,6 @@ searchFlags: 0
linkID: 69
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-cn: netboot-New-Machine-OU
-ldapDisplayName: netbootNewMachineOU
-attributeId: 1.2.840.113556.1.4.856
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: 0738307d-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Query-Policy-Object
ldapDisplayName: queryPolicyObject
attributeId: 1.2.840.113556.1.4.607
@@ -12133,6 +13181,23 @@ isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: RDN
+ldapDisplayName: name
+attributeId: 1.2.840.113556.1.4.1
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf967a0e-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: fPRESERVEONDELETE| fANR | fATTINDEX
+rangeLower: 1
+rangeUpper: 255
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 33282
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: RDN-Att-ID
ldapDisplayName: rDNAttID
attributeId: 1.2.840.113556.1.2.26
@@ -12216,20 +13281,6 @@ systemOnly: TRUE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: netboot-SCP-BL
-ldapDisplayName: netbootSCPBL
-attributeId: 1.2.840.113556.1.4.864
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: 07383082-91df-11d1-aebc-0000f80367c1
-systemOnly: TRUE
-searchFlags: 0
-linkID: 101
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-isSingleValued: TRUE
-
cn: Repl-Interval
ldapDisplayName: replInterval
attributeId: 1.2.840.113556.1.4.1336
@@ -12280,6 +13331,21 @@ isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+cn: Reports
+ldapDisplayName: directReports
+attributeId: 1.2.840.113556.1.2.436
+attributeSyntax: 2.5.5.1
+omSyntax: 127
+omObjectClass: 1.3.12.2.1011.28.0.714
+isSingleValued: FALSE
+schemaIdGuid: bf967a1c-0de6-11d0-a285-00aa003049e2
+systemOnly: TRUE
+searchFlags: 0
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+linkID: 43
+mapiID: 32782
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
+
cn: Reps-From
ldapDisplayName: repsFrom
attributeId: 1.2.840.113556.1.2.91
@@ -12357,30 +13423,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Name-Service-Flags
-ldapDisplayName: nameServiceFlags
-attributeId: 1.2.840.113556.1.4.753
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 80212840-4bdc-11d1-a9c4-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: netboot-Server
-ldapDisplayName: netbootServer
-attributeId: 1.2.840.113556.1.4.860
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: 07383081-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-linkID: 100
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: RID-Allocation-Pool
ldapDisplayName: rIDAllocationPool
attributeId: 1.2.840.113556.1.4.371
@@ -12504,17 +13546,6 @@ schemaIdGuid: 81d7f8c2-e327-4a0d-91c6-b42d4009115f
systemOnly: FALSE
searchFlags: 0
-cn: Netboot-SIF-File
-ldapDisplayName: netbootSIFFile
-attributeId: 1.2.840.113556.1.4.1240
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 2df90d84-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Root-Trust
ldapDisplayName: rootTrust
attributeId: 1.2.840.113556.1.4.674
@@ -12627,17 +13658,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: netboot-Tools
-ldapDisplayName: netbootTools
-attributeId: 1.2.840.113556.1.4.858
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 0738307f-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: rpc-Ns-Transfer-Syntax
ldapDisplayName: rpcNsTransferSyntax
attributeId: 1.2.840.113556.1.4.314
@@ -12711,7 +13731,7 @@ attributeSyntax: 2.5.5.9
omSyntax: 2
isSingleValued: TRUE
schemaIdGuid: bf967a2b-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
+systemOnly: TRUE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
@@ -12765,19 +13785,6 @@ searchFlags: 0
mapiID: 33148
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Network-Address
-ldapDisplayName: networkAddress
-attributeId: 1.2.840.113556.1.2.459
-attributeSyntax: 2.5.5.4
-omSyntax: 20
-isSingleValued: FALSE
-schemaIdGuid: bf9679d9-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 256
-mapiID: 33136
-
cn: Scope-Flags
ldapDisplayName: scopeFlags
attributeId: 1.2.840.113556.1.4.1354
@@ -12812,7 +13819,7 @@ schemaIdGuid: c3dbafa6-33df-11d2-98b2-0000f87a57d4
systemOnly: FALSE
searchFlags: 0
attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Search-Flags
@@ -12903,18 +13910,6 @@ rangeUpper: 64
mapiID: 33072
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Next-Level-Store
-ldapDisplayName: nextLevelStore
-attributeId: 1.2.840.113556.1.4.214
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: bf9679da-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Server-Name
ldapDisplayName: serverName
attributeId: 1.2.840.113556.1.4.223
@@ -12957,7 +13952,6 @@ searchFlags: 0
linkID: 95
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-isSingleValued: TRUE
cn: Server-Role
ldapDisplayName: serverRole
@@ -13042,18 +14036,6 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Next-Rid
-ldapDisplayName: nextRid
-attributeId: 1.2.840.113556.1.4.88
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: bf9679db-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: Service-DNS-Name-Type
ldapDisplayName: serviceDNSNameType
attributeId: 1.2.840.113556.1.4.659
@@ -13166,17 +14148,6 @@ schemaIdGuid: a76b8737-e5a1-4568-b057-dc12e04be4b2
systemOnly: FALSE
searchFlags: 0
-cn: NisMapEntry
-ldapDisplayName: nisMapEntry
-attributeId: 1.3.6.1.1.1.1.27
-attributeSyntax: 2.5.5.5
-omSyntax: 22
-isSingleValued: TRUE
-schemaIdGuid: 4a95216e-fcc0-402e-b57f-5971626148a9
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 1024
-
cn: ShadowWarning
ldapDisplayName: shadowWarning
attributeId: 1.3.6.1.1.1.1.8
@@ -13261,7 +14232,6 @@ attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-systemOnly: TRUE
cn: Signature-Algorithms
ldapDisplayName: signatureAlgorithms
@@ -13302,17 +14272,6 @@ linkID: 142
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: NisMapName
-ldapDisplayName: nisMapName
-attributeId: 1.3.6.1.1.1.1.26
-attributeSyntax: 2.5.5.5
-omSyntax: 22
-isSingleValued: TRUE
-schemaIdGuid: 969d3c79-0e9a-4d95-b0ac-bdde7ff8f3a1
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 1024
-
cn: Site-List
ldapDisplayName: siteList
attributeId: 1.2.840.113556.1.4.821
@@ -13366,20 +14325,15 @@ systemOnly: FALSE
searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Surname
-ldapDisplayName: sn
-attributeId: 2.5.4.4
+cn: SMTP-Mail-Address
+ldapDisplayName: mailAddress
+attributeId: 1.2.840.113556.1.4.786
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
-schemaIdGuid: bf967a41-0de6-11d0-a285-00aa003049e2
+schemaIdGuid: 26d9736f-6070-11d1-a9c6-0000f80367c1
systemOnly: FALSE
-searchFlags: fANR | fATTINDEX
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 14865
-isMemberOfPartialAttributeSet: TRUE
+searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
@@ -13429,22 +14383,6 @@ isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Address
-ldapDisplayName: streetAddress
-attributeId: 1.2.840.113556.1.2.256
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: f0f8ff84-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 1024
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14889
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: Structural-Object-Class
ldapDisplayName: structuralObjectClass
attributeId: 2.5.21.9
@@ -13457,17 +14395,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: NisNetgroupTriple
-ldapDisplayName: nisNetgroupTriple
-attributeId: 1.3.6.1.1.1.1.14
-attributeSyntax: 2.5.5.5
-omSyntax: 22
-isSingleValued: FALSE
-schemaIdGuid: a8032e74-30ef-4ff5-affc-0fc217783fec
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 153600
-
cn: Sub-Class-Of
ldapDisplayName: subClassOf
attributeId: 1.2.840.113556.1.2.21
@@ -13505,7 +14432,7 @@ isSingleValued: FALSE
schemaIdGuid: 9a7ad94d-ca53-11d1-bbd0-0080c76670c0
systemOnly: TRUE
searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Superior-DNS-Root
@@ -13565,6 +14492,23 @@ systemOnly: FALSE
searchFlags: 0
mapiID: 33085
+cn: Surname
+ldapDisplayName: sn
+attributeId: 2.5.4.4
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf967a41-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: fANR | fATTINDEX
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 14865
+isMemberOfPartialAttributeSet: TRUE
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: Sync-Attributes
ldapDisplayName: syncAttributes
attributeId: 1.2.840.113556.1.4.666
@@ -13589,19 +14533,6 @@ searchFlags: 0
linkID: 78
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Non-Security-Member
-ldapDisplayName: nonSecurityMember
-attributeId: 1.2.840.113556.1.4.530
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: 52458018-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-linkID: 50
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Sync-With-Object
ldapDisplayName: syncWithObject
attributeId: 1.2.840.113556.1.4.664
@@ -13728,32 +14659,6 @@ attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
mapiID: 33091
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: NC-Name
-ldapDisplayName: nCName
-attributeId: 1.2.840.113556.1.2.16
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: bf9679d6-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: fPRESERVEONDELETE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Non-Security-Member-BL
-ldapDisplayName: nonSecurityMemberBL
-attributeId: 1.2.840.113556.1.4.531
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: 52458019-ca6a-11d0-afff-0000f80367c1
-systemOnly: TRUE
-searchFlags: 0
-linkID: 51
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-
cn: Telex-Number
ldapDisplayName: telexNumber
attributeId: 2.5.4.21
@@ -13769,6 +14674,20 @@ attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
mapiID: 14892
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: Telex-Primary
+ldapDisplayName: primaryTelexNumber
+attributeId: 1.2.840.113556.1.4.648
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: 0296c121-40da-11d1-a9c0-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+rangeLower: 1
+rangeUpper: 64
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: Template-Roots
ldapDisplayName: templateRoots
attributeId: 1.2.840.113556.1.4.1346
@@ -13804,10 +14723,25 @@ omSyntax: 4
isSingleValued: TRUE
schemaIdGuid: 6db69a1c-9422-11d1-aebd-0000f80367c1
systemOnly: FALSE
-searchFlags: 0
+searchFlags: fATTINDEX
rangeUpper: 20480
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: Text-Country
+ldapDisplayName: co
+attributeId: 1.2.840.113556.1.2.131
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: f0f8ffa7-1191-11d0-a060-00aa006c33ed
+systemOnly: FALSE
+searchFlags: fCOPY
+rangeLower: 1
+rangeUpper: 128
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
+mapiID: 14886
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: Text-Encoded-OR-Address
ldapDisplayName: textEncodedORAddress
attributeId: 0.9.2342.19200300.100.1.2
@@ -13821,35 +14755,6 @@ rangeLower: 1
rangeUpper: 1024
mapiID: 35969
-cn: Logo
-ldapDisplayName: thumbnailLogo
-attributeId: 2.16.840.1.113730.3.1.36
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: bf9679a9-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 32767
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Picture
-ldapDisplayName: thumbnailPhoto
-attributeId: 2.16.840.1.113730.3.1.35
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 8d3bca50-1d7e-11d0-a081-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 102400
-mapiId: 35998
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Time-Refresh
ldapDisplayName: timeRefresh
attributeId: 1.2.840.113556.1.4.503
@@ -13897,22 +14802,9 @@ schemaIdGuid: b7c69e6d-2cc7-11d2-854e-00a0c983f608
systemOnly: FALSE
searchFlags: 0
attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Additional-Information
-ldapDisplayName: notes
-attributeId: 1.2.840.113556.1.4.265
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 6d05fb41-246b-11d0-a9c8-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 32768
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Token-Groups-Global-And-Universal
ldapDisplayName: tokenGroupsGlobalAndUniversal
attributeId: 1.2.840.113556.1.4.1418
@@ -13923,7 +14815,7 @@ schemaIdGuid: 46a9b11d-60ae-405a-b7e8-ff8a58d456d2
systemOnly: FALSE
searchFlags: 0
attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Token-Groups-No-GC-Acceptable
@@ -13936,7 +14828,7 @@ schemaIdGuid: 040fc392-33df-11d2-98b2-0000f87a57d4
systemOnly: FALSE
searchFlags: 0
attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED |FLAG_DOMAIN_DISALLOW_RENAME
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
cn: Tombstone-Lifetime
@@ -14040,18 +14932,6 @@ rangeUpper: 32767
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Notification-List
-ldapDisplayName: notificationList
-attributeId: 1.2.840.113556.1.4.303
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: 19195a56-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Trust-Auth-Outgoing
ldapDisplayName: trustAuthOutgoing
attributeId: 1.2.840.113556.1.4.135
@@ -14178,17 +15058,6 @@ searchFlags: fATTINDEX
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: NT-Group-Members
-ldapDisplayName: nTGroupMembers
-attributeId: 1.2.840.113556.1.4.89
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: bf9679df-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Unicode-Pwd
ldapDisplayName: unicodePwd
attributeId: 1.2.840.113556.1.4.90
@@ -14294,31 +15163,6 @@ searchFlags: 0
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: WWW-Page-Other
-ldapDisplayName: url
-attributeId: 1.2.840.113556.1.4.749
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 9a9a0221-4a5b-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: e45795b3-9455-11d1-aebd-0000f80367c1
-mapiID: 33141
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: NT-Mixed-Domain
-ldapDisplayName: nTMixedDomain
-attributeId: 1.2.840.113556.1.4.357
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 3e97891f-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: User-Account-Control
ldapDisplayName: userAccountControl
attributeId: 1.2.840.113556.1.4.8
@@ -14349,21 +15193,6 @@ mapiID: 14882
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: X509-Cert
-ldapDisplayName: userCertificate
-attributeId: 2.5.4.36
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: bf967a7f-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-rangeUpper: 32768
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 35946
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: userClass
ldapDisplayName: userClass
attributeId: 0.9.2342.19200300.100.1.8
@@ -14376,6 +15205,19 @@ searchFlags: 0
rangeLower: 1
rangeUpper: 256
+cn: User-Comment
+ldapDisplayName: comment
+attributeId: 1.2.840.113556.1.4.156
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: TRUE
+schemaIdGuid: bf967a6a-0de6-11d0-a285-00aa003049e2
+systemOnly: FALSE
+searchFlags: 0
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
+
cn: User-Parameters
ldapDisplayName: userParameters
attributeId: 1.2.840.113556.1.4.138
@@ -14455,18 +15297,6 @@ searchFlags: 0
attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Nt-Pwd-History
-ldapDisplayName: ntPwdHistory
-attributeId: 1.2.840.113556.1.4.94
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: bf9679e2-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: User-SMIME-Certificate
ldapDisplayName: userSMIMECertificate
attributeId: 2.16.840.1.113730.3.140
@@ -14601,22 +15431,6 @@ rangeLower: 0
rangeUpper: 512
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: NT-Security-Descriptor
-ldapDisplayName: nTSecurityDescriptor
-attributeId: 1.2.840.113556.1.2.281
-attributeSyntax: 2.5.5.15
-omSyntax: 66
-isSingleValued: TRUE
-schemaIdGuid: bf9679e3-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fPRESERVEONDELETE
-rangeLower: 0
-rangeUpper: 132096
-mapiID: 32787
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_OPERATIONAL |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: Version-Number
ldapDisplayName: versionNumber
attributeId: 1.2.840.113556.1.4.141
@@ -14743,23 +15557,6 @@ isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-cn: Organization-Name
-ldapDisplayName: o
-attributeId: 2.5.4.10
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: bf9679ef-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 33025
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
cn: Winsock-Addresses
ldapDisplayName: winsockAddresses
attributeId: 1.2.840.113556.1.4.142
@@ -14786,6 +15583,19 @@ rangeUpper: 2048
attributeSecurityGuid: e45795b3-9455-11d1-aebd-0000f80367c1
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: WWW-Page-Other
+ldapDisplayName: url
+attributeId: 1.2.840.113556.1.4.749
+attributeSyntax: 2.5.5.12
+omSyntax: 64
+isSingleValued: FALSE
+schemaIdGuid: 9a9a0221-4a5b-11d1-a9c3-0000f80367c1
+systemOnly: FALSE
+searchFlags: 0
+attributeSecurityGuid: e45795b3-9455-11d1-aebd-0000f80367c1
+mapiID: 33141
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: X121-Address
ldapDisplayName: x121Address
attributeId: 2.5.4.24
@@ -14811,871 +15621,18 @@ schemaIdGuid: d07da11f-8a3d-42b6-b0aa-76c962be719a
systemOnly: FALSE
searchFlags: 0
-cn: Object-Category
-ldapDisplayName: objectCategory
-attributeId: 1.2.840.113556.1.4.782
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: 26d97369-6070-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-searchFlags: fATTINDEX
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Object-Class
-ldapDisplayName: objectClass
-attributeId: 2.5.4.0
-attributeSyntax: 2.5.5.2
-omSyntax: 6
-isSingleValued: FALSE
-schemaIdGuid: bf9679e5-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: fPRESERVEONDELETE
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: NETBIOS-Name
-ldapDisplayName: nETBIOSName
-attributeId: 1.2.840.113556.1.4.87
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bf9679d8-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fATTINDEX
-rangeLower: 1
-rangeUpper: 16
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Object-Class-Category
-ldapDisplayName: objectClassCategory
-attributeId: 1.2.840.113556.1.2.370
-attributeSyntax: 2.5.5.9
-omSyntax: 10
-isSingleValued: TRUE
-schemaIdGuid: bf9679e6-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 3
-mapiID: 33014
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Object-Classes
-ldapDisplayName: objectClasses
-attributeId: 2.5.21.6
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 9a7ad94b-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Object-Count
-ldapDisplayName: objectCount
-attributeId: 1.2.840.113556.1.4.506
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 34aaa216-b699-11d0-afee-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Object-Guid
-ldapDisplayName: objectGUID
-attributeId: 1.2.840.113556.1.4.2
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: bf9679e7-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: fPRESERVEONDELETE | fATTINDEX
-rangeLower: 16
-rangeUpper: 16
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 35949
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Object-Sid
-ldapDisplayName: objectSid
-attributeId: 1.2.840.113556.1.4.146
-attributeSyntax: 2.5.5.17
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: bf9679e8-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: fPRESERVEONDELETE | fATTINDEX
-rangeLower: 0
-rangeUpper: 28
-attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-mapiID: 32807
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-systemOnly: FALSE
-
-cn: Object-Version
-ldapDisplayName: objectVersion
-attributeId: 1.2.840.113556.1.2.76
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 16775848-47f3-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-mapiID: 33015
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: OEM-Information
-ldapDisplayName: oEMInformation
-attributeId: 1.2.840.113556.1.4.151
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bf9679ea-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 32767
-attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: OM-Object-Class
-ldapDisplayName: oMObjectClass
-attributeId: 1.2.840.113556.1.2.218
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: bf9679ec-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: 0
-mapiID: 33021
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: OM-Syntax
-ldapDisplayName: oMSyntax
-attributeId: 1.2.840.113556.1.2.231
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: bf9679ed-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: fPRESERVEONDELETE
-mapiID: 33022
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: OMT-Guid
-ldapDisplayName: oMTGuid
-attributeId: 1.2.840.113556.1.4.505
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: ddac0cf3-af8f-11d0-afeb-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 0
-rangeUpper: 16
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: netboot-Allow-New-Clients
-ldapDisplayName: netbootAllowNewClients
-attributeId: 1.2.840.113556.1.4.849
-attributeSyntax: 2.5.5.8
-omSyntax: 1
-isSingleValued: TRUE
-schemaIdGuid: 07383076-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: OMT-Indx-Guid
-ldapDisplayName: oMTIndxGuid
-attributeId: 1.2.840.113556.1.4.333
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 1f0075fa-7e40-11d0-afd6-00c04fd930c9
-systemOnly: FALSE
-searchFlags: fATTINDEX
-rangeLower: 0
-rangeUpper: 16
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: OncRpcNumber
-ldapDisplayName: oncRpcNumber
-attributeId: 1.3.6.1.1.1.1.18
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 966825f5-01d9-4a5c-a011-d15ae84efa55
-systemOnly: FALSE
-searchFlags: 0
-
-cn: Operating-System
-ldapDisplayName: operatingSystem
-attributeId: 1.2.840.113556.1.4.363
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 3e978925-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Operating-System-Hotfix
-ldapDisplayName: operatingSystemHotfix
-attributeId: 1.2.840.113556.1.4.415
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bd951b3c-9c96-11d0-afdd-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Operating-System-Service-Pack
-ldapDisplayName: operatingSystemServicePack
-attributeId: 1.2.840.113556.1.4.365
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 3e978927-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Operating-System-Version
-ldapDisplayName: operatingSystemVersion
-attributeId: 1.2.840.113556.1.4.364
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 3e978926-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Operator-Count
-ldapDisplayName: operatorCount
-attributeId: 1.2.840.113556.1.4.144
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: bf9679ee-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Option-Description
-ldapDisplayName: optionDescription
-attributeId: 1.2.840.113556.1.4.712
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 963d274d-48be-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Options
-ldapDisplayName: options
-attributeId: 1.2.840.113556.1.4.307
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 19195a53-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Options-Location
-ldapDisplayName: optionsLocation
-attributeId: 1.2.840.113556.1.4.713
-attributeSyntax: 2.5.5.5
-omSyntax: 19
-isSingleValued: FALSE
-schemaIdGuid: 963d274e-48be-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: netboot-Answer-Only-Valid-Clients
-ldapDisplayName: netbootAnswerOnlyValidClients
-attributeId: 1.2.840.113556.1.4.854
-attributeSyntax: 2.5.5.8
-omSyntax: 1
-isSingleValued: TRUE
-schemaIdGuid: 0738307b-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: organizationalStatus
-ldapDisplayName: organizationalStatus
-attributeId: 0.9.2342.19200300.100.1.45
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 28596019-7349-4d2f-adff-5a629961f942
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 256
-
-cn: Original-Display-Table
-ldapDisplayName: originalDisplayTable
-attributeId: 1.2.840.113556.1.2.445
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 5fd424ce-1262-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 32768
-mapiID: 33027
-
-cn: Original-Display-Table-MSDOS
-ldapDisplayName: originalDisplayTableMSDOS
-attributeId: 1.2.840.113556.1.2.214
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 5fd424cf-1262-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 32768
-mapiID: 33028
-
-cn: Phone-Fax-Other
-ldapDisplayName: otherFacsimileTelephoneNumber
-attributeId: 1.2.840.113556.1.4.646
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 0296c11d-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Phone-Home-Other
-ldapDisplayName: otherHomePhone
-attributeId: 1.2.840.113556.1.2.277
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: f0f8ffa2-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14895
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Phone-Ip-Other
-ldapDisplayName: otherIpPhone
-attributeId: 1.2.840.113556.1.4.722
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 4d146e4b-48d4-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Other-Login-Workstations
-ldapDisplayName: otherLoginWorkstations
-attributeId: 1.2.840.113556.1.4.91
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: bf9679f1-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fCOPY
-rangeLower: 0
-rangeUpper: 1024
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Other-Mailbox
-ldapDisplayName: otherMailbox
-attributeId: 1.2.840.113556.1.4.651
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 0296c123-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-
-cn: Phone-Mobile-Other
-ldapDisplayName: otherMobile
-attributeId: 1.2.840.113556.1.4.647
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 0296c11e-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Phone-Pager-Other
-ldapDisplayName: otherPager
-attributeId: 1.2.840.113556.1.2.118
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: f0f8ffa4-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 35950
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: netboot-Answer-Requests
-ldapDisplayName: netbootAnswerRequests
-attributeId: 1.2.840.113556.1.4.853
-attributeSyntax: 2.5.5.8
-omSyntax: 1
-isSingleValued: TRUE
-schemaIdGuid: 0738307a-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Phone-Office-Other
-ldapDisplayName: otherTelephone
-attributeId: 1.2.840.113556.1.2.18
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: f0f8ffa5-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14875
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Other-Well-Known-Objects
-ldapDisplayName: otherWellKnownObjects
-attributeId: 1.2.840.113556.1.4.1359
-attributeSyntax: 2.5.5.7
-omSyntax: 127
-omObjectClass: 1.2.840.113556.1.1.1.11
-isSingleValued: FALSE
-schemaIdGuid: 1ea64e5d-ac0f-11d2-90df-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 16
-rangeUpper: 16
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Organizational-Unit-Name
-ldapDisplayName: ou
-attributeId: 2.5.4.11
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: bf9679f0-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fATTINDEX
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050
-mapiID: 33026
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Owner
-ldapDisplayName: owner
-attributeId: 2.5.4.32
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: bf9679f3-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: 0
-linkID: 44
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ms-Exch-Owner-BL
-ldapDisplayName: ownerBL
-attributeId: 1.2.840.113556.1.2.104
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: FALSE
-schemaIdGuid: bf9679f4-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-searchFlags: 0
-linkID: 45
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-
-cn: Package-Flags
-ldapDisplayName: packageFlags
-attributeId: 1.2.840.113556.1.4.327
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 7d6c0e99-7e20-11d0-afd6-00c04fd930c9
-systemOnly: FALSE
-searchFlags: fATTINDEX
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Package-Name
-ldapDisplayName: packageName
-attributeId: 1.2.840.113556.1.4.326
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 7d6c0e98-7e20-11d0-afd6-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Package-Type
-ldapDisplayName: packageType
-attributeId: 1.2.840.113556.1.4.324
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 7d6c0e96-7e20-11d0-afd6-00c04fd930c9
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Phone-Pager-Primary
-ldapDisplayName: pager
-attributeId: 0.9.2342.19200300.100.1.42
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: f0f8ffa6-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14881
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Parent-CA
-ldapDisplayName: parentCA
-attributeId: 1.2.840.113556.1.4.557
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: 5245801b-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: netboot-Current-Client-Count
-ldapDisplayName: netbootCurrentClientCount
-attributeId: 1.2.840.113556.1.4.852
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 07383079-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Parent-CA-Certificate-Chain
-ldapDisplayName: parentCACertificateChain
-attributeId: 1.2.840.113556.1.4.685
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 963d2733-48be-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Parent-GUID
-ldapDisplayName: parentGUID
-attributeId: 1.2.840.113556.1.4.1224
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 2df90d74-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: TRUE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Partial-Attribute-Deletion-List
-ldapDisplayName: partialAttributeDeletionList
-attributeId: 1.2.840.113556.1.4.663
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 28630ec0-41d5-11d1-a9c1-0000f80367c1
-systemOnly: TRUE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Partial-Attribute-Set
-ldapDisplayName: partialAttributeSet
-attributeId: 1.2.840.113556.1.4.640
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 19405b9e-3cfa-11d1-a9c0-0000f80367c1
-systemOnly: TRUE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Pek-Key-Change-Interval
-ldapDisplayName: pekKeyChangeInterval
-attributeId: 1.2.840.113556.1.4.866
-attributeSyntax: 2.5.5.16
-omSyntax: 65
-isSingleValued: TRUE
-schemaIdGuid: 07383084-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Pek-List
-ldapDisplayName: pekList
-attributeId: 1.2.840.113556.1.4.865
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 07383083-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED
-schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
-
-cn: Pending-CA-Certificates
-ldapDisplayName: pendingCACertificates
-attributeId: 1.2.840.113556.1.4.693
+cn: X509-Cert
+ldapDisplayName: userCertificate
+attributeId: 2.5.4.36
attributeSyntax: 2.5.5.10
omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 963d273c-48be-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Pending-Parent-CA
-ldapDisplayName: pendingParentCA
-attributeId: 1.2.840.113556.1.4.695
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
isSingleValued: FALSE
-schemaIdGuid: 963d273e-48be-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Per-Msg-Dialog-Display-Table
-ldapDisplayName: perMsgDialogDisplayTable
-attributeId: 1.2.840.113556.1.2.325
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 5fd424d3-1262-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 32768
-mapiID: 33032
-
-cn: Per-Recip-Dialog-Display-Table
-ldapDisplayName: perRecipDialogDisplayTable
-attributeId: 1.2.840.113556.1.2.326
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 5fd424d4-1262-11d0-a060-00aa006c33ed
+schemaIdGuid: bf967a7f-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
-rangeLower: 1
rangeUpper: 32768
-mapiID: 33033
-
-cn: Netboot-GUID
-ldapDisplayName: netbootGUID
-attributeId: 1.2.840.113556.1.4.359
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 3e978921-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-searchFlags: fATTINDEX
-rangeLower: 16
-rangeUpper: 16
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Personal-Title
-ldapDisplayName: personalTitle
-attributeId: 1.2.840.113556.1.2.615
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: 16775858-47f3-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-searchFlags: 0
-rangeLower: 1
-rangeUpper: 64
-attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 35947
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: photo
-ldapDisplayName: photo
-attributeId: 0.9.2342.19200300.100.1.7
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: FALSE
-schemaIdGuid: 9c979768-ba1a-4c08-9632-c6a5c1ed649a
-systemOnly: FALSE
-searchFlags: 0
-
-cn: Physical-Delivery-Office-Name
-ldapDisplayName: physicalDeliveryOfficeName
-attributeId: 2.5.4.19
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: TRUE
-schemaIdGuid: bf9679f7-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-searchFlags: fANR | fATTINDEX
-rangeLower: 1
-rangeUpper: 128
attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1
-mapiID: 14873
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Physical-Location-Object
-ldapDisplayName: physicalLocationObject
-attributeId: 1.2.840.113556.1.4.514
-attributeSyntax: 2.5.5.1
-omSyntax: 127
-omObjectClass: 1.3.12.2.1011.28.0.714
-isSingleValued: TRUE
-schemaIdGuid: b7b13119-b82e-11d0-afee-0000f80367c1
-systemOnly: FALSE
-searchFlags: fATTINDEX
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: PKI-Critical-Extensions
-ldapDisplayName: pKICriticalExtensions
-attributeId: 1.2.840.113556.1.4.1330
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: fc5a9106-3b9d-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: PKI-Default-CSPs
-ldapDisplayName: pKIDefaultCSPs
-attributeId: 1.2.840.113556.1.4.1334
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 1ef6336e-3b9e-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: PKI-Default-Key-Spec
-ldapDisplayName: pKIDefaultKeySpec
-attributeId: 1.2.840.113556.1.4.1327
-attributeSyntax: 2.5.5.9
-omSyntax: 2
-isSingleValued: TRUE
-schemaIdGuid: 426cae6e-3b9d-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: PKI-Enrollment-Access
-ldapDisplayName: pKIEnrollmentAccess
-attributeId: 1.2.840.113556.1.4.1335
-attributeSyntax: 2.5.5.15
-omSyntax: 66
-isSingleValued: FALSE
-schemaIdGuid: 926be278-56f9-11d2-90d0-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: PKI-Expiration-Period
-ldapDisplayName: pKIExpirationPeriod
-attributeId: 1.2.840.113556.1.4.1331
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 041570d2-3b9e-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: PKI-Extended-Key-Usage
-ldapDisplayName: pKIExtendedKeyUsage
-attributeId: 1.2.840.113556.1.4.1333
-attributeSyntax: 2.5.5.12
-omSyntax: 64
-isSingleValued: FALSE
-schemaIdGuid: 18976af6-3b9e-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-searchFlags: 0
+mapiID: 35946
isMemberOfPartialAttributeSet: TRUE
systemFlags: FLAG_SCHEMA_BASE_OBJECT
diff --git a/source4/setup/ad-schema/MS-AD_Schema_Classes_v20080618.txt b/source4/setup/ad-schema/MS-AD_Schema_2K8_Classes.txt
index e2655d57da..f60b7bd8d2 100644
--- a/source4/setup/ad-schema/MS-AD_Schema_Classes_v20080618.txt
+++ b/source4/setup/ad-schema/MS-AD_Schema_2K8_Classes.txt
@@ -1,50 +1,12 @@
-# © 2008 Microsoft Corporation. All rights reserved
+#Intellectual Property Rights Notice for Protocol Documentation
+#• Copyrights. This protocol documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you may make copies of it in order to develop implementations of the protocols, and may distribute portions of it in your implementations of the protocols or your documentation as necessary to properly document the implementation. You may also distribute in your implementation, with or without modification, any schema, IDL’s, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the protocol documentation.
+#• No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.
+#• Patents. Microsoft has patents that may cover your implementations of the protocols. Neither this notice nor Microsoft's delivery of the documentation grants any licenses under those or any other Microsoft patents. However, the protocols may be covered by Microsoft’s Open Specification Promise (available here: http://www.microsoft.com/interop/osp). If you would prefer a written license, or if the protocols are not covered by the OSP, patent licenses are available by contacting protocol@microsoft.com.
+#• Trademarks. The names of companies and products contained in this documentation may be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights.
+#Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than specifically described above, whether by implication, estoppel, or otherwise.
+#Tools. This protocol documentation is intended for use in conjunction with publicly available standard specifications and network programming art, and assumes that the reader either is familiar with the aforementioned material or has immediate access to it. A protocol specification does not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments you are free to take advantage of them.
#
-# Intellectual Property Rights Notice for Protocol Documentation
-#
-# Copyrights.
-# This protocol documentation is covered by Microsoft
-# copyrights. Regardless of any other terms that are contained in the
-# terms of use for the Microsoft website that hosts this documentation,
-# you may make copies of it in order to develop implementations of the
-# protocols, and may distribute portions of it in your implementations
-# of the protocols or your documentation as necessary to properly
-# document the implementation. You may also distribute in your
-# implementation, with or without modification, any schema, IDL's, or
-# code samples that are included in the documentation. This permission
-# also applies to any documents that are referenced in the protocol
-# documentation.
-#
-# No Trade Secrets.
-# Microsoft does not claim any trade secret rights in this documentation.
-#
-# Patents.
-# Microsoft has patents that may cover your implementations of the
-# protocols. Neither this notice nor Microsoft's delivery of the
-# documentation grants any licenses under those or any other Microsoft
-# patents. However, the protocols may be covered by MicrosoftÂ’s Open
-# Specification Promise (available here:
-# http://www.microsoft.com/interop/osp). If you would prefer a written
-# license, or if the protocols are not covered by the OSP, patent
-# licenses are available by contacting protocol@microsoft.com.
-#
-# Trademarks.
-# The names of companies and products contained in this documentation
-# may be covered by trademarks or similar intellectual property
-# rights. This notice does not grant any licenses under those
-# rights.Reservation of Rights. All other rights are reserved, and this
-# notice does not grant any rights other than specifically described
-# above, whether by implication, estoppel, or otherwise.
-#
-# Tools.
-# This protocol documentation is intended for use in conjunction with
-# publicly available standard specifications and network programming
-# art, and assumes that the reader either is familiar with the
-# aforementioned material or has immediate access to it. A protocol
-# specification does not require the use of Microsoft programming tools
-# or programming environments in order for you to develop an
-# implementation. If you have access to Microsoft programming tools and
-# environments you are free to take advantage of them.
+
cn: account
ldapDisplayName: account
@@ -60,6 +22,128 @@ defaultHidingValue: TRUE
systemOnly: FALSE
defaultObjectCategory: CN=account,CN=Schema,CN=Configuration,<RootDomainDN>
+cn: ACS-Policy
+ldapDisplayName: aCSPolicy
+governsId: 1.2.840.113556.1.5.137
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: aCSTotalNoOfFlows, aCSTimeOfDay, aCSServiceType,aCSPriority, aCSPermissionBits, aCSMinimumDelayVariation,aCSMinimumLatency, aCSMaximumSDUSize, aCSMinimumPolicedSize,aCSMaxTokenRatePerFlow, aCSMaxTokenBucketPerFlow,aCSMaxPeakBandwidthPerFlow, aCSMaxDurationPerFlow,aCSMaxAggregatePeakRatePerUser, aCSIdentityName, aCSDirection,aCSAggregateTokenRatePerUser
+systemPossSuperiors: container
+schemaIdGuid:7f561288-5301-11d1-a9c5-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ACS-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Resource-Limits
+ldapDisplayName: aCSResourceLimits
+governsId: 1.2.840.113556.1.5.191
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: aCSMaxTokenRatePerFlow, aCSServiceType,aCSMaxPeakBandwidthPerFlow, aCSMaxPeakBandwidth,aCSAllocableRSVPBandwidth
+systemPossSuperiors: container
+schemaIdGuid:2e899b04-2834-11d3-91d4-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ACS-Resource-Limits,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ACS-Subnet
+ldapDisplayName: aCSSubnet
+governsId: 1.2.840.113556.1.5.138
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: aCSServerList, aCSRSVPLogFilesLocation,aCSRSVPAccountFilesLocation, aCSNonReservedTxSize,aCSNonReservedTxLimit, aCSNonReservedTokenSize,aCSNonReservedPeakRate, aCSNonReservedMinPolicedSize,aCSNonReservedMaxSDUSize, aCSMaxTokenRatePerFlow,aCSMaxSizeOfRSVPLogFile, aCSMaxSizeOfRSVPAccountFile,aCSMaxPeakBandwidthPerFlow, aCSMaxPeakBandwidth, aCSMaxNoOfLogFiles,aCSMaxNoOfAccountFiles, aCSMaxDurationPerFlow, aCSEventLogLevel,aCSEnableRSVPMessageLogging, aCSEnableRSVPAccounting,aCSEnableACSService, aCSDSBMRefresh, aCSDSBMPriority,aCSDSBMDeadTime, aCSCacheTimeout, aCSAllocableRSVPBandwidth
+systemPossSuperiors: container
+schemaIdGuid:7f561289-5301-11d1-a9c5-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ACS-Subnet,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Address-Book-Container
+ldapDisplayName: addressBookContainer
+governsId: 1.2.840.113556.1.5.125
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: displayName
+systemMayContain: purportedSearch
+systemPossSuperiors: addressBookContainer, configuration
+schemaIdGuid:3e74f60f-3e73-11d1-a9c0-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(OA;;CR;a1990816-4298-11d1-ade2-00c04fd8d5cd;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Address-Book-Container,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Address-Template
+ldapDisplayName: addressTemplate
+governsId: 1.2.840.113556.1.3.58
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: displayTemplate
+systemMustContain: displayName
+systemMayContain: proxyGenerationEnabled, perRecipDialogDisplayTable,perMsgDialogDisplayTable, addressType, addressSyntax
+systemPossSuperiors: container
+schemaIdGuid:5fd4250a-1262-11d0-a060-00aa006c33ed
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Address-Template,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Application-Entity
+ldapDisplayName: applicationEntity
+governsId: 2.5.6.12
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: presentationAddress, cn
+systemMayContain: supportedApplicationContext, seeAlso, ou, o, l
+systemPossSuperiors: applicationProcess, organizationalUnit,container
+schemaIdGuid:3fdfee4f-47f4-11d1-a9c3-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Application-Entity,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Application-Process
+ldapDisplayName: applicationProcess
+governsId: 2.5.6.11
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: cn
+systemMayContain: seeAlso, ou, l
+systemPossSuperiors: organizationalUnit, organization, container,computer
+schemaIdGuid:5fd4250b-1262-11d0-a060-00aa006c33ed
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: TRUE
+defaultObjectCategory: CN=Application-Process,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Application-Settings
+ldapDisplayName: applicationSettings
+governsId: 1.2.840.113556.1.5.7000.49
+objectClassCategory: 2
+rdnAttId: cn
+subClassOf: top
+systemMayContain: notificationList, msDS-Settings, applicationName
+systemPossSuperiors: server
+schemaIdGuid:f780acc1-56f0-11d1-a9c6-0000f80367c1
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Application-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: Application-Site-Settings
ldapDisplayName: applicationSiteSettings
governsId: 1.2.840.113556.1.5.68
@@ -75,6 +159,1304 @@ systemOnly: FALSE
defaultObjectCategory: CN=Application-Site-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: Application-Version
+ldapDisplayName: applicationVersion
+governsId: 1.2.840.113556.1.5.216
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: applicationSettings
+mayContain: owner, managedBy, keywords, versionNumberLo,versionNumberHi, versionNumber, vendor, appSchemaVersion
+possSuperiors: organizationalUnit, computer, container
+schemaIdGuid:ddc790ac-af4d-442a-8f0f-a1d4caa7dd92
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Application-Version,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Attribute-Schema
+ldapDisplayName: attributeSchema
+governsId: 1.2.840.113556.1.3.14
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: schemaIDGUID, oMSyntax, lDAPDisplayName,isSingleValued, cn, attributeSyntax, attributeID
+systemMayContain: systemOnly, searchFlags, schemaFlagsEx, rangeUpper,rangeLower, oMObjectClass, msDs-Schema-Extensions, msDS-IntId,mAPIID, linkID, isMemberOfPartialAttributeSet, isEphemeral,isDefunct, extendedCharsAllowed, classDisplayName,attributeSecurityGUID
+systemPossSuperiors: dMD
+schemaIdGuid:bf967a80-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:S:
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_DOMAIN_DISALLOW_RENAME
+
+cn: BootableDevice
+ldapDisplayName: bootableDevice
+governsId: 1.3.6.1.1.1.2.12
+objectClassCategory: 3
+rdnAttId: cn
+subClassOf: top
+mayContain: cn, bootParameter, bootFile
+schemaIdGuid:4bcb2477-4bb3-4545-a9fc-fb66e136b435
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=BootableDevice,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Builtin-Domain
+ldapDisplayName: builtinDomain
+governsId: 1.2.840.113556.1.5.4
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemAuxiliaryClass: samDomainBase
+systemPossSuperiors: domainDNS
+schemaIdGuid:bf967a81-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Builtin-Domain,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Category-Registration
+ldapDisplayName: categoryRegistration
+governsId: 1.2.840.113556.1.5.74
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: leaf
+systemMayContain: managedBy, localizedDescription, localeID,categoryId
+systemPossSuperiors: classStore
+schemaIdGuid:7d6c0e9d-7e20-11d0-afd6-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Category-Registration,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Certification-Authority
+ldapDisplayName: certificationAuthority
+governsId: 2.5.6.16
+objectClassCategory: 0
+rdnAttId: cn
+subClassOf: top
+systemMustContain: cn, certificateRevocationList, cACertificate,authorityRevocationList
+systemMayContain: teletexTerminalIdentifier,supportedApplicationContext, signatureAlgorithms, searchGuide,previousParentCA, previousCACertificates, pendingParentCA,pendingCACertificates, parentCACertificateChain, parentCA,enrollmentProviders, domainPolicyObject, domainID, dNSHostName,deltaRevocationList, currentParentCA, crossCertificatePair,cRLObject, certificateTemplates, cAWEBURL, cAUsages, cAConnect,cACertificateDN
+systemPossSuperiors: container
+schemaIdGuid:3fdfee50-47f4-11d1-a9c3-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Certification-Authority,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Class-Registration
+ldapDisplayName: classRegistration
+governsId: 1.2.840.113556.1.5.10
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: leaf
+systemMayContain: requiredCategories, managedBy,implementedCategories, cOMTreatAsClassId, cOMProgID,cOMOtherProgId, cOMInterfaceID, cOMCLSID
+systemPossSuperiors: classStore
+schemaIdGuid:bf967a82-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Class-Registration,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Class-Schema
+ldapDisplayName: classSchema
+governsId: 1.2.840.113556.1.3.13
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: subClassOf, schemaIDGUID, objectClassCategory,governsID, defaultObjectCategory, cn
+systemMayContain: systemPossSuperiors, systemOnly, systemMustContain,systemMayContain, systemAuxiliaryClass, schemaFlagsEx, rDNAttID,possSuperiors, mustContain, msDs-Schema-Extensions, msDS-IntId,mayContain, lDAPDisplayName, isDefunct, defaultSecurityDescriptor,defaultHidingValue, classDisplayName, auxiliaryClass
+systemPossSuperiors: dMD
+schemaIdGuid:bf967a83-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:S:
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Class-Schema,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_DOMAIN_DISALLOW_RENAME
+
+cn: Class-Store
+ldapDisplayName: classStore
+governsId: 1.2.840.113556.1.5.44
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: versionNumber, nextLevelStore, lastUpdateSequence,appSchemaVersion
+systemPossSuperiors: domainPolicy, computer, group, user, classStore,organizationalUnit, domainDNS, container
+schemaIdGuid:bf967a84-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Class-Store,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Com-Connection-Point
+ldapDisplayName: comConnectionPoint
+governsId: 1.2.840.113556.1.5.11
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: connectionPoint
+systemMustContain: cn
+systemMayContain: monikerDisplayName, moniker, marshalledInterface
+systemPossSuperiors: container
+schemaIdGuid:bf967a85-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Com-Connection-Point,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Computer
+ldapDisplayName: computer
+governsId: 1.2.840.113556.1.3.30
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: user
+auxiliaryClass: ipHost
+mayContain: msSFU30Aliases, msSFU30NisDomain, nisMapName,msSFU30Name
+systemMayContain: msDS-IsUserCachableAtRodc, msTSProperty02,msTSProperty01, msTPM-OwnerInformation, msDS-RevealOnDemandGroup,msDS-NeverRevealGroup, msDS-PromotionSettings, msDS-SiteName,msDS-isRODC, msDS-isGC, msDS-AuthenticatedAtDC, msDS-RevealedList,msDS-RevealedUsers, msDS-ExecuteScriptPassword, msDS-KrbTgtLink,volumeCount, siteGUID, rIDSetReferences, policyReplicationFlags,physicalLocationObject, operatingSystemVersion,operatingSystemServicePack, operatingSystemHotfix, operatingSystem,networkAddress, netbootSIFFile, netbootMirrorDataFile,netbootMachineFilePath, netbootInitialization, netbootGUID,msDS-AdditionalSamAccountName, msDS-AdditionalDnsHostName,managedBy, machineRole, location, localPolicyFlags, dNSHostName,defaultLocalPolicyObject, cn, catalogs
+systemPossSuperiors: container, organizationalUnit, domainDNS
+schemaIdGuid:bf967a86-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCRLCLORCSDDT;;;CO)(OA;;WP;4c164200-20c0-11d0-a768-00aa006e0529;;CO)(A;;RPLCLORC;;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(A;;CCDC;;;PS)(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;PS)(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;CO)(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;CO)(OA;;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;bf967950-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;bf967953-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)
+defaultHidingValue: FALSE
+systemOnly: FALSE
+defaultObjectCategory: CN=Computer,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Configuration
+ldapDisplayName: configuration
+governsId: 1.2.840.113556.1.5.12
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: cn
+systemMayContain: gPOptions, gPLink
+systemPossSuperiors: domainDNS
+schemaIdGuid:bf967a87-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: TRUE
+defaultObjectCategory: CN=Configuration,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Connection-Point
+ldapDisplayName: connectionPoint
+governsId: 1.2.840.113556.1.5.14
+objectClassCategory: 2
+rdnAttId: cn
+subClassOf: leaf
+systemMustContain: cn
+systemMayContain: msDS-Settings, managedBy, keywords
+systemPossSuperiors: container, computer
+schemaIdGuid:5cb41ecf-0e4c-11d0-a286-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Connection-Point,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Contact
+ldapDisplayName: contact
+governsId: 1.2.840.113556.1.5.15
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: organizationalPerson
+systemAuxiliaryClass: mailRecipient
+systemMustContain: cn
+mayContain: msDS-SourceObjectDN
+systemMayContain: notes
+systemPossSuperiors: organizationalUnit, domainDNS
+schemaIdGuid:5cb41ed0-0e4c-11d0-a286-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: FALSE
+systemOnly: FALSE
+defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Container
+ldapDisplayName: container
+governsId: 1.2.840.113556.1.3.23
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: cn
+mayContain: msDS-ObjectReference
+systemMayContain: schemaVersion, defaultClassStore
+systemPossSuperiors: msDS-AzScope, msDS-AzApplication,msDS-AzAdminManager, subnet, server, nTDSService, domainDNS,organization, configuration, container, organizationalUnit
+schemaIdGuid:bf967a8b-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Container,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Control-Access-Right
+ldapDisplayName: controlAccessRight
+governsId: 1.2.840.113556.1.5.77
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: validAccesses, rightsGuid, localizationDisplayId,appliesTo
+systemPossSuperiors: container
+schemaIdGuid:8297931e-86d3-11d0-afda-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Control-Access-Right,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Country
+ldapDisplayName: country
+governsId: 2.5.6.2
+objectClassCategory: 0
+rdnAttId: c
+subClassOf: top
+systemMustContain: c
+systemMayContain: co, searchGuide
+systemPossSuperiors: domainDNS, organization
+schemaIdGuid:bf967a8c-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Country,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: CRL-Distribution-Point
+ldapDisplayName: cRLDistributionPoint
+governsId: 2.5.6.19
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: cn
+systemMayContain: deltaRevocationList, cRLPartitionedRevocationList,certificateRevocationList, certificateAuthorityObject,authorityRevocationList
+systemPossSuperiors: container
+schemaIdGuid:167758ca-47f3-11d1-a9c3-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=CRL-Distribution-Point,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Cross-Ref
+ldapDisplayName: crossRef
+governsId: 1.2.840.113556.1.3.11
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: nCName, dnsRoot, cn
+systemMayContain: msDS-NC-RO-Replica-Locations, trustParent,superiorDNSRoot, rootTrust, nTMixedDomain, nETBIOSName, Enabled,msDS-SDReferenceDomain,msDS-Replication-Notify-Subsequent-DSA-Delay,msDS-Replication-Notify-First-DSA-Delay, msDS-NC-Replica-Locations,msDS-DnsRootAlias, msDS-Behavior-Version
+systemPossSuperiors: crossRefContainer
+schemaIdGuid:bf967a8d-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Cross-Ref,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Cross-Ref-Container
+ldapDisplayName: crossRefContainer
+governsId: 1.2.840.113556.1.5.7000.53
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: msDS-SPNSuffixes, uPNSuffixes, msDS-UpdateScript,msDS-ExecuteScriptPassword, msDS-Behavior-Version
+systemPossSuperiors: configuration
+schemaIdGuid:ef9e60e0-56f7-11d1-a9c6-0000f80367c1
+defaultSecurityDescriptor: D:(A;;GA;;;SY)
+defaultHidingValue: FALSE
+systemOnly: TRUE
+defaultObjectCategory: CN=Cross-Ref-Container,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Device
+ldapDisplayName: device
+governsId: 2.5.6.14
+objectClassCategory: 0
+rdnAttId: cn
+subClassOf: top
+auxiliaryClass: ipHost, ieee802Device, bootableDevice
+systemMustContain: cn
+mayContain: msSFU30Name, msSFU30NisDomain, nisMapName, msSFU30Aliases
+systemMayContain: serialNumber, seeAlso, owner, ou, o, l
+systemPossSuperiors: domainDNS, organizationalUnit, organization,container
+schemaIdGuid:bf967a8e-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Device,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Dfs-Configuration
+ldapDisplayName: dfsConfiguration
+governsId: 1.2.840.113556.1.5.42
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemPossSuperiors: container, domainDNS
+schemaIdGuid:8447f9f2-1027-11d0-a05f-00aa006c33ed
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Dfs-Configuration,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: DHCP-Class
+ldapDisplayName: dHCPClass
+governsId: 1.2.840.113556.1.5.132
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: dhcpUniqueKey, dhcpType, dhcpIdentification,dhcpFlags
+systemMayContain: superScopes, superScopeDescription,optionsLocation, optionDescription, networkAddress, mscopeId,dhcpUpdateTime, dhcpSubnets, dhcpState, dhcpSites, dhcpServers,dhcpReservations, dhcpRanges, dhcpProperties, dhcpOptions,dhcpObjName, dhcpObjDescription, dhcpMaxKey, dhcpMask, dhcpClasses
+systemPossSuperiors: container
+schemaIdGuid:963d2756-48be-11d1-a9c3-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=DHCP-Class,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Display-Specifier
+ldapDisplayName: displaySpecifier
+governsId: 1.2.840.113556.1.5.84
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: treatAsLeaf, shellPropertyPages, shellContextMenu,scopeFlags, queryFilter, iconPath, extraColumns, creationWizard,createWizardExt, createDialog, contextMenu, classDisplayName,attributeDisplayNames, adminPropertyPages,adminMultiselectPropertyPages, adminContextMenu
+systemPossSuperiors: container
+schemaIdGuid:e0fa1e8a-9b45-11d0-afdd-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Display-Specifier,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Display-Template
+ldapDisplayName: displayTemplate
+governsId: 1.2.840.113556.1.3.59
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: cn
+systemMayContain: originalDisplayTableMSDOS, originalDisplayTable,helpFileName, helpData32, helpData16, addressEntryDisplayTableMSDOS,addressEntryDisplayTable
+systemPossSuperiors: container
+schemaIdGuid:5fd4250c-1262-11d0-a060-00aa006c33ed
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Display-Template,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: DMD
+ldapDisplayName: dMD
+governsId: 1.2.840.113556.1.3.9
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: cn
+systemMayContain: schemaUpdate, schemaInfo, prefixMap,msDs-Schema-Extensions, msDS-IntId, dmdName
+systemPossSuperiors: configuration
+schemaIdGuid:bf967a8f-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: TRUE
+defaultObjectCategory: CN=DMD,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Dns-Node
+ldapDisplayName: dnsNode
+governsId: 1.2.840.113556.1.5.86
+objectClassCategory: 1
+rdnAttId: dc
+subClassOf: top
+systemMustContain: dc
+systemMayContain: dNSTombstoned, dnsRecord, dNSProperty
+systemPossSuperiors: dnsZone
+schemaIdGuid:e0fa1e8c-9b45-11d0-afdd-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;ED)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)(A;;RPLCLORC;;;WD)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Dns-Node,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Dns-Zone
+ldapDisplayName: dnsZone
+governsId: 1.2.840.113556.1.5.85
+objectClassCategory: 1
+rdnAttId: dc
+subClassOf: top
+systemMustContain: dc
+systemMayContain: managedBy, dnsSecureSecondaries, dNSProperty,dnsNotifySecondaries, dnsAllowXFR, dnsAllowDynamic
+systemPossSuperiors: container
+schemaIdGuid:e0fa1e8b-9b45-11d0-afdd-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;ED)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;CC;;;AU)(A;;RPLCLORC;;;WD)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Dns-Zone,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: document
+ldapDisplayName: document
+governsId: 0.9.2342.19200300.100.4.6
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mayContain: documentIdentifier, documentPublisher, documentLocation,documentAuthor, documentVersion, documentTitle, ou, o, l, seeAlso,description, cn
+possSuperiors: organizationalUnit, container
+schemaIdGuid:39bad96d-c2d6-4baf-88ab-7e4207600117
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=document,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: documentSeries
+ldapDisplayName: documentSeries
+governsId: 0.9.2342.19200300.100.4.9
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mustContain: cn
+mayContain: telephoneNumber, ou, o, l, seeAlso, description
+possSuperiors: organizationalUnit, container
+schemaIdGuid:7a2be07c-302f-4b96-bc90-0795d66885f8
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=documentSeries,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Domain
+ldapDisplayName: domain
+governsId: 1.2.840.113556.1.5.66
+objectClassCategory: 2
+rdnAttId: dc
+subClassOf: top
+systemMustContain: dc
+systemPossSuperiors: domain, organization
+schemaIdGuid:19195a5a-6da0-11d0-afd3-00c04fd930c9
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Domain-DNS,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Domain-DNS
+ldapDisplayName: domainDNS
+governsId: 1.2.840.113556.1.5.67
+objectClassCategory: 1
+rdnAttId: dc
+subClassOf: domain
+systemAuxiliaryClass: samDomain
+systemMayContain: msDS-Behavior-Version, msDS-AllowedDNSSuffixes,managedBy
+systemPossSuperiors: domainDNS
+schemaIdGuid:19195a5b-6da0-11d0-afd3-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RP;;;WD)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCRCWDWOSW;;;DA)(A;CI;RPWPCRLCLOCCRCWDWOSDSW;;;BA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(A;CI;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;EA)(A;CI;LC;;;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(A;;RPRC;;;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(A;;LCRPLORC;;;ED)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RPLCLORC;;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;CIIO;CRRPWP;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)S:(AU;SA;WDWOWP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
+defaultHidingValue: FALSE
+systemOnly: FALSE
+defaultObjectCategory: CN=Domain-DNS,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Domain-Policy
+ldapDisplayName: domainPolicy
+governsId: 1.2.840.113556.1.5.18
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: leaf
+systemMayContain: qualityOfService, pwdProperties, pwdHistoryLength,publicKeyPolicy, proxyLifetime, minTicketAge, minPwdLength,minPwdAge, maxTicketAge, maxRenewAge, maxPwdAge, managedBy,lockoutThreshold, lockoutDuration, lockOutObservationWindow,ipsecPolicyReference, forceLogoff, eFSPolicy, domainWidePolicy,domainPolicyReference, domainCAs, defaultLocalPolicyObject,authenticationOptions
+systemPossSuperiors: organizationalUnit, domainDNS, container
+schemaIdGuid:bf967a99-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Domain-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: domainRelatedObject
+ldapDisplayName: domainRelatedObject
+governsId: 0.9.2342.19200300.100.4.17
+objectClassCategory: 3
+rdnAttId: cn
+subClassOf: top
+mayContain: associatedDomain
+schemaIdGuid:8bfd2d3d-efda-4549-852c-f85e137aedc6
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=domainRelatedObject,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: DSA
+ldapDisplayName: dSA
+governsId: 2.5.6.13
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: applicationEntity
+systemMayContain: knowledgeInformation
+systemPossSuperiors: server, computer
+schemaIdGuid:3fdfee52-47f4-11d1-a9c3-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=DSA,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: DS-UI-Settings
+ldapDisplayName: dSUISettings
+governsId: 1.2.840.113556.1.5.183
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: msDS-Non-Security-Group-Extra-Classes,msDS-Security-Group-Extra-Classes, msDS-FilterContainers,dSUIShellMaximum, dSUIAdminNotification, dSUIAdminMaximum
+systemPossSuperiors: container
+schemaIdGuid:09b10f14-6f93-11d2-9905-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=DS-UI-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Dynamic-Object
+ldapDisplayName: dynamicObject
+governsId: 1.3.6.1.4.1.1466.101.119.2
+objectClassCategory: 3
+rdnAttId: cn
+subClassOf: top
+systemMayContain: msDS-Entry-Time-To-Die, entryTTL
+schemaIdGuid:66d51249-3355-4c1f-b24e-81f252aca23b
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Dynamic-Object,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: File-Link-Tracking
+ldapDisplayName: fileLinkTracking
+governsId: 1.2.840.113556.1.5.52
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemPossSuperiors: container
+schemaIdGuid:dd712229-10e4-11d0-a05f-00aa006c33ed
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=File-Link-Tracking,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: File-Link-Tracking-Entry
+ldapDisplayName: fileLinkTrackingEntry
+governsId: 1.2.840.113556.1.5.59
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemPossSuperiors: fileLinkTracking
+schemaIdGuid:8e4eb2ed-4712-11d0-a1a0-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=File-Link-Tracking-Entry,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Foreign-Security-Principal
+ldapDisplayName: foreignSecurityPrincipal
+governsId: 1.2.840.113556.1.5.76
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: objectSid
+systemMayContain: foreignIdentifier
+systemPossSuperiors: container
+schemaIdGuid:89e31c12-8530-11d0-afda-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: friendlyCountry
+ldapDisplayName: friendlyCountry
+governsId: 0.9.2342.19200300.100.4.18
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: country
+mustContain: co
+schemaIdGuid:c498f152-dc6b-474a-9f52-7cdba3d7d351
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=friendlyCountry,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: FT-Dfs
+ldapDisplayName: fTDfs
+governsId: 1.2.840.113556.1.5.43
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: remoteServerName, pKTGuid, pKT
+systemMayContain: uNCName, managedBy, keywords
+systemPossSuperiors: dfsConfiguration
+schemaIdGuid:8447f9f3-1027-11d0-a05f-00aa006c33ed
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=FT-Dfs,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Group
+ldapDisplayName: group
+governsId: 1.2.840.113556.1.5.8
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+auxiliaryClass: posixGroup
+systemAuxiliaryClass: mailRecipient, securityPrincipal
+systemMustContain: groupType
+mayContain: msSFU30Name, msSFU30NisDomain, msSFU30PosixMember
+systemMayContain: msDS-AzApplicationData,msDS-AzLastImportedBizRulePath, msDS-AzBizRuleLanguage,msDS-AzBizRule, msDS-AzGenericData, msDS-AzObjectGuid,primaryGroupToken, operatorCount, nTGroupMembers, nonSecurityMember,msDS-NonMembers, msDS-AzLDAPQuery, member, managedBy,groupMembershipSAM, groupAttributes, mail, desktopProfile,controlAccessRights, adminCount
+systemPossSuperiors: msDS-AzScope, msDS-AzApplication,msDS-AzAdminManager, container, builtinDomain, organizationalUnit,domainDNS
+schemaIdGuid:bf967a9c-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a55-1e2f-11d0-9819-00aa0040529b;;AU)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)
+defaultHidingValue: FALSE
+systemOnly: FALSE
+defaultObjectCategory: CN=Group,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Group-Of-Names
+ldapDisplayName: groupOfNames
+governsId: 2.5.6.9
+objectClassCategory: 0
+rdnAttId: cn
+subClassOf: top
+systemMustContain: member, cn
+systemMayContain: seeAlso, owner, ou, o, businessCategory
+systemPossSuperiors: organizationalUnit, locality, organization,container
+schemaIdGuid:bf967a9d-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Group-Of-Names,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: groupOfUniqueNames
+ldapDisplayName: groupOfUniqueNames
+governsId: 2.5.6.17
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mustContain: uniqueMember, cn
+mayContain: seeAlso, owner, ou, o, description, businessCategory
+possSuperiors: domainDNS, organizationalUnit, container
+schemaIdGuid:0310a911-93a3-4e21-a7a3-55d85ab2c48b
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=groupOfUniqueNames,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Group-Policy-Container
+ldapDisplayName: groupPolicyContainer
+governsId: 1.2.840.113556.1.5.157
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: container
+systemMayContain: versionNumber, gPCWQLFilter, gPCUserExtensionNames,gPCMachineExtensionNames, gPCFunctionalityVersion, gPCFileSysPath,flags
+schemaIdGuid:f30e3bc2-9ff0-11d1-b603-0000f80367c1
+defaultSecurityDescriptor: D:P(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;DA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;EA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;CO)(A;CI;RPWPCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPLCLORC;;;AU)(OA;CI;CR;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;AU)(A;CI;LCRPLORC;;;ED)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Group-Policy-Container,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: IEEE802Device
+ldapDisplayName: ieee802Device
+governsId: 1.3.6.1.1.1.2.11
+objectClassCategory: 3
+rdnAttId: cn
+subClassOf: top
+mayContain: cn, macAddress
+schemaIdGuid:a699e529-a637-4b7d-a0fb-5dc466a0b8a7
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=IEEE802Device,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Index-Server-Catalog
+ldapDisplayName: indexServerCatalog
+governsId: 1.2.840.113556.1.5.130
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: connectionPoint
+systemMustContain: creator
+systemMayContain: uNCName, queryPoint, indexedScopes, friendlyNames
+systemPossSuperiors: organizationalUnit, container
+schemaIdGuid:7bfdcb8a-4807-11d1-a9c3-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Index-Server-Catalog,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: inetOrgPerson
+ldapDisplayName: inetOrgPerson
+governsId: 2.16.840.1.113730.3.2.2
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: user
+mayContain: x500uniqueIdentifier, userSMIMECertificate, userPKCS12,userCertificate, uid, secretary, roomNumber, preferredLanguage,photo, pager, o, mobile, manager, mail, labeledURI, jpegPhoto,initials, homePostalAddress, homePhone, givenName, employeeType,employeeNumber, displayName, departmentNumber, carLicense,businessCategory, audio
+possSuperiors: domainDNS, organizationalUnit, container
+schemaIdGuid:4828cc14-1437-45bc-9b07-ad6f015e5f28
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RP;037088f8-0ae1-11d2-b422-00a0c968f939;;RS)(OA;;RP;4c164200-20c0-11d0-a768-00aa006e0529;;RS)(OA;;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;;RS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(OA;;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;;RS)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)(OA;;WPRP;6db69a1c-9422-11d1-aebd-0000f80367c1;;S-1-5-32-561)(OA;;WPRP;5805bc62-bdc9-4428-a5e2-856a0f4c185e;;S-1-5-32-561)
+defaultHidingValue: FALSE
+systemOnly: FALSE
+defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Infrastructure-Update
+ldapDisplayName: infrastructureUpdate
+governsId: 1.2.840.113556.1.5.175
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: dNReferenceUpdate
+systemPossSuperiors: infrastructureUpdate, domain
+schemaIdGuid:2df90d89-009f-11d2-aa4c-00c04fd7d83a
+defaultSecurityDescriptor: D:(A;;GA;;;SY)
+defaultHidingValue: TRUE
+systemOnly: TRUE
+defaultObjectCategory: CN=Infrastructure-Update,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Intellimirror-Group
+ldapDisplayName: intellimirrorGroup
+governsId: 1.2.840.113556.1.5.152
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemPossSuperiors: domainDNS, organizationalUnit, container
+schemaIdGuid:07383086-91df-11d1-aebc-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;CCDC;;;CO)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Intellimirror-Group,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Intellimirror-SCP
+ldapDisplayName: intellimirrorSCP
+governsId: 1.2.840.113556.1.5.151
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: serviceAdministrationPoint
+systemMayContain: netbootTools, netbootServer, netbootNewMachineOU,netbootNewMachineNamingPolicy, netbootMaxClients,netbootMachineFilePath, netbootLocallyInstalledOSes,netbootLimitClients, netbootIntelliMirrorOSes,netbootCurrentClientCount, netbootAnswerRequests,netbootAnswerOnlyValidClients, netbootAllowNewClients
+systemPossSuperiors: computer, intellimirrorGroup
+schemaIdGuid:07383085-91df-11d1-aebc-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Intellimirror-SCP,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Inter-Site-Transport
+ldapDisplayName: interSiteTransport
+governsId: 1.2.840.113556.1.5.141
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: transportDLLName, transportAddressAttribute
+systemMayContain: replInterval, options
+systemPossSuperiors: interSiteTransportContainer
+schemaIdGuid:26d97376-6070-11d1-a9c6-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Inter-Site-Transport,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Inter-Site-Transport-Container
+ldapDisplayName: interSiteTransportContainer
+governsId: 1.2.840.113556.1.5.140
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemPossSuperiors: sitesContainer
+schemaIdGuid:26d97375-6070-11d1-a9c6-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Inter-Site-Transport-Container,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: IpHost
+ldapDisplayName: ipHost
+governsId: 1.3.6.1.1.1.2.6
+objectClassCategory: 3
+rdnAttId: cn
+subClassOf: top
+mayContain: manager, cn, description, ipHostNumber, uid, l
+schemaIdGuid:ab911646-8827-4f95-8780-5a8f008eb68f
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=IpHost,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: IpNetwork
+ldapDisplayName: ipNetwork
+governsId: 1.3.6.1.1.1.2.7
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mustContain: cn, ipNetworkNumber
+mayContain: manager, description, ipNetmaskNumber, uid, l,msSFU30Name, msSFU30NisDomain, nisMapName, msSFU30Aliases
+possSuperiors: domainDNS, nisMap, container, organizationalUnit
+schemaIdGuid:d95836c3-143e-43fb-992a-b057f1ecadf9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=IpNetwork,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: IpProtocol
+ldapDisplayName: ipProtocol
+governsId: 1.3.6.1.1.1.2.4
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mustContain: cn, ipProtocolNumber
+mayContain: description, msSFU30Name, msSFU30NisDomain, nisMapName,msSFU30Aliases
+possSuperiors: domainDNS, nisMap, container, organizationalUnit
+schemaIdGuid:9c2dcbd2-fbf0-4dc7-ace0-8356dcd0f013
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=IpProtocol,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Ipsec-Base
+ldapDisplayName: ipsecBase
+governsId: 1.2.840.113556.1.5.7000.56
+objectClassCategory: 2
+rdnAttId: cn
+subClassOf: top
+systemMayContain: ipsecOwnersReference, ipsecName, ipsecID,ipsecDataType, ipsecData
+schemaIdGuid:b40ff825-427a-11d1-a9c2-0000f80367c1
+defaultSecurityDescriptor: D:
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Ipsec-Base,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Ipsec-Filter
+ldapDisplayName: ipsecFilter
+governsId: 1.2.840.113556.1.5.118
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: ipsecBase
+systemPossSuperiors: organizationalUnit, computer, container
+schemaIdGuid:b40ff826-427a-11d1-a9c2-0000f80367c1
+defaultSecurityDescriptor: D:
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Ipsec-Filter,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Ipsec-ISAKMP-Policy
+ldapDisplayName: ipsecISAKMPPolicy
+governsId: 1.2.840.113556.1.5.120
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: ipsecBase
+systemPossSuperiors: container, computer, organizationalUnit
+schemaIdGuid:b40ff828-427a-11d1-a9c2-0000f80367c1
+defaultSecurityDescriptor: D:
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Ipsec-ISAKMP-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Ipsec-Negotiation-Policy
+ldapDisplayName: ipsecNegotiationPolicy
+governsId: 1.2.840.113556.1.5.119
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: ipsecBase
+systemMayContain: iPSECNegotiationPolicyType,iPSECNegotiationPolicyAction
+systemPossSuperiors: organizationalUnit, computer, container
+schemaIdGuid:b40ff827-427a-11d1-a9c2-0000f80367c1
+defaultSecurityDescriptor: D:
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Ipsec-Negotiation-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Ipsec-NFA
+ldapDisplayName: ipsecNFA
+governsId: 1.2.840.113556.1.5.121
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: ipsecBase
+systemMayContain: ipsecNegotiationPolicyReference,ipsecFilterReference
+systemPossSuperiors: container, computer, organizationalUnit
+schemaIdGuid:b40ff829-427a-11d1-a9c2-0000f80367c1
+defaultSecurityDescriptor: D:
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Ipsec-NFA,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Ipsec-Policy
+ldapDisplayName: ipsecPolicy
+governsId: 1.2.840.113556.1.5.98
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: ipsecBase
+systemMayContain: ipsecNFAReference, ipsecISAKMPReference
+systemPossSuperiors: organizationalUnit, computer, container
+schemaIdGuid:b7b13121-b82e-11d0-afee-0000f80367c1
+defaultSecurityDescriptor: D:
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Ipsec-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: IpService
+ldapDisplayName: ipService
+governsId: 1.3.6.1.1.1.2.3
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mustContain: ipServiceProtocol, ipServicePort, cn
+mayContain: description, msSFU30Name, msSFU30NisDomain,msSFU30Aliases, nisMapName
+possSuperiors: domainDNS, nisMap, container, organizationalUnit
+schemaIdGuid:2517fadf-fa97-48ad-9de6-79ac5721f864
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=IpService,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: Leaf
+ldapDisplayName: leaf
+governsId: 1.2.840.113556.1.5.20
+objectClassCategory: 2
+rdnAttId: cn
+subClassOf: top
+schemaIdGuid:bf967a9e-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Leaf,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Licensing-Site-Settings
+ldapDisplayName: licensingSiteSettings
+governsId: 1.2.840.113556.1.5.78
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: applicationSiteSettings
+systemMayContain: siteServer
+systemPossSuperiors: site
+schemaIdGuid:1be8f17d-a9ff-11d0-afe2-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Licensing-Site-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Link-Track-Object-Move-Table
+ldapDisplayName: linkTrackObjectMoveTable
+governsId: 1.2.840.113556.1.5.91
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: fileLinkTracking
+systemPossSuperiors: fileLinkTracking
+schemaIdGuid:ddac0cf5-af8f-11d0-afeb-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Link-Track-Object-Move-Table,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Link-Track-OMT-Entry
+ldapDisplayName: linkTrackOMTEntry
+governsId: 1.2.840.113556.1.5.93
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: leaf
+systemMayContain: timeRefresh, oMTIndxGuid, oMTGuid, currentLocation,birthLocation
+systemPossSuperiors: linkTrackObjectMoveTable
+schemaIdGuid:ddac0cf7-af8f-11d0-afeb-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Link-Track-OMT-Entry,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Link-Track-Vol-Entry
+ldapDisplayName: linkTrackVolEntry
+governsId: 1.2.840.113556.1.5.92
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: leaf
+systemMayContain: volTableIdxGUID, volTableGUID, timeVolChange,timeRefresh, seqNotification, objectCount, linkTrackSecret,currMachineId
+systemPossSuperiors: linkTrackVolumeTable
+schemaIdGuid:ddac0cf6-af8f-11d0-afeb-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Link-Track-Vol-Entry,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Link-Track-Volume-Table
+ldapDisplayName: linkTrackVolumeTable
+governsId: 1.2.840.113556.1.5.90
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: fileLinkTracking
+systemPossSuperiors: fileLinkTracking
+schemaIdGuid:ddac0cf4-af8f-11d0-afeb-00c04fd930c9
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Link-Track-Volume-Table,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Locality
+ldapDisplayName: locality
+governsId: 2.5.6.3
+objectClassCategory: 1
+rdnAttId: l
+subClassOf: top
+systemMustContain: l
+systemMayContain: street, st, seeAlso, searchGuide
+systemPossSuperiors: domainDNS, country, organizationalUnit,organization, locality
+schemaIdGuid:bf967aa0-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: FALSE
+systemOnly: FALSE
+defaultObjectCategory: CN=Locality,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Lost-And-Found
+ldapDisplayName: lostAndFound
+governsId: 1.2.840.113556.1.5.139
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: moveTreeState
+systemPossSuperiors: configuration, domainDNS, dMD
+schemaIdGuid:52ab8671-5709-11d1-a9c6-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Lost-And-Found,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Mail-Recipient
+ldapDisplayName: mailRecipient
+governsId: 1.2.840.113556.1.3.46
+objectClassCategory: 3
+rdnAttId: cn
+subClassOf: top
+systemMustContain: cn
+mayContain: msDS-PhoneticDisplayName, userSMIMECertificate,secretary, msExchLabeledURI, msExchAssistantName, labeledURI
+systemMayContain: userCertificate, userCert, textEncodedORAddress,telephoneNumber, showInAddressBook, legacyExchangeDN,garbageCollPeriod, info
+systemPossSuperiors: container
+schemaIdGuid:bf967aa1-0de6-11d0-a285-00aa003049e2
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Mail-Recipient,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: Meeting
+ldapDisplayName: meeting
+governsId: 1.2.840.113556.1.5.104
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: meetingName
+systemMayContain: meetingURL, meetingType, meetingStartTime,meetingScope, meetingRecurrence, meetingRating, meetingProtocol,meetingOwner, meetingOriginator, meetingMaxParticipants,meetingLocation, meetingLanguage, meetingKeyword,meetingIsEncrypted, meetingIP, meetingID, meetingEndTime,meetingDescription, meetingContactInfo, meetingBlob,meetingBandwidth, meetingApplication, meetingAdvertiseScope
+systemPossSuperiors: container
+schemaIdGuid:11b6cc94-48c4-11d1-a9c3-0000f80367c1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=Meeting,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-COM-Partition
+ldapDisplayName: msCOM-Partition
+governsId: 1.2.840.113556.1.5.193
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: msCOM-ObjectId
+systemPossSuperiors: domainDNS, organizationalUnit, container
+schemaIdGuid:c9010e74-4e58-49f7-8a89-5e3e2340fcf8
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-COM-Partition,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-COM-PartitionSet
+ldapDisplayName: msCOM-PartitionSet
+governsId: 1.2.840.113556.1.5.194
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: msCOM-PartitionLink, msCOM-DefaultPartitionLink,msCOM-ObjectId
+systemPossSuperiors: domainDNS, organizationalUnit, container
+schemaIdGuid:250464ab-c417-497a-975a-9e0d459a7ca1
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-COM-PartitionSet,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-DFS-Deleted-Link-v2
+ldapDisplayName: msDFS-DeletedLinkv2
+governsId: 1.2.840.113556.1.5.260
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: msDFS-NamespaceIdentityGUIDv2,msDFS-LinkIdentityGUIDv2, msDFS-LastModifiedv2, msDFS-LinkPathv2
+systemMayContain: msDFS-Commentv2, msDFS-ShortNameLinkPathv2
+systemPossSuperiors: msDFS-Namespacev2
+schemaIdGuid: 25173408-04ca-40e8-865e-3f9ce9bf1bd3
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFS-Deleted-Link-v2, CN=Schema,CN=Configuration, <RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-DFS-Link-v2
+ldapDisplayName: msDFS-Linkv2
+governsId: 1.2.840.113556.1.5.259
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: msDFS-GenerationGUIDv2,msDFS-NamespaceIdentityGUIDv2, msDFS-LinkIdentityGUIDv2,msDFS-LastModifiedv2, msDFS-Ttlv2, msDFS-TargetListv2,msDFS-Propertiesv2, msDFS-LinkPathv2
+systemMayContain: msDFS-Commentv2, msDFS-LinkSecurityDescriptorv2,msDFS-ShortNameLinkPathv2
+systemPossSuperiors: msDFS-Namespacev2
+schemaIdGuid: 7769fb7a-1159-4e96-9ccd-68bc487073eb
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFS-Link-v2, CN=Schema,CN=Configuration, <RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-DFS-Namespace-Anchor
+ldapDisplayName: msDFS-NamespaceAnchor
+governsId: 1.2.840.113556.1.5.257
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: msDFS-SchemaMajorVersion
+systemPossSuperiors: dfsConfiguration
+schemaIdGuid: da73a085-6e64-4d61-b064-015d04164795
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFS-Namespace-Anchor, CN=Schema,CN=Configuration, <RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-DFS-Namespace-v2
+ldapDisplayName: msDFS-Namespacev2
+governsId: 1.2.840.113556.1.5.258
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMustContain: msDFS-SchemaMajorVersion,msDFS-SchemaMinorVersion, msDFS-GenerationGUIDv2,msDFS-NamespaceIdentityGUIDv2, msDFS-LastModifiedv2, msDFS-Ttlv2,msDFS-TargetListv2, msDFS-Propertiesv2
+systemMayContain: msDFS-Commentv2
+systemPossSuperiors: msDFS-NamespaceAnchor
+schemaIdGuid: 21cb8628-f3c3-4bbf-bff6-060b2d8f299a
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFS-Namespace-v2, CN=Schema,CN=Configuration, <RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-DFSR-Connection
+ldapDisplayName: msDFSR-Connection
+governsId: 1.2.840.113556.1.6.13.4.10
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mustContain: fromServer
+mayContain: msDFSR-Options2, msDFSR-DisablePacketPrivacy,msDFSR-Priority, msDFSR-Enabled, msDFSR-RdcEnabled,msDFSR-RdcMinFileSizeInKb, msDFSR-Keywords, msDFSR-Schedule,msDFSR-Flags, msDFSR-Options, msDFSR-Extension
+possSuperiors: msDFSR-Member
+schemaIdGuid:e58f972e-64b5-46ef-8d8b-bbc3e1897eab
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFSR-Connection,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: ms-DFSR-Content
+ldapDisplayName: msDFSR-Content
+governsId: 1.2.840.113556.1.6.13.4.6
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mayContain: msDFSR-Options2, msDFSR-Flags, msDFSR-Options,msDFSR-Extension
+possSuperiors: msDFSR-ReplicationGroup
+schemaIdGuid:64759b35-d3a1-42e4-b5f1-a3de162109b3
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFSR-Content,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: ms-DFSR-ContentSet
+ldapDisplayName: msDFSR-ContentSet
+governsId: 1.2.840.113556.1.6.13.4.7
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mayContain: msDFSR-Options2, msDFSR-OnDemandExclusionDirectoryFilter,msDFSR-OnDemandExclusionFileFilter,msDFSR-DefaultCompressionExclusionFilter, msDFSR-DeletedSizeInMb,msDFSR-Priority, msDFSR-ConflictSizeInMb, msDFSR-StagingSizeInMb,msDFSR-RootSizeInMb, description, msDFSR-DfsPath, msDFSR-FileFilter,msDFSR-DirectoryFilter, msDFSR-Flags, msDFSR-Options,msDFSR-Extension
+possSuperiors: msDFSR-Content
+schemaIdGuid:4937f40d-a6dc-4d48-97ca-06e5fbfd3f16
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFSR-ContentSet,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: ms-DFSR-GlobalSettings
+ldapDisplayName: msDFSR-GlobalSettings
+governsId: 1.2.840.113556.1.6.13.4.4
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mayContain: msDFSR-Options2, msDFSR-Flags, msDFSR-Options,msDFSR-Extension
+possSuperiors: container
+schemaIdGuid:7b35dbad-b3ec-486a-aad4-2fec9d6ea6f6
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFSR-GlobalSettings,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: ms-DFSR-LocalSettings
+ldapDisplayName: msDFSR-LocalSettings
+governsId: 1.2.840.113556.1.6.13.4.1
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mayContain: msDFSR-StagingCleanupTriggerInPercent,msDFSR-CommonStagingSizeInMb, msDFSR-CommonStagingPath,msDFSR-Options2, msDFSR-Version, msDFSR-Flags, msDFSR-Options,msDFSR-Extension
+possSuperiors: computer
+schemaIdGuid:fa85c591-197f-477e-83bd-ea5a43df2239
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFSR-LocalSettings,CN=Schema,CN=Configuration,<RootDomainDN>
+
+cn: ms-DFSR-Member
+ldapDisplayName: msDFSR-Member
+governsId: 1.2.840.113556.1.6.13.4.9
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+mustContain: msDFSR-ComputerReference
+mayContain: msDFSR-Options2, serverReference, msDFSR-Keywords,msDFSR-Flags, msDFSR-Options, msDFSR-Extension
+possSuperiors: msDFSR-Topology
+schemaIdGuid:4229c897-c211-437c-a5ae-dbf705b696e5
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-DFSR-Member,CN=Schema,CN=Configuration,<RootDomainDN>
+
cn: ms-DFSR-ReplicationGroup
ldapDisplayName: msDFSR-ReplicationGroup
governsId: 1.2.840.113556.1.6.13.4.5
@@ -97,7 +1479,7 @@ objectClassCategory: 1
rdnAttId: cn
subClassOf: top
mustContain: msDFSR-MemberReference, msDFSR-ReplicationGroupGuid
-mayContain: msDFSR-Flags, msDFSR-Options, msDFSR-Extension
+mayContain: msDFSR-Options2, msDFSR-Flags, msDFSR-Options,msDFSR-Extension
possSuperiors: msDFSR-LocalSettings
schemaIdGuid:e11505d7-92c4-43e7-bf5c-295832ffc896
defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
@@ -126,7 +1508,7 @@ governsId: 1.2.840.113556.1.6.13.4.8
objectClassCategory: 1
rdnAttId: cn
subClassOf: top
-mayContain: msDFSR-Flags, msDFSR-Options, msDFSR-Extension
+mayContain: msDFSR-Options2, msDFSR-Flags, msDFSR-Options,msDFSR-Extension
possSuperiors: msDFSR-ReplicationGroup
schemaIdGuid:04828aa9-6e42-4e80-b962-e2fe00754d17
defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
@@ -223,20 +1605,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=ms-DS-Az-Role,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Application-Version
-ldapDisplayName: applicationVersion
-governsId: 1.2.840.113556.1.5.216
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: applicationSettings
-mayContain: owner, managedBy, keywords, versionNumberLo,versionNumberHi, versionNumber, vendor, appSchemaVersion
-possSuperiors: organizationalUnit, computer, container
-schemaIdGuid:ddc790ac-af4d-442a-8f0f-a1d4caa7dd92
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Application-Version,CN=Schema,CN=Configuration,<RootDomainDN>
-
cn: ms-DS-Az-Scope
ldapDisplayName: msDS-AzScope
governsId: 1.2.840.113556.1.5.237
@@ -289,7 +1657,7 @@ governsId: 1.2.840.113556.1.5.256
objectClassCategory: 1
rdnAttId: cn
subClassOf: top
-systemPossSuperiors: Container
+systemPossSuperiors: container
schemaIdGuid: 5b06b06a-4cf3-44c0-bd16-43bc10a987da
defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)
systemOnly: FALSE
@@ -372,6 +1740,21 @@ systemOnly: FALSE
defaultObjectCategory: CN=ms-ieee-80211-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: MSMQ-Configuration
+ldapDisplayName: mSMQConfiguration
+governsId: 1.2.840.113556.1.5.162
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: mSMQSites, mSMQSignKey, mSMQServiceType,mSMQRoutingServices, mSMQQuota, mSMQOwnerID, mSMQOutRoutingServers,mSMQOSType, mSMQJournalQuota, mSMQInRoutingServers, mSMQForeign,mSMQEncryptKey, mSMQDsServices, mSMQDependentClientServices,mSMQComputerTypeEx, mSMQComputerType
+systemPossSuperiors: computer
+schemaIdGuid:9a0dc344-c100-11d1-bbc5-0080c76670c0
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=MSMQ-Configuration,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: MSMQ-Custom-Recipient
ldapDisplayName: msMQ-Custom-Recipient
governsId: 1.2.840.113556.1.5.218
@@ -387,20 +1770,19 @@ systemOnly: FALSE
defaultObjectCategory: CN=MSMQ-Custom-Recipient,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Attribute-Schema
-ldapDisplayName: attributeSchema
-governsId: 1.2.840.113556.1.3.14
+cn: MSMQ-Enterprise-Settings
+ldapDisplayName: mSMQEnterpriseSettings
+governsId: 1.2.840.113556.1.5.163
objectClassCategory: 1
rdnAttId: cn
subClassOf: top
-systemMustContain: schemaIDGUID, oMSyntax, lDAPDisplayName,isSingleValued, cn, attributeSyntax, attributeID
-systemMayContain: systemOnly, searchFlags, schemaFlagsEx,rangeUpper, rangeLower, oMObjectClass, msDs-Schema-Extensions,msDS-IntId, mAPIID, linkID, isMemberOfPartialAttributeSet,isEphemeral, isDefunct, extendedCharsAllowed, classDisplayName,attributeSecurityGUID
-systemPossSuperiors: dMD
-schemaIdGuid:bf967a80-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:S:
+systemMayContain: mSMQVersion, mSMQNameStyle, mSMQLongLived,mSMQInterval2, mSMQInterval1, mSMQCSPName
+systemPossSuperiors: container
+schemaIdGuid:9a0dc345-c100-11d1-bbc5-0080c76670c0
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
defaultHidingValue: TRUE
systemOnly: FALSE
-defaultObjectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,<RootDomainDN>
+defaultObjectCategory: CN=MSMQ-Enterprise-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
cn: MSMQ-Group
@@ -418,36 +1800,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=MSMQ-Group,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: MSMQ-Configuration
-ldapDisplayName: mSMQConfiguration
-governsId: 1.2.840.113556.1.5.162
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: mSMQSites, mSMQSignKey, mSMQServiceType,mSMQRoutingServices, mSMQQuota, mSMQOwnerID, mSMQOutRoutingServers,mSMQOSType, mSMQJournalQuota, mSMQInRoutingServers, mSMQForeign,mSMQEncryptKey, mSMQDsServices, mSMQDependentClientServices,mSMQComputerTypeEx, mSMQComputerType
-systemPossSuperiors: computer
-schemaIdGuid:9a0dc344-c100-11d1-bbc5-0080c76670c0
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MSMQ-Configuration,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MSMQ-Enterprise-Settings
-ldapDisplayName: mSMQEnterpriseSettings
-governsId: 1.2.840.113556.1.5.163
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: mSMQVersion, mSMQNameStyle, mSMQLongLived,mSMQInterval2, mSMQInterval1, mSMQCSPName
-systemPossSuperiors: container
-schemaIdGuid:9a0dc345-c100-11d1-bbc5-0080c76670c0
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MSMQ-Enterprise-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: MSMQ-Migrated-User
ldapDisplayName: mSMQMigratedUser
governsId: 1.2.840.113556.1.5.179
@@ -509,6 +1861,36 @@ systemOnly: FALSE
defaultObjectCategory: CN=MSMQ-Site-Link,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
+cn: ms-net-ieee-80211-GroupPolicy
+lDAPDisplayName: ms-net-ieee-80211-GroupPolicy
+governsID: 1.2.840.113556.1.5.251
+objectClassCategory: 1
+rDNAttID: cn
+subClassOf: top
+systemMayContain: ms-net-ieee-80211-GP-PolicyReserved,ms-net-ieee-80211-GP-PolicyData, ms-net-ieee-80211-GP-PolicyGUID
+systemPossSuperiors: computer, container, person
+schemaIDGUID: 1cb81863-b822-4379-9ea2-5ff7bdc6386d
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-net-ieee-80211-GroupPolicy,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: ms-net-ieee-8023-GroupPolicy
+lDAPDisplayName: ms-net-ieee-8023-GroupPolicy
+governsID: 1.2.840.113556.1.5.252
+objectClassCategory: 1
+rDNAttID: cn
+subClassOf: top
+systemMayContain: ms-net-ieee-8023-GP-PolicyReserved,ms-net-ieee-8023-GP-PolicyData, ms-net-ieee-8023-GP-PolicyGUID
+systemPossSuperiors: computer, container, person
+schemaIDGUID: 99a03a6a-ab19-4446-9350-0cb878ed2d9b
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=ms-net-ieee-8023-GroupPolicy,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: ms-PKI-Enterprise-Oid
ldapDisplayName: msPKI-Enterprise-Oid
governsId: 1.2.840.113556.1.5.196
@@ -553,19 +1935,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=ms-PKI-Private-Key-Recovery-Agent,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: BootableDevice
-ldapDisplayName: bootableDevice
-governsId: 1.3.6.1.1.1.2.12
-objectClassCategory: 3
-rdnAttId: cn
-subClassOf: top
-mayContain: cn, bootParameter, bootFile
-schemaIdGuid:4bcb2477-4bb3-4545-a9fc-fb66e136b435
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=BootableDevice,CN=Schema,CN=Configuration,<RootDomainDN>
-
cn: ms-Print-ConnectionPolicy
ldapDisplayName: msPrint-ConnectionPolicy
governsId: 1.2.840.113556.1.6.23.2
@@ -651,6 +2020,111 @@ defaultHidingValue: TRUE
systemOnly: FALSE
defaultObjectCategory: CN=msSFU-30-NIS-Map-Config,CN=Schema,CN=Configuration,<RootDomainDN>
+cn: MS-SQL-OLAPCube
+ldapDisplayName: mS-SQL-OLAPCube
+governsId: 1.2.840.113556.1.5.190
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-InformationURL, mS-SQL-Status, mS-SQL-LastUpdatedDate,mS-SQL-Size, mS-SQL-Description, mS-SQL-Contact, mS-SQL-Name
+systemPossSuperiors: mS-SQL-OLAPDatabase
+schemaIdGuid:09f0506a-cd28-11d2-9993-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=MS-SQL-OLAPCube,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-OLAPDatabase
+ldapDisplayName: mS-SQL-OLAPDatabase
+governsId: 1.2.840.113556.1.5.189
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-ConnectionURL, mS-SQL-InformationURL, mS-SQL-Status,mS-SQL-Applications, mS-SQL-LastBackupDate, mS-SQL-LastUpdatedDate,mS-SQL-Size, mS-SQL-Type, mS-SQL-Description, mS-SQL-Contact,mS-SQL-Name
+systemPossSuperiors: mS-SQL-OLAPServer
+schemaIdGuid:20af031a-ccef-11d2-9993-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=MS-SQL-OLAPDatabase,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-OLAPServer
+ldapDisplayName: mS-SQL-OLAPServer
+governsId: 1.2.840.113556.1.5.185
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: serviceConnectionPoint
+systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-InformationURL, mS-SQL-Status, mS-SQL-Language,mS-SQL-ServiceAccount, mS-SQL-Contact, mS-SQL-RegisteredOwner,mS-SQL-Build, mS-SQL-Version, mS-SQL-Name
+systemPossSuperiors: serviceConnectionPoint
+schemaIdGuid:0c7e18ea-ccef-11d2-9993-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=MS-SQL-OLAPServer,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-SQLDatabase
+ldapDisplayName: mS-SQL-SQLDatabase
+governsId: 1.2.840.113556.1.5.188
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: mS-SQL-Keywords, mS-SQL-InformationURL,mS-SQL-Status, mS-SQL-Applications, mS-SQL-LastDiagnosticDate,mS-SQL-LastBackupDate, mS-SQL-CreationDate, mS-SQL-Size,mS-SQL-Contact, mS-SQL-Alias, mS-SQL-Description, mS-SQL-Name
+systemPossSuperiors: mS-SQL-SQLServer
+schemaIdGuid:1d08694a-ccef-11d2-9993-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=MS-SQL-SQLDatabase,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-SQLPublication
+ldapDisplayName: mS-SQL-SQLPublication
+governsId: 1.2.840.113556.1.5.187
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: mS-SQL-ThirdParty,mS-SQL-AllowSnapshotFilesFTPDownloading,mS-SQL-AllowQueuedUpdatingSubscription,mS-SQL-AllowImmediateUpdatingSubscription,mS-SQL-AllowKnownPullSubscription, mS-SQL-Publisher,mS-SQL-AllowAnonymousSubscription, mS-SQL-Database, mS-SQL-Type,mS-SQL-Status, mS-SQL-Description, mS-SQL-Name
+systemPossSuperiors: mS-SQL-SQLServer
+schemaIdGuid:17c2f64e-ccef-11d2-9993-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=MS-SQL-SQLPublication,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-SQLRepository
+ldapDisplayName: mS-SQL-SQLRepository
+governsId: 1.2.840.113556.1.5.186
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: top
+systemMayContain: mS-SQL-InformationDirectory, mS-SQL-Version,mS-SQL-Description, mS-SQL-Status, mS-SQL-Build, mS-SQL-Contact,mS-SQL-Name
+systemPossSuperiors: mS-SQL-SQLServer
+schemaIdGuid:11d43c5c-ccef-11d2-9993-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=MS-SQL-SQLRepository,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
+cn: MS-SQL-SQLServer
+ldapDisplayName: mS-SQL-SQLServer
+governsId: 1.2.840.113556.1.5.184
+objectClassCategory: 1
+rdnAttId: cn
+subClassOf: serviceConnectionPoint
+systemMayContain: mS-SQL-Keywords, mS-SQL-GPSHeight,mS-SQL-GPSLongitude, mS-SQL-GPSLatitude, mS-SQL-InformationURL,mS-SQL-LastUpdatedDate, mS-SQL-Status, mS-SQL-Vines,mS-SQL-AppleTalk, mS-SQL-TCPIP, mS-SQL-SPX, mS-SQL-MultiProtocol,mS-SQL-NamedPipe, mS-SQL-Clustered, mS-SQL-UnicodeSortOrder,mS-SQL-SortOrder, mS-SQL-CharacterSet, mS-SQL-ServiceAccount,mS-SQL-Build, mS-SQL-Memory, mS-SQL-Location, mS-SQL-Contact,mS-SQL-RegisteredOwner, mS-SQL-Name
+systemPossSuperiors: serviceConnectionPoint
+schemaIdGuid:05f6c878-ccef-11d2-9993-0000f87a57d4
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
+defaultHidingValue: TRUE
+systemOnly: FALSE
+defaultObjectCategory: CN=MS-SQL-SQLServer,CN=Schema,CN=Configuration,<RootDomainDN>
+systemFlags: FLAG_SCHEMA_BASE_OBJECT
+
cn: ms-TAPI-Rt-Conference
ldapDisplayName: msTAPI-RtConference
governsId: 1.2.840.113556.1.5.221
@@ -714,21 +2188,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=ms-WMI-IntSetParam,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Builtin-Domain
-ldapDisplayName: builtinDomain
-governsId: 1.2.840.113556.1.5.4
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemAuxiliaryClass: samDomainBase
-systemPossSuperiors: domainDNS
-schemaIdGuid:bf967a81-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Builtin-Domain,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-WMI-MergeablePolicyTemplate
ldapDisplayName: msWMI-MergeablePolicyTemplate
governsId: 1.2.840.113556.1.5.202
@@ -882,21 +2341,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=ms-WMI-Som,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Category-Registration
-ldapDisplayName: categoryRegistration
-governsId: 1.2.840.113556.1.5.74
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: leaf
-systemMayContain: managedBy, localizedDescription, localeID,categoryId
-systemPossSuperiors: classStore
-schemaIdGuid:7d6c0e9d-7e20-11d0-afd6-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Category-Registration,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ms-WMI-StringSetParam
ldapDisplayName: msWMI-StringSetParam
governsId: 1.2.840.113556.1.5.210
@@ -1052,22 +2496,6 @@ systemOnly: TRUE
defaultObjectCategory: CN=NTDS-DSA,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Certification-Authority
-ldapDisplayName: certificationAuthority
-governsId: 2.5.6.16
-objectClassCategory: 0
-rdnAttId: cn
-subClassOf: top
-systemMustContain: cn, certificateRevocationList, cACertificate,authorityRevocationList
-systemMayContain: teletexTerminalIdentifier,supportedApplicationContext, signatureAlgorithms, searchGuide,previousParentCA, previousCACertificates, pendingParentCA,pendingCACertificates, parentCACertificateChain, parentCA,enrollmentProviders, domainPolicyObject, domainID, dNSHostName,deltaRevocationList, currentParentCA, crossCertificatePair,cRLObject, certificateTemplates, cAWEBURL, cAUsages, cAConnect,cACertificateDN
-systemPossSuperiors: container
-schemaIdGuid:3fdfee50-47f4-11d1-a9c3-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Certification-Authority,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: NTDS-DSA-RO
ldapDisplayName: nTDSDSARO
governsId: 1.2.840.113556.1.5.254
@@ -1136,7 +2564,7 @@ subClassOf: top
systemMayContain: schedule, msFRS-Topology-Pref, msFRS-Hub-Member,managedBy, fRSVersionGUID, fRSServiceCommand, fRSRootSecurity,fRSReplicaSetType, fRSReplicaSetGUID, fRSPrimaryMember,fRSPartnerAuthLevel, fRSLevelLimit, fRSFlags, fRSFileFilter,fRSExtensions, fRSDSPoll, fRSDirectoryFilter
systemPossSuperiors: nTFRSSettings
schemaIdGuid:5245803a-ca6a-11d0-afff-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(OA;;CCDC;2a132586-9373-11d1-aebc-0000f80367c1;;ED)
defaultHidingValue: TRUE
systemOnly: FALSE
defaultObjectCategory: CN=NTFRS-Replica-Set,CN=Schema,CN=Configuration,<RootDomainDN>
@@ -1219,21 +2647,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=Organization,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Class-Registration
-ldapDisplayName: classRegistration
-governsId: 1.2.840.113556.1.5.10
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: leaf
-systemMayContain: requiredCategories, managedBy,implementedCategories, cOMTreatAsClassId, cOMProgID,cOMOtherProgId, cOMInterfaceID, cOMCLSID
-systemPossSuperiors: classStore
-schemaIdGuid:bf967a82-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Class-Registration,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Organizational-Person
ldapDisplayName: organizationalPerson
governsId: 2.5.6.7
@@ -1385,22 +2798,6 @@ defaultHidingValue: TRUE
systemOnly: FALSE
defaultObjectCategory: CN=PosixGroup,CN=Schema,CN=Configuration,<RootDomainDN>
-cn: Class-Schema
-ldapDisplayName: classSchema
-governsId: 1.2.840.113556.1.3.13
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: subClassOf, schemaIDGUID, objectClassCategory,governsID, defaultObjectCategory, cn
-systemMayContain: systemPossSuperiors, systemOnly, systemMustContain,systemMayContain, systemAuxiliaryClass, schemaFlagsEx, rDNAttID,possSuperiors, mustContain, msDs-Schema-Extensions, msDS-IntId,mayContain, lDAPDisplayName, isDefunct, defaultSecurityDescriptor,defaultHidingValue, classDisplayName, auxiliaryClass
-systemPossSuperiors: dMD
-schemaIdGuid:bf967a83-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:S:
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Class-Schema,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Print-Queue
ldapDisplayName: printQueue
governsId: 1.2.840.113556.1.5.23
@@ -1552,21 +2949,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=Rpc-Container,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Class-Store
-ldapDisplayName: classStore
-governsId: 1.2.840.113556.1.5.44
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: versionNumber, nextLevelStore, lastUpdateSequence,appSchemaVersion
-systemPossSuperiors: domainPolicy, computer, group, user, classStore,organizationalUnit, domainDNS, container
-schemaIdGuid:bf967a84-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Class-Store,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: rpc-Entry
ldapDisplayName: rpcEntry
governsId: 1.2.840.113556.1.5.27
@@ -1695,7 +3077,7 @@ subClassOf: top
systemAuxiliaryClass: samDomainBase
systemMayContain: treeName, rIDManagerReference, replicaSource,pwdProperties, pwdHistoryLength, privateKey, pekList,pekKeyChangeInterval, nTMixedDomain, nextRid, nETBIOSName,msDS-PerUserTrustTombstonesQuota, msDS-PerUserTrustQuota,ms-DS-MachineAccountQuota, msDS-LogonTimeSyncInterval,msDS-AllUsersTrustQuota, modifiedCountAtLastProm, minPwdLength,minPwdAge, maxPwdAge, lSAModifiedCount, lSACreationTime,lockoutThreshold, lockoutDuration, lockOutObservationWindow,gPOptions, gPLink, eFSPolicy, domainPolicyObject, desktopProfile,description, defaultLocalPolicyObject, creationTime,controlAccessRights, cACertificate, builtinModifiedCount,builtinCreationTime, auditingPolicy
schemaIdGuid:bf967a90-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RP;;;WD)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCRCWDWOSW;;;DA)(A;CI;RPWPCRLCLOCCRCWDWOSDSW;;;BA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(A;CI;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;EA)(A;CI;LC;;;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(A;;RPRC;;;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(A;;LCRPLORC;;;ED)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RPLCLORC;;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;CIIO;CRRPWP;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;RO)S:(AU;SA;WDWOWP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
+defaultSecurityDescriptor: D:(A;;RP;;;WD)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCRCWDWOSW;;;DA)(A;CI;RPWPCRLCLOCCRCWDWOSDSW;;;BA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(A;CI;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;EA)(A;CI;LC;;;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(A;;RPRC;;;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(A;;LCRPLORC;;;ED)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RPLCLORC;;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;CIIO;CRRPWP;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)S:(AU;SA;WDWOWP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
defaultHidingValue: TRUE
systemOnly: FALSE
defaultObjectCategory: CN=Sam-Domain,CN=Schema,CN=Configuration,<RootDomainDN>
@@ -1714,37 +3096,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=Sam-Domain-Base,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: ACS-Policy
-ldapDisplayName: aCSPolicy
-governsId: 1.2.840.113556.1.5.137
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: aCSTotalNoOfFlows, aCSTimeOfDay, aCSServiceType,aCSPriority, aCSPermissionBits, aCSMinimumDelayVariation,aCSMinimumLatency, aCSMaximumSDUSize, aCSMinimumPolicedSize,aCSMaxTokenRatePerFlow, aCSMaxTokenBucketPerFlow,aCSMaxPeakBandwidthPerFlow, aCSMaxDurationPerFlow,aCSMaxAggregatePeakRatePerUser, aCSIdentityName, aCSDirection,aCSAggregateTokenRatePerUser
-systemPossSuperiors: container
-schemaIdGuid:7f561288-5301-11d1-a9c5-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ACS-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Com-Connection-Point
-ldapDisplayName: comConnectionPoint
-governsId: 1.2.840.113556.1.5.11
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: connectionPoint
-systemMustContain: cn
-systemMayContain: monikerDisplayName, moniker, marshalledInterface
-systemPossSuperiors: container
-schemaIdGuid:bf967a85-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Com-Connection-Point,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: Sam-Server
ldapDisplayName: samServer
governsId: 1.2.840.113556.1.5.5
@@ -1894,23 +3245,6 @@ systemOnly: FALSE
defaultObjectCategory: CN=Service-Instance,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Computer
-ldapDisplayName: computer
-governsId: 1.2.840.113556.1.3.30
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: user
-auxiliaryClass: ipHost
-mayContain: msSFU30Aliases, msSFU30NisDomain, nisMapName,msSFU30Name
-systemMayContain: msDS-IsUserCachableAtRodc, msTSProperty02,msTSProperty01, msTPM-OwnerInformation, msDS-RevealOnDemandGroup,msDS-NeverRevealGroup, msDS-PromotionSettings, msDS-SiteName,msDS-isRODC, msDS-isGC, msDS-AuthenticatedAtDC, msDS-RevealedList,msDS-RevealedUsers, msDS-ExecuteScriptPassword, msDS-KrbTgtLink,volumeCount, siteGUID, rIDSetReferences, policyReplicationFlags,physicalLocationObject, operatingSystemVersion,operatingSystemServicePack, operatingSystemHotfix, operatingSystem,networkAddress, netbootSIFFile, netbootMirrorDataFile,netbootMachineFilePath, netbootInitialization, netbootGUID,msDS-AdditionalSamAccountName, msDS-AdditionalDnsHostName,managedBy, machineRole, location, localPolicyFlags, dNSHostName,defaultLocalPolicyObject, cn, catalogs
-systemPossSuperiors: container, organizationalUnit, domainDNS
-schemaIdGuid:bf967a86-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCRLCLORCSDDT;;;CO)(OA;;WP;4c164200-20c0-11d0-a768-00aa006e0529;;CO)(A;;RPLCLORC;;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(A;;CCDC;;;PS)(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;PS)(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;CO)(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;CO)(OA;;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;bf967950-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;bf967953-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)
-defaultHidingValue: FALSE
-systemOnly: FALSE
-defaultObjectCategory: CN=Computer,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
cn: ShadowAccount
ldapDisplayName: shadowAccount
governsId: 1.3.6.1.1.1.2.1
@@ -2054,23 +3388,7 @@ defaultSecurityDescriptor: D:S:
defaultHidingValue: TRUE
systemOnly: TRUE
defaultObjectCategory: CN=SubSchema,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Configuration
-ldapDisplayName: configuration
-governsId: 1.2.840.113556.1.5.12
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: cn
-systemMayContain: gPOptions, gPLink
-systemPossSuperiors: domainDNS
-schemaIdGuid:bf967a87-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: TRUE
-defaultObjectCategory: CN=Configuration,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_DOMAIN_DISALLOW_RENAME
cn: Top
ldapDisplayName: top
@@ -2130,7 +3448,7 @@ systemAuxiliaryClass: securityPrincipal, mailRecipient
mayContain: msSFU30NisDomain, msSFU30Name, msDS-SourceObjectDN,x500uniqueIdentifier, userSMIMECertificate, userPKCS12, uid,secretary, roomNumber, preferredLanguage, photo, labeledURI,jpegPhoto, homePostalAddress, givenName, employeeType,employeeNumber, displayName, departmentNumber, carLicense, audio
systemMayContain: msDS-ResultantPSO, MSTSLSProperty01,MSTSLSProperty02, msTSManagingLS2, msTSManagingLS3, msTSManagingLS4,msTSLicenseVersion2, msTSLicenseVersion3, msTSLicenseVersion4,msTSExpireDate2, msTSExpireDate3, msTSExpireDate4,msDS-AuthenticatedAtDC, msDS-UserPasswordExpiryTimeComputed,msTSManagingLS, msTSLicenseVersion, msTSExpireDate, msTSProperty02,msTSProperty01, msTSInitialProgram, msTSWorkDirectory,msTSDefaultToMainPrinter, msTSConnectPrinterDrives,msTSConnectClientDrives, msTSBrokenConnectionAction,msTSReconnectionAction, msTSMaxIdleTime, msTSMaxConnectionTime,msTSMaxDisconnectionTime, msTSRemoteControl, msTSAllowLogon,msTSHomeDrive, msTSHomeDirectory, msTSProfilePath,msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon,msDS-FailedInteractiveLogonCount,msDS-LastFailedInteractiveLogonTime,msDS-LastSuccessfulInteractiveLogonTime,msRADIUS-SavedFramedIpv6Route, msRADIUS-FramedIpv6Route,msRADIUS-SavedFramedIpv6Prefix, msRADIUS-FramedIpv6Prefix,msRADIUS-SavedFramedInterfaceId, msRADIUS-FramedInterfaceId,msPKIAccountCredentials, msPKIDPAPIMasterKeys,msPKIRoamingTimeStamp, msDS-SupportedEncryptionTypes,msDS-SecondaryKrbTgtNumber, pager, o, mobile, manager, mail,initials, homePhone, businessCategory, userCertificate,userWorkstations, userSharedFolderOther, userSharedFolder,userPrincipalName, userParameters, userAccountControl, unicodePwd,terminalServer, servicePrincipalName, scriptPath, pwdLastSet,profilePath, primaryGroupID, preferredOU, otherLoginWorkstations,operatorCount, ntPwdHistory, networkAddress, msRASSavedFramedRoute,msRASSavedFramedIPAddress, msRASSavedCallbackNumber,msRADIUSServiceType, msRADIUSFramedRoute, msRADIUSFramedIPAddress,msRADIUSCallbackNumber, msNPSavedCallingStationID,msNPCallingStationID, msNPAllowDialin, mSMQSignCertificatesMig,mSMQSignCertificates, mSMQDigestsMig, mSMQDigests, msIIS-FTPRoot,msIIS-FTPDir, msDS-User-Account-Control-Computed,msDS-Site-Affinity, mS-DS-CreatorSID,msDS-Cached-Membership-Time-Stamp, msDS-Cached-Membership,msDRM-IdentityCertificate, msCOM-UserPartitionSetLink, maxStorage,logonWorkstation, logonHours, logonCount, lockoutTime, localeID,lmPwdHistory, lastLogonTimestamp, lastLogon, lastLogoff, homeDrive,homeDirectory, groupsToIgnore, groupPriority, groupMembershipSAM,dynamicLDAPServer, desktopProfile, defaultClassStore, dBCSPwd,controlAccessRights, codePage, badPwdCount, badPasswordTime,adminCount, aCSPolicyName, accountExpires
schemaIdGuid:bf967aba-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RP;037088f8-0ae1-11d2-b422-00a0c968f939;;RS)(OA;;RP;4c164200-20c0-11d0-a768-00aa006e0529;;RS)(OA;;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;;RS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(OA;;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;;RS)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)(OA;;WPRP;6db69a1c-9422-11d1-aebd-0000f80367c1;;S-1-5-32-561)
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RP;037088f8-0ae1-11d2-b422-00a0c968f939;;RS)(OA;;RP;4c164200-20c0-11d0-a768-00aa006e0529;;RS)(OA;;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;;RS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(OA;;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;;RS)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)(OA;;WPRP;6db69a1c-9422-11d1-aebd-0000f80367c1;;S-1-5-32-561)(OA;;WPRP;5805bc62-bdc9-4428-a5e2-856a0f4c185e;;S-1-5-32-561)
systemPossSuperiors: builtinDomain, organizationalUnit, domainDNS
defaultHidingValue: FALSE
systemOnly: FALSE
@@ -2153,1266 +3471,3 @@ systemOnly: FALSE
defaultObjectCategory: CN=Volume,CN=Schema,CN=Configuration,<RootDomainDN>
systemFlags: FLAG_SCHEMA_BASE_OBJECT
-cn: Connection-Point
-ldapDisplayName: connectionPoint
-governsId: 1.2.840.113556.1.5.14
-objectClassCategory: 2
-rdnAttId: cn
-subClassOf: leaf
-systemMustContain: cn
-systemMayContain: msDS-Settings, managedBy, keywords
-systemPossSuperiors: container, computer
-schemaIdGuid:5cb41ecf-0e4c-11d0-a286-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Connection-Point,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Contact
-ldapDisplayName: contact
-governsId: 1.2.840.113556.1.5.15
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: organizationalPerson
-systemAuxiliaryClass: mailRecipient
-systemMustContain: cn
-mayContain: msDS-SourceObjectDN
-systemMayContain: notes
-systemPossSuperiors: organizationalUnit, domainDNS
-schemaIdGuid:5cb41ed0-0e4c-11d0-a286-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: FALSE
-systemOnly: FALSE
-defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Container
-ldapDisplayName: container
-governsId: 1.2.840.113556.1.3.23
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: cn
-mayContain: msDS-ObjectReference
-systemMayContain: schemaVersion, defaultClassStore
-systemPossSuperiors: msDS-AzScope, msDS-AzApplication,msDS-AzAdminManager, subnet, server, nTDSService, domainDNS,organization, configuration, container, organizationalUnit
-schemaIdGuid:bf967a8b-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Container,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Control-Access-Right
-ldapDisplayName: controlAccessRight
-governsId: 1.2.840.113556.1.5.77
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: validAccesses, rightsGuid, localizationDisplayId,appliesTo
-systemPossSuperiors: container
-schemaIdGuid:8297931e-86d3-11d0-afda-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Control-Access-Right,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Country
-ldapDisplayName: country
-governsId: 2.5.6.2
-objectClassCategory: 0
-rdnAttId: c
-subClassOf: top
-systemMustContain: c
-systemMayContain: co, searchGuide
-systemPossSuperiors: domainDNS, organization
-schemaIdGuid:bf967a8c-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Country,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: CRL-Distribution-Point
-ldapDisplayName: cRLDistributionPoint
-governsId: 2.5.6.19
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: cn
-systemMayContain: deltaRevocationList, cRLPartitionedRevocationList,certificateRevocationList, certificateAuthorityObject,authorityRevocationList
-systemPossSuperiors: container
-schemaIdGuid:167758ca-47f3-11d1-a9c3-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=CRL-Distribution-Point,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Cross-Ref
-ldapDisplayName: crossRef
-governsId: 1.2.840.113556.1.3.11
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: nCName, dnsRoot, cn
-systemMayContain: msDS-NC-RO-Replica-Locations, trustParent,superiorDNSRoot, rootTrust, nTMixedDomain, nETBIOSName, Enabled,msDS-SDReferenceDomain,msDS-Replication-Notify-Subsequent-DSA-Delay,msDS-Replication-Notify-First-DSA-Delay, msDS-NC-Replica-Locations,msDS-DnsRootAlias, msDS-Behavior-Version
-systemPossSuperiors: crossRefContainer
-schemaIdGuid:bf967a8d-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Cross-Ref,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ACS-Resource-Limits
-ldapDisplayName: aCSResourceLimits
-governsId: 1.2.840.113556.1.5.191
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: aCSMaxTokenRatePerFlow, aCSServiceType,aCSMaxPeakBandwidthPerFlow, aCSMaxPeakBandwidth,aCSAllocableRSVPBandwidth
-systemPossSuperiors: container
-schemaIdGuid:2e899b04-2834-11d3-91d4-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ACS-Resource-Limits,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Cross-Ref-Container
-ldapDisplayName: crossRefContainer
-governsId: 1.2.840.113556.1.5.7000.53
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: msDS-SPNSuffixes, uPNSuffixes, msDS-UpdateScript,msDS-ExecuteScriptPassword, msDS-Behavior-Version
-systemPossSuperiors: configuration
-schemaIdGuid:ef9e60e0-56f7-11d1-a9c6-0000f80367c1
-defaultSecurityDescriptor: D:(A;;GA;;;SY)
-defaultHidingValue: FALSE
-systemOnly: TRUE
-defaultObjectCategory: CN=Cross-Ref-Container,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Device
-ldapDisplayName: device
-governsId: 2.5.6.14
-objectClassCategory: 0
-rdnAttId: cn
-subClassOf: top
-auxiliaryClass: ipHost, ieee802Device, bootableDevice
-systemMustContain: cn
-mayContain: msSFU30Name, msSFU30NisDomain, nisMapName, msSFU30Aliases
-systemMayContain: serialNumber, seeAlso, owner, ou, o, l
-systemPossSuperiors: domainDNS, organizationalUnit, organization,container
-schemaIdGuid:bf967a8e-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Device,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Dfs-Configuration
-ldapDisplayName: dfsConfiguration
-governsId: 1.2.840.113556.1.5.42
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemPossSuperiors: container, domainDNS
-schemaIdGuid:8447f9f2-1027-11d0-a05f-00aa006c33ed
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Dfs-Configuration,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: DHCP-Class
-ldapDisplayName: dHCPClass
-governsId: 1.2.840.113556.1.5.132
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: dhcpUniqueKey, dhcpType, dhcpIdentification,dhcpFlags
-systemMayContain: superScopes, superScopeDescription,optionsLocation, optionDescription, networkAddress, mscopeId,dhcpUpdateTime, dhcpSubnets, dhcpState, dhcpSites, dhcpServers,dhcpReservations, dhcpRanges, dhcpProperties, dhcpOptions,dhcpObjName, dhcpObjDescription, dhcpMaxKey, dhcpMask, dhcpClasses
-systemPossSuperiors: container
-schemaIdGuid:963d2756-48be-11d1-a9c3-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=DHCP-Class,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Display-Specifier
-ldapDisplayName: displaySpecifier
-governsId: 1.2.840.113556.1.5.84
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: treatAsLeaf, shellPropertyPages, shellContextMenu,scopeFlags, queryFilter, iconPath, extraColumns, creationWizard,createWizardExt, createDialog, contextMenu, classDisplayName,attributeDisplayNames, adminPropertyPages,adminMultiselectPropertyPages, adminContextMenu
-systemPossSuperiors: container
-schemaIdGuid:e0fa1e8a-9b45-11d0-afdd-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Display-Specifier,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Display-Template
-ldapDisplayName: displayTemplate
-governsId: 1.2.840.113556.1.3.59
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: cn
-systemMayContain: originalDisplayTableMSDOS, originalDisplayTable,helpFileName, helpData32, helpData16, addressEntryDisplayTableMSDOS,addressEntryDisplayTable
-systemPossSuperiors: container
-schemaIdGuid:5fd4250c-1262-11d0-a060-00aa006c33ed
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Display-Template,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: DMD
-ldapDisplayName: dMD
-governsId: 1.2.840.113556.1.3.9
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: cn
-systemMayContain: schemaUpdate, schemaInfo, prefixMap,msDs-Schema-Extensions, msDS-IntId, dmdName
-systemPossSuperiors: configuration
-schemaIdGuid:bf967a8f-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: TRUE
-defaultObjectCategory: CN=DMD,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Dns-Node
-ldapDisplayName: dnsNode
-governsId: 1.2.840.113556.1.5.86
-objectClassCategory: 1
-rdnAttId: dc
-subClassOf: top
-systemMustContain: dc
-systemMayContain: dNSTombstoned, dnsRecord, dNSProperty
-systemPossSuperiors: dnsZone
-schemaIdGuid:e0fa1e8c-9b45-11d0-afdd-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;ED)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)(A;;RPLCLORC;;;WD)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Dns-Node,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Dns-Zone
-ldapDisplayName: dnsZone
-governsId: 1.2.840.113556.1.5.85
-objectClassCategory: 1
-rdnAttId: dc
-subClassOf: top
-systemMustContain: dc
-systemMayContain: managedBy, dnsSecureSecondaries, dNSProperty,dnsNotifySecondaries, dnsAllowXFR, dnsAllowDynamic
-systemPossSuperiors: container
-schemaIdGuid:e0fa1e8b-9b45-11d0-afdd-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;ED)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;CC;;;AU)(A;;RPLCLORC;;;WD)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Dns-Zone,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: document
-ldapDisplayName: document
-governsId: 0.9.2342.19200300.100.4.6
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mayContain: documentIdentifier, documentPublisher, documentLocation,documentAuthor, documentVersion, documentTitle, ou, o, l, seeAlso,description, cn
-possSuperiors: organizationalUnit, container
-schemaIdGuid:39bad96d-c2d6-4baf-88ab-7e4207600117
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=document,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: ACS-Subnet
-ldapDisplayName: aCSSubnet
-governsId: 1.2.840.113556.1.5.138
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: aCSServerList, aCSRSVPLogFilesLocation,aCSRSVPAccountFilesLocation, aCSNonReservedTxSize,aCSNonReservedTxLimit, aCSNonReservedTokenSize,aCSNonReservedPeakRate, aCSNonReservedMinPolicedSize,aCSNonReservedMaxSDUSize, aCSMaxTokenRatePerFlow,aCSMaxSizeOfRSVPLogFile, aCSMaxSizeOfRSVPAccountFile,aCSMaxPeakBandwidthPerFlow, aCSMaxPeakBandwidth, aCSMaxNoOfLogFiles,aCSMaxNoOfAccountFiles, aCSMaxDurationPerFlow, aCSEventLogLevel,aCSEnableRSVPMessageLogging, aCSEnableRSVPAccounting,aCSEnableACSService, aCSDSBMRefresh, aCSDSBMPriority,aCSDSBMDeadTime, aCSCacheTimeout, aCSAllocableRSVPBandwidth
-systemPossSuperiors: container
-schemaIdGuid:7f561289-5301-11d1-a9c5-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ACS-Subnet,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: documentSeries
-ldapDisplayName: documentSeries
-governsId: 0.9.2342.19200300.100.4.9
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mustContain: cn
-mayContain: telephoneNumber, ou, o, l, seeAlso, description
-possSuperiors: organizationalUnit, container
-schemaIdGuid:7a2be07c-302f-4b96-bc90-0795d66885f8
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=documentSeries,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: Domain
-ldapDisplayName: domain
-governsId: 1.2.840.113556.1.5.66
-objectClassCategory: 2
-rdnAttId: dc
-subClassOf: top
-systemMustContain: dc
-systemPossSuperiors: domain, organization
-schemaIdGuid:19195a5a-6da0-11d0-afd3-00c04fd930c9
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Domain-DNS,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Domain-DNS
-ldapDisplayName: domainDNS
-governsId: 1.2.840.113556.1.5.67
-objectClassCategory: 1
-rdnAttId: dc
-subClassOf: domain
-systemAuxiliaryClass: samDomain
-systemMayContain: msDS-Behavior-Version, msDS-AllowedDNSSuffixes,managedBy
-systemPossSuperiors: domainDNS
-schemaIdGuid:19195a5b-6da0-11d0-afd3-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RP;;;WD)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCRCWDWOSW;;;DA)(A;CI;RPWPCRLCLOCCRCWDWOSDSW;;;BA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(A;CI;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;EA)(A;CI;LC;;;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(A;;RPRC;;;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(A;;LCRPLORC;;;ED)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RPLCLORC;;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;CIIO;CRRPWP;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;RO)S:(AU;SA;WDWOWP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
-defaultHidingValue: FALSE
-systemOnly: FALSE
-defaultObjectCategory: CN=Domain-DNS,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Domain-Policy
-ldapDisplayName: domainPolicy
-governsId: 1.2.840.113556.1.5.18
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: leaf
-systemMayContain: qualityOfService, pwdProperties, pwdHistoryLength,publicKeyPolicy, proxyLifetime, minTicketAge, minPwdLength,minPwdAge, maxTicketAge, maxRenewAge, maxPwdAge, managedBy,lockoutThreshold, lockoutDuration, lockOutObservationWindow,ipsecPolicyReference, forceLogoff, eFSPolicy, domainWidePolicy,domainPolicyReference, domainCAs, defaultLocalPolicyObject,authenticationOptions
-systemPossSuperiors: organizationalUnit, domainDNS, container
-schemaIdGuid:bf967a99-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Domain-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: domainRelatedObject
-ldapDisplayName: domainRelatedObject
-governsId: 0.9.2342.19200300.100.4.17
-objectClassCategory: 3
-rdnAttId: cn
-subClassOf: top
-mayContain: associatedDomain
-schemaIdGuid:8bfd2d3d-efda-4549-852c-f85e137aedc6
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=domainRelatedObject,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: DSA
-ldapDisplayName: dSA
-governsId: 2.5.6.13
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: applicationEntity
-systemMayContain: knowledgeInformation
-systemPossSuperiors: server, computer
-schemaIdGuid:3fdfee52-47f4-11d1-a9c3-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=DSA,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: DS-UI-Settings
-ldapDisplayName: dSUISettings
-governsId: 1.2.840.113556.1.5.183
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: msDS-Non-Security-Group-Extra-Classes,msDS-Security-Group-Extra-Classes, msDS-FilterContainers,dSUIShellMaximum, dSUIAdminNotification, dSUIAdminMaximum
-systemPossSuperiors: container
-schemaIdGuid:09b10f14-6f93-11d2-9905-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=DS-UI-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Dynamic-Object
-ldapDisplayName: dynamicObject
-governsId: 1.3.6.1.4.1.1466.101.119.2
-objectClassCategory: 3
-rdnAttId: cn
-subClassOf: top
-systemMayContain: msDS-Entry-Time-To-Die, entryTTL
-schemaIdGuid:66d51249-3355-4c1f-b24e-81f252aca23b
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Dynamic-Object,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: File-Link-Tracking
-ldapDisplayName: fileLinkTracking
-governsId: 1.2.840.113556.1.5.52
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemPossSuperiors: container
-schemaIdGuid:dd712229-10e4-11d0-a05f-00aa006c33ed
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=File-Link-Tracking,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: File-Link-Tracking-Entry
-ldapDisplayName: fileLinkTrackingEntry
-governsId: 1.2.840.113556.1.5.59
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemPossSuperiors: fileLinkTracking
-schemaIdGuid:8e4eb2ed-4712-11d0-a1a0-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=File-Link-Tracking-Entry,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Address-Book-Container
-ldapDisplayName: addressBookContainer
-governsId: 1.2.840.113556.1.5.125
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: displayName
-systemMayContain: purportedSearch
-systemPossSuperiors: addressBookContainer, configuration
-schemaIdGuid:3e74f60f-3e73-11d1-a9c0-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(OA;;CR;a1990816-4298-11d1-ade2-00c04fd8d5cd;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Address-Book-Container,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Foreign-Security-Principal
-ldapDisplayName: foreignSecurityPrincipal
-governsId: 1.2.840.113556.1.5.76
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: objectSid
-systemMayContain: foreignIdentifier
-systemPossSuperiors: container
-schemaIdGuid:89e31c12-8530-11d0-afda-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: friendlyCountry
-ldapDisplayName: friendlyCountry
-governsId: 0.9.2342.19200300.100.4.18
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: country
-mustContain: co
-schemaIdGuid:c498f152-dc6b-474a-9f52-7cdba3d7d351
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=friendlyCountry,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: FT-Dfs
-ldapDisplayName: fTDfs
-governsId: 1.2.840.113556.1.5.43
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: remoteServerName, pKTGuid, pKT
-systemMayContain: uNCName, managedBy, keywords
-systemPossSuperiors: dfsConfiguration
-schemaIdGuid:8447f9f3-1027-11d0-a05f-00aa006c33ed
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=FT-Dfs,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Group
-ldapDisplayName: group
-governsId: 1.2.840.113556.1.5.8
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-auxiliaryClass: posixGroup
-systemAuxiliaryClass: mailRecipient, securityPrincipal
-systemMustContain: groupType
-mayContain: msSFU30Name, msSFU30NisDomain, msSFU30PosixMember
-systemMayContain: msDS-AzApplicationData,msDS-AzLastImportedBizRulePath, msDS-AzBizRuleLanguage,msDS-AzBizRule, msDS-AzGenericData, msDS-AzObjectGuid,primaryGroupToken, operatorCount, nTGroupMembers, nonSecurityMember,msDS-NonMembers, msDS-AzLDAPQuery, member, managedBy,groupMembershipSAM, groupAttributes, mail, desktopProfile,controlAccessRights, adminCount
-systemPossSuperiors: msDS-AzScope, msDS-AzApplication,msDS-AzAdminManager, container, builtinDomain, organizationalUnit,domainDNS
-schemaIdGuid:bf967a9c-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a55-1e2f-11d0-9819-00aa0040529b;;AU)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)
-defaultHidingValue: FALSE
-systemOnly: FALSE
-defaultObjectCategory: CN=Group,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Group-Of-Names
-ldapDisplayName: groupOfNames
-governsId: 2.5.6.9
-objectClassCategory: 0
-rdnAttId: cn
-subClassOf: top
-systemMustContain: member, cn
-systemMayContain: seeAlso, owner, ou, o, businessCategory
-systemPossSuperiors: organizationalUnit, locality, organization,container
-schemaIdGuid:bf967a9d-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Group-Of-Names,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: groupOfUniqueNames
-ldapDisplayName: groupOfUniqueNames
-governsId: 2.5.6.17
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mustContain: uniqueMember, cn
-mayContain: seeAlso, owner, ou, o, description, businessCategory
-possSuperiors: domainDNS, organizationalUnit, container
-schemaIdGuid:0310a911-93a3-4e21-a7a3-55d85ab2c48b
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=groupOfUniqueNames,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: Group-Policy-Container
-ldapDisplayName: groupPolicyContainer
-governsId: 1.2.840.113556.1.5.157
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: container
-systemMayContain: versionNumber, gPCWQLFilter, gPCUserExtensionNames,gPCMachineExtensionNames, gPCFunctionalityVersion, gPCFileSysPath,flags
-schemaIdGuid:f30e3bc2-9ff0-11d1-b603-0000f80367c1
-defaultSecurityDescriptor: D:P(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;DA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;EA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;CO)(A;CI;RPWPCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPLCLORC;;;AU)(OA;CI;CR;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;AU)(A;CI;LCRPLORC;;;ED)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Group-Policy-Container,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: IEEE802Device
-ldapDisplayName: ieee802Device
-governsId: 1.3.6.1.1.1.2.11
-objectClassCategory: 3
-rdnAttId: cn
-subClassOf: top
-mayContain: cn, macAddress
-schemaIdGuid:a699e529-a637-4b7d-a0fb-5dc466a0b8a7
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=IEEE802Device,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: Index-Server-Catalog
-ldapDisplayName: indexServerCatalog
-governsId: 1.2.840.113556.1.5.130
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: connectionPoint
-systemMustContain: creator
-systemMayContain: uNCName, queryPoint, indexedScopes, friendlyNames
-systemPossSuperiors: organizationalUnit, container
-schemaIdGuid:7bfdcb8a-4807-11d1-a9c3-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Index-Server-Catalog,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: inetOrgPerson
-ldapDisplayName: inetOrgPerson
-governsId: 2.16.840.1.113730.3.2.2
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: user
-mayContain: x500uniqueIdentifier, userSMIMECertificate, userPKCS12,userCertificate, uid, secretary, roomNumber, preferredLanguage,photo, pager, o, mobile, manager, mail, labeledURI, jpegPhoto,initials, homePostalAddress, homePhone, givenName, employeeType,employeeNumber, displayName, departmentNumber, carLicense,businessCategory, audio
-possSuperiors: domainDNS, organizationalUnit, container
-schemaIdGuid:4828cc14-1437-45bc-9b07-ad6f015e5f28
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RP;037088f8-0ae1-11d2-b422-00a0c968f939;;RS)(OA;;RP;4c164200-20c0-11d0-a768-00aa006e0529;;RS)(OA;;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;;RS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(OA;;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;;RS)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)(OA;;WPRP;6db69a1c-9422-11d1-aebd-0000f80367c1;;S-1-5-32-561)
-defaultHidingValue: FALSE
-systemOnly: FALSE
-defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: Address-Template
-ldapDisplayName: addressTemplate
-governsId: 1.2.840.113556.1.3.58
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: displayTemplate
-systemMustContain: displayName
-systemMayContain: proxyGenerationEnabled, perRecipDialogDisplayTable,perMsgDialogDisplayTable, addressType, addressSyntax
-systemPossSuperiors: container
-schemaIdGuid:5fd4250a-1262-11d0-a060-00aa006c33ed
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Address-Template,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: Infrastructure-Update
-ldapDisplayName: infrastructureUpdate
-governsId: 1.2.840.113556.1.5.175
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: dNReferenceUpdate
-systemPossSuperiors: infrastructureUpdate, domain
-schemaIdGuid:2df90d89-009f-11d2-aa4c-00c04fd7d83a
-defaultSecurityDescriptor: D:(A;;GA;;;SY)
-defaultHidingValue: TRUE
-systemOnly: TRUE
-defaultObjectCategory: CN=Infrastructure-Update,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Intellimirror-Group
-ldapDisplayName: intellimirrorGroup
-governsId: 1.2.840.113556.1.5.152
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemPossSuperiors: domainDNS, organizationalUnit, container
-schemaIdGuid:07383086-91df-11d1-aebc-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;CCDC;;;CO)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Intellimirror-Group,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Intellimirror-SCP
-ldapDisplayName: intellimirrorSCP
-governsId: 1.2.840.113556.1.5.151
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: serviceAdministrationPoint
-systemMayContain: netbootTools, netbootServer, netbootNewMachineOU,netbootNewMachineNamingPolicy, netbootMaxClients,netbootMachineFilePath, netbootLocallyInstalledOSes,netbootLimitClients, netbootIntelliMirrorOSes,netbootCurrentClientCount, netbootAnswerRequests,netbootAnswerOnlyValidClients, netbootAllowNewClients
-systemPossSuperiors: computer, intellimirrorGroup
-schemaIdGuid:07383085-91df-11d1-aebc-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Intellimirror-SCP,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Inter-Site-Transport
-ldapDisplayName: interSiteTransport
-governsId: 1.2.840.113556.1.5.141
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: transportDLLName, transportAddressAttribute
-systemMayContain: replInterval, options
-systemPossSuperiors: interSiteTransportContainer
-schemaIdGuid:26d97376-6070-11d1-a9c6-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Inter-Site-Transport,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Inter-Site-Transport-Container
-ldapDisplayName: interSiteTransportContainer
-governsId: 1.2.840.113556.1.5.140
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemPossSuperiors: sitesContainer
-schemaIdGuid:26d97375-6070-11d1-a9c6-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Inter-Site-Transport-Container,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: IpHost
-ldapDisplayName: ipHost
-governsId: 1.3.6.1.1.1.2.6
-objectClassCategory: 3
-rdnAttId: cn
-subClassOf: top
-mayContain: manager, cn, description, ipHostNumber, uid, l
-schemaIdGuid:ab911646-8827-4f95-8780-5a8f008eb68f
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=IpHost,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: IpNetwork
-ldapDisplayName: ipNetwork
-governsId: 1.3.6.1.1.1.2.7
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mustContain: cn, ipNetworkNumber
-mayContain: manager, description, ipNetmaskNumber, uid, l,msSFU30Name, msSFU30NisDomain, nisMapName, msSFU30Aliases
-possSuperiors: domainDNS, nisMap, container, organizationalUnit
-schemaIdGuid:d95836c3-143e-43fb-992a-b057f1ecadf9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=IpNetwork,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: IpProtocol
-ldapDisplayName: ipProtocol
-governsId: 1.3.6.1.1.1.2.4
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mustContain: cn, ipProtocolNumber
-mayContain: description, msSFU30Name, msSFU30NisDomain, nisMapName,msSFU30Aliases
-possSuperiors: domainDNS, nisMap, container, organizationalUnit
-schemaIdGuid:9c2dcbd2-fbf0-4dc7-ace0-8356dcd0f013
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=IpProtocol,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: Ipsec-Base
-ldapDisplayName: ipsecBase
-governsId: 1.2.840.113556.1.5.7000.56
-objectClassCategory: 2
-rdnAttId: cn
-subClassOf: top
-systemMayContain: ipsecOwnersReference, ipsecName, ipsecID,ipsecDataType, ipsecData
-schemaIdGuid:b40ff825-427a-11d1-a9c2-0000f80367c1
-defaultSecurityDescriptor: D:
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Ipsec-Base,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Ipsec-Filter
-ldapDisplayName: ipsecFilter
-governsId: 1.2.840.113556.1.5.118
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: ipsecBase
-systemPossSuperiors: organizationalUnit, computer, container
-schemaIdGuid:b40ff826-427a-11d1-a9c2-0000f80367c1
-defaultSecurityDescriptor: D:
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Ipsec-Filter,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Application-Entity
-ldapDisplayName: applicationEntity
-governsId: 2.5.6.12
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: presentationAddress, cn
-systemMayContain: supportedApplicationContext, seeAlso, ou, o, l
-systemPossSuperiors: applicationProcess, organizationalUnit,container
-schemaIdGuid:3fdfee4f-47f4-11d1-a9c3-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Application-Entity,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Ipsec-ISAKMP-Policy
-ldapDisplayName: ipsecISAKMPPolicy
-governsId: 1.2.840.113556.1.5.120
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: ipsecBase
-systemPossSuperiors: container, computer, organizationalUnit
-schemaIdGuid:b40ff828-427a-11d1-a9c2-0000f80367c1
-defaultSecurityDescriptor: D:
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Ipsec-ISAKMP-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Ipsec-Negotiation-Policy
-ldapDisplayName: ipsecNegotiationPolicy
-governsId: 1.2.840.113556.1.5.119
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: ipsecBase
-systemMayContain: iPSECNegotiationPolicyType,iPSECNegotiationPolicyAction
-systemPossSuperiors: organizationalUnit, computer, container
-schemaIdGuid:b40ff827-427a-11d1-a9c2-0000f80367c1
-defaultSecurityDescriptor: D:
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Ipsec-Negotiation-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Ipsec-NFA
-ldapDisplayName: ipsecNFA
-governsId: 1.2.840.113556.1.5.121
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: ipsecBase
-systemMayContain: ipsecNegotiationPolicyReference,ipsecFilterReference
-systemPossSuperiors: container, computer, organizationalUnit
-schemaIdGuid:b40ff829-427a-11d1-a9c2-0000f80367c1
-defaultSecurityDescriptor: D:
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Ipsec-NFA,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Ipsec-Policy
-ldapDisplayName: ipsecPolicy
-governsId: 1.2.840.113556.1.5.98
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: ipsecBase
-systemMayContain: ipsecNFAReference, ipsecISAKMPReference
-systemPossSuperiors: organizationalUnit, computer, container
-schemaIdGuid:b7b13121-b82e-11d0-afee-0000f80367c1
-defaultSecurityDescriptor: D:
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Ipsec-Policy,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: IpService
-ldapDisplayName: ipService
-governsId: 1.3.6.1.1.1.2.3
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mustContain: ipServiceProtocol, ipServicePort, cn
-mayContain: description, msSFU30Name, msSFU30NisDomain,msSFU30Aliases, nisMapName
-possSuperiors: domainDNS, nisMap, container, organizationalUnit
-schemaIdGuid:2517fadf-fa97-48ad-9de6-79ac5721f864
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=IpService,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: Leaf
-ldapDisplayName: leaf
-governsId: 1.2.840.113556.1.5.20
-objectClassCategory: 2
-rdnAttId: cn
-subClassOf: top
-schemaIdGuid:bf967a9e-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Leaf,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Licensing-Site-Settings
-ldapDisplayName: licensingSiteSettings
-governsId: 1.2.840.113556.1.5.78
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: applicationSiteSettings
-systemMayContain: siteServer
-systemPossSuperiors: site
-schemaIdGuid:1be8f17d-a9ff-11d0-afe2-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Licensing-Site-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Link-Track-Object-Move-Table
-ldapDisplayName: linkTrackObjectMoveTable
-governsId: 1.2.840.113556.1.5.91
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: fileLinkTracking
-systemPossSuperiors: fileLinkTracking
-schemaIdGuid:ddac0cf5-af8f-11d0-afeb-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Link-Track-Object-Move-Table,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Link-Track-OMT-Entry
-ldapDisplayName: linkTrackOMTEntry
-governsId: 1.2.840.113556.1.5.93
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: leaf
-systemMayContain: timeRefresh, oMTIndxGuid, oMTGuid, currentLocation,birthLocation
-systemPossSuperiors: linkTrackObjectMoveTable
-schemaIdGuid:ddac0cf7-af8f-11d0-afeb-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Link-Track-OMT-Entry,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Link-Track-Vol-Entry
-ldapDisplayName: linkTrackVolEntry
-governsId: 1.2.840.113556.1.5.92
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: leaf
-systemMayContain: volTableIdxGUID, volTableGUID, timeVolChange,timeRefresh, seqNotification, objectCount, linkTrackSecret,currMachineId
-systemPossSuperiors: linkTrackVolumeTable
-schemaIdGuid:ddac0cf6-af8f-11d0-afeb-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Link-Track-Vol-Entry,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Application-Process
-ldapDisplayName: applicationProcess
-governsId: 2.5.6.11
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: cn
-systemMayContain: seeAlso, ou, l
-systemPossSuperiors: organizationalUnit, organization, container,computer
-schemaIdGuid:5fd4250b-1262-11d0-a060-00aa006c33ed
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: TRUE
-defaultObjectCategory: CN=Application-Process,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Link-Track-Volume-Table
-ldapDisplayName: linkTrackVolumeTable
-governsId: 1.2.840.113556.1.5.90
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: fileLinkTracking
-systemPossSuperiors: fileLinkTracking
-schemaIdGuid:ddac0cf4-af8f-11d0-afeb-00c04fd930c9
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Link-Track-Volume-Table,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Locality
-ldapDisplayName: locality
-governsId: 2.5.6.3
-objectClassCategory: 1
-rdnAttId: l
-subClassOf: top
-systemMustContain: l
-systemMayContain: street, st, seeAlso, searchGuide
-systemPossSuperiors: domainDNS, country, organizationalUnit,organization, locality
-schemaIdGuid:bf967aa0-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: FALSE
-systemOnly: FALSE
-defaultObjectCategory: CN=Locality,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Lost-And-Found
-ldapDisplayName: lostAndFound
-governsId: 1.2.840.113556.1.5.139
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: moveTreeState
-systemPossSuperiors: configuration, domainDNS, dMD
-schemaIdGuid:52ab8671-5709-11d1-a9c6-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Lost-And-Found,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Mail-Recipient
-ldapDisplayName: mailRecipient
-governsId: 1.2.840.113556.1.3.46
-objectClassCategory: 3
-rdnAttId: cn
-subClassOf: top
-systemMustContain: cn
-mayContain: msDS-PhoneticDisplayName, userSMIMECertificate,secretary, msExchLabeledURI, msExchAssistantName, labeledURI
-systemMayContain: userCertificate, userCert, textEncodedORAddress,telephoneNumber, showInAddressBook, legacyExchangeDN,garbageCollPeriod, info
-systemPossSuperiors: container
-schemaIdGuid:bf967aa1-0de6-11d0-a285-00aa003049e2
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Mail-Recipient,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Meeting
-ldapDisplayName: meeting
-governsId: 1.2.840.113556.1.5.104
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMustContain: meetingName
-systemMayContain: meetingURL, meetingType, meetingStartTime,meetingScope, meetingRecurrence, meetingRating, meetingProtocol,meetingOwner, meetingOriginator, meetingMaxParticipants,meetingLocation, meetingLanguage, meetingKeyword,meetingIsEncrypted, meetingIP, meetingID, meetingEndTime,meetingDescription, meetingContactInfo, meetingBlob,meetingBandwidth, meetingApplication, meetingAdvertiseScope
-systemPossSuperiors: container
-schemaIdGuid:11b6cc94-48c4-11d1-a9c3-0000f80367c1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Meeting,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MS-SQL-OLAPCube
-ldapDisplayName: mS-SQL-OLAPCube
-governsId: 1.2.840.113556.1.5.190
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-InformationURL, mS-SQL-Status, mS-SQL-LastUpdatedDate,mS-SQL-Size, mS-SQL-Description, mS-SQL-Contact, mS-SQL-Name
-systemPossSuperiors: mS-SQL-OLAPDatabase
-schemaIdGuid:09f0506a-cd28-11d2-9993-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MS-SQL-OLAPCube,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MS-SQL-OLAPDatabase
-ldapDisplayName: mS-SQL-OLAPDatabase
-governsId: 1.2.840.113556.1.5.189
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-ConnectionURL, mS-SQL-InformationURL, mS-SQL-Status,mS-SQL-Applications, mS-SQL-LastBackupDate, mS-SQL-LastUpdatedDate,mS-SQL-Size, mS-SQL-Type, mS-SQL-Description, mS-SQL-Contact,mS-SQL-Name
-systemPossSuperiors: mS-SQL-OLAPServer
-schemaIdGuid:20af031a-ccef-11d2-9993-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MS-SQL-OLAPDatabase,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MS-SQL-OLAPServer
-ldapDisplayName: mS-SQL-OLAPServer
-governsId: 1.2.840.113556.1.5.185
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: serviceConnectionPoint
-systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-InformationURL, mS-SQL-Status, mS-SQL-Language,mS-SQL-ServiceAccount, mS-SQL-Contact, mS-SQL-RegisteredOwner,mS-SQL-Build, mS-SQL-Version, mS-SQL-Name
-systemPossSuperiors: serviceConnectionPoint
-schemaIdGuid:0c7e18ea-ccef-11d2-9993-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MS-SQL-OLAPServer,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MS-SQL-SQLDatabase
-ldapDisplayName: mS-SQL-SQLDatabase
-governsId: 1.2.840.113556.1.5.188
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: mS-SQL-Keywords, mS-SQL-InformationURL,mS-SQL-Status, mS-SQL-Applications, mS-SQL-LastDiagnosticDate,mS-SQL-LastBackupDate, mS-SQL-CreationDate, mS-SQL-Size,mS-SQL-Contact, mS-SQL-Alias, mS-SQL-Description, mS-SQL-Name
-systemPossSuperiors: mS-SQL-SQLServer
-schemaIdGuid:1d08694a-ccef-11d2-9993-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MS-SQL-SQLDatabase,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MS-SQL-SQLPublication
-ldapDisplayName: mS-SQL-SQLPublication
-governsId: 1.2.840.113556.1.5.187
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: mS-SQL-ThirdParty,mS-SQL-AllowSnapshotFilesFTPDownloading,mS-SQL-AllowQueuedUpdatingSubscription,mS-SQL-AllowImmediateUpdatingSubscription,mS-SQL-AllowKnownPullSubscription, mS-SQL-Publisher,mS-SQL-AllowAnonymousSubscription, mS-SQL-Database, mS-SQL-Type,mS-SQL-Status, mS-SQL-Description, mS-SQL-Name
-systemPossSuperiors: mS-SQL-SQLServer
-schemaIdGuid:17c2f64e-ccef-11d2-9993-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MS-SQL-SQLPublication,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: Application-Settings
-ldapDisplayName: applicationSettings
-governsId: 1.2.840.113556.1.5.7000.49
-objectClassCategory: 2
-rdnAttId: cn
-subClassOf: top
-systemMayContain: notificationList, msDS-Settings, applicationName
-systemPossSuperiors: server
-schemaIdGuid:f780acc1-56f0-11d1-a9c6-0000f80367c1
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=Application-Settings,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MS-SQL-SQLRepository
-ldapDisplayName: mS-SQL-SQLRepository
-governsId: 1.2.840.113556.1.5.186
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: mS-SQL-InformationDirectory, mS-SQL-Version,mS-SQL-Description, mS-SQL-Status, mS-SQL-Build, mS-SQL-Contact,mS-SQL-Name
-systemPossSuperiors: mS-SQL-SQLServer
-schemaIdGuid:11d43c5c-ccef-11d2-9993-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MS-SQL-SQLRepository,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: MS-SQL-SQLServer
-ldapDisplayName: mS-SQL-SQLServer
-governsId: 1.2.840.113556.1.5.184
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: serviceConnectionPoint
-systemMayContain: mS-SQL-Keywords, mS-SQL-GPSHeight,mS-SQL-GPSLongitude, mS-SQL-GPSLatitude, mS-SQL-InformationURL,mS-SQL-LastUpdatedDate, mS-SQL-Status, mS-SQL-Vines,mS-SQL-AppleTalk, mS-SQL-TCPIP, mS-SQL-SPX, mS-SQL-MultiProtocol,mS-SQL-NamedPipe, mS-SQL-Clustered, mS-SQL-UnicodeSortOrder,mS-SQL-SortOrder, mS-SQL-CharacterSet, mS-SQL-ServiceAccount,mS-SQL-Build, mS-SQL-Memory, mS-SQL-Location, mS-SQL-Contact,mS-SQL-RegisteredOwner, mS-SQL-Name
-systemPossSuperiors: serviceConnectionPoint
-schemaIdGuid:05f6c878-ccef-11d2-9993-0000f87a57d4
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=MS-SQL-SQLServer,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ms-COM-Partition
-ldapDisplayName: msCOM-Partition
-governsId: 1.2.840.113556.1.5.193
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: msCOM-ObjectId
-systemPossSuperiors: domainDNS, organizationalUnit, container
-schemaIdGuid:c9010e74-4e58-49f7-8a89-5e3e2340fcf8
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ms-COM-Partition,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ms-COM-PartitionSet
-ldapDisplayName: msCOM-PartitionSet
-governsId: 1.2.840.113556.1.5.194
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-systemMayContain: msCOM-PartitionLink, msCOM-DefaultPartitionLink,msCOM-ObjectId
-systemPossSuperiors: domainDNS, organizationalUnit, container
-schemaIdGuid:250464ab-c417-497a-975a-9e0d459a7ca1
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ms-COM-PartitionSet,CN=Schema,CN=Configuration,<RootDomainDN>
-systemFlags: FLAG_SCHEMA_BASE_OBJECT
-
-cn: ms-DFSR-Connection
-ldapDisplayName: msDFSR-Connection
-governsId: 1.2.840.113556.1.6.13.4.10
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mustContain: fromServer
-mayContain: msDFSR-Options2, msDFSR-DisablePacketPrivacy,msDFSR-Priority, msDFSR-Enabled, msDFSR-RdcEnabled,msDFSR-RdcMinFileSizeInKb, msDFSR-Keywords, msDFSR-Schedule,msDFSR-Flags, msDFSR-Options, msDFSR-Extension
-possSuperiors: msDFSR-Member
-schemaIdGuid:e58f972e-64b5-46ef-8d8b-bbc3e1897eab
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ms-DFSR-Connection,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: ms-DFSR-Content
-ldapDisplayName: msDFSR-Content
-governsId: 1.2.840.113556.1.6.13.4.6
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mayContain: msDFSR-Flags, msDFSR-Options, msDFSR-Extension
-possSuperiors: msDFSR-ReplicationGroup
-schemaIdGuid:64759b35-d3a1-42e4-b5f1-a3de162109b3
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ms-DFSR-Content,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: ms-DFSR-ContentSet
-ldapDisplayName: msDFSR-ContentSet
-governsId: 1.2.840.113556.1.6.13.4.7
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mayContain: msDFSR-Options2, msDFSR-OnDemandExclusionDirectoryFilter,msDFSR-OnDemandExclusionFileFilter,msDFSR-DefaultCompressionExclusionFilter, msDFSR-DeletedSizeInMb,msDFSR-Priority, msDFSR-ConflictSizeInMb, msDFSR-StagingSizeInMb,msDFSR-RootSizeInMb, description, msDFSR-DfsPath, msDFSR-FileFilter,msDFSR-DirectoryFilter, msDFSR-Flags, msDFSR-Options,msDFSR-Extension
-possSuperiors: msDFSR-Content
-schemaIdGuid:4937f40d-a6dc-4d48-97ca-06e5fbfd3f16
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ms-DFSR-ContentSet,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: ms-DFSR-GlobalSettings
-ldapDisplayName: msDFSR-GlobalSettings
-governsId: 1.2.840.113556.1.6.13.4.4
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mayContain: msDFSR-Flags, msDFSR-Options, msDFSR-Extension
-possSuperiors: container
-schemaIdGuid:7b35dbad-b3ec-486a-aad4-2fec9d6ea6f6
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ms-DFSR-GlobalSettings,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: ms-DFSR-LocalSettings
-ldapDisplayName: msDFSR-LocalSettings
-governsId: 1.2.840.113556.1.6.13.4.1
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mayContain: msDFSR-Version, msDFSR-Flags, msDFSR-Options,msDFSR-Extension
-possSuperiors: computer
-schemaIdGuid:fa85c591-197f-477e-83bd-ea5a43df2239
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ms-DFSR-LocalSettings,CN=Schema,CN=Configuration,<RootDomainDN>
-
-cn: ms-DFSR-Member
-ldapDisplayName: msDFSR-Member
-governsId: 1.2.840.113556.1.6.13.4.9
-objectClassCategory: 1
-rdnAttId: cn
-subClassOf: top
-mustContain: msDFSR-ComputerReference
-mayContain: serverReference, msDFSR-Keywords, msDFSR-Flags,msDFSR-Options, msDFSR-Extension
-possSuperiors: msDFSR-Topology
-schemaIdGuid:4229c897-c211-437c-a5ae-dbf705b696e5
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)
-defaultHidingValue: TRUE
-systemOnly: FALSE
-defaultObjectCategory: CN=ms-DFSR-Member,CN=Schema,CN=Configuration,<RootDomainDN>
-
diff --git a/source4/setup/ad-schema/licence.txt b/source4/setup/ad-schema/licence.txt
index 9db966461b..490525ca89 100644
--- a/source4/setup/ad-schema/licence.txt
+++ b/source4/setup/ad-schema/licence.txt
@@ -4,51 +4,4 @@ The licence on these schema files is not GPL, or a standard Open
Source licence. Be careful to redistribute thes files as part of
Samba or 'your implementation', but not alone.
---
-
-Intellectual Property Rights Notice for Protocol Documentation
-
-Copyrights.
-This protocol documentation is covered by Microsoft
-copyrights. Regardless of any other terms that are contained in the
-terms of use for the Microsoft website that hosts this documentation,
-you may make copies of it in order to develop implementations of the
-protocols, and may distribute portions of it in your implementations
-of the protocols or your documentation as necessary to properly
-document the implementation. You may also distribute in your
-implementation, with or without modification, any schema, IDL's, or
-code samples that are included in the documentation. This permission
-also applies to any documents that are referenced in the protocol
-documentation.
-
-No Trade Secrets.
-Microsoft does not claim any trade secret rights in this documentation.
-
-Patents.
-Microsoft has patents that may cover your implementations of the
-protocols. Neither this notice nor Microsoft's delivery of the
-documentation grants any licenses under those or any other Microsoft
-patents. However, the protocols may be covered by MicrosoftÂ’s Open
-Specification Promise (available here:
-http://www.microsoft.com/interop/osp). If you would prefer a written
-license, or if the protocols are not covered by the OSP, patent
-licenses are available by contacting protocol@microsoft.com.
-
-Trademarks.
-The names of companies and products contained in this documentation
-may be covered by trademarks or similar intellectual property
-rights. This notice does not grant any licenses under those
-rights.Reservation of Rights. All other rights are reserved, and this
-notice does not grant any rights other than specifically described
-above, whether by implication, estoppel, or otherwise.
-
-Tools.
-This protocol documentation is intended for use in conjunction with
-publicly available standard specifications and network programming
-art, and assumes that the reader either is familiar with the
-aforementioned material or has immediate access to it. A protocol
-specification does not require the use of Microsoft programming tools
-or programming environments in order for you to develop an
-implementation. If you have access to Microsoft programming tools and
-environments you are free to take advantage of them.
-
+See each file for it's licence from Microsoft
diff --git a/source4/setup/schema.ldif b/source4/setup/schema.ldif
deleted file mode 100644
index a4dfaea7eb..0000000000
--- a/source4/setup/schema.ldif
+++ /dev/null
@@ -1,10390 +0,0 @@
-dn: CN=SD-Rights-Effective,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1304
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: SD-Rights-Effective
-adminDescription: SD-Rights-Effective
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: sDRightsEffective
-schemaIDGUID: c3dbafa6-33df-11d2-98b2-0000f87a57d4
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 134217748
-
-dn: CN=ms-Exch-Owner-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.104
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 45
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-Exch-Owner-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: ms-Exch-Owner-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: ownerBL
-schemaIDGUID: bf9679f4-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Is-Member-Of-DL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.102
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-mAPIID: 32776
-linkID: 3
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Is-Member-Of-DL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Is-Member-Of-DL
-oMSyntax: 127
-searchFlags: 16
-lDAPDisplayName: memberOf
-schemaIDGUID: bf967991-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: bc0ac240-79a9-11d0-9020-00c04fc2d4cf
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Search-Guide,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.14
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-mAPIID: 33070
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Search-Guide
-adminDescription: Search-Guide
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: searchGuide
-schemaIDGUID: bf967a2e-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-ReplicationEpoch,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1720
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-ReplicationEpoch
-adminDescription: ms-DS-ReplicationEpoch
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-ReplicationEpoch
-schemaIDGUID: 08e3aa79-eb1c-45b5-af7b-8f94246c8e41
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Auditing-Policy,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.202
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Auditing-Policy
-adminDescription: Auditing-Policy
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: auditingPolicy
-schemaIDGUID: 6da8a4fe-0e52-11d0-a286-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Phone-Fax-Other,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.646
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 64
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Fax-Other
-adminDescription: Phone-Fax-Other
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: otherFacsimileTelephoneNumber
-schemaIDGUID: 0296c11d-40da-11d1-a9c0-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.256
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 1024
-mAPIID: 14889
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Address
-adminDescription: Address
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: streetAddress
-schemaIDGUID: f0f8ff84-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Security-Identifier,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.121
-attributeSyntax: 2.5.5.17
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Security-Identifier
-adminDescription: Security-Identifier
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: securityIdentifier
-schemaIDGUID: bf967a2f-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=ms-DS-KeyVersionNumber,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1782
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: ms-DS-KeyVersionNumber
-adminDescription: The Kerberos version number of the current key for this account. This is a constructed attribute.
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-KeyVersionNumber
-schemaIDGUID: c523e9c0-33b5-4ac8-8923-b57b927f42f6
-systemOnly: TRUE
-systemFlags: 20
-
-dn: CN=Account-Name-History,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1307
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Account-Name-History
-adminDescription: Account-Name-History
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: accountNameHistory
-schemaIDGUID: 031952ec-3b72-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=preferredLanguage,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.16.840.1.113730.3.1.39
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: preferredLanguage
-adminDescription: The preferred written or spoken language for a person.
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: preferredLanguage
-schemaIDGUID: 856be0d0-18e7-46e1-8f5f-7ee4d9020e0d
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=User-Shared-Folder-Other,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.752
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Shared-Folder-Other
-adminDescription: User-Shared-Folder-Other
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: userSharedFolderOther
-schemaIDGUID: 9a9a0220-4a5b-11d1-a9c3-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=User-Shared-Folder,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.751
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Shared-Folder
-adminDescription: User-Shared-Folder
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: userSharedFolder
-schemaIDGUID: 9a9a021f-4a5b-11d1-a9c3-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MSMQ-Digests-Mig,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.966
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Digests-Mig
-adminDescription: MSMQ-Digests-Mig
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: mSMQDigestsMig
-schemaIDGUID: 0f71d8e0-da3b-11d1-90a5-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Domain-Identifier,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.755
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Domain-Identifier
-adminDescription: Domain-Identifier
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: domainIdentifier
-schemaIDGUID: 7f561278-5301-11d1-a9c5-0000f80367c1
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Legacy-Exchange-DN,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.655
-attributeSyntax: 2.5.5.4
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Legacy-Exchange-DN
-adminDescription: Legacy-Exchange-DN
-oMSyntax: 20
-searchFlags: 13
-lDAPDisplayName: legacyExchangeDN
-schemaIDGUID: 28630ebc-41d5-11d1-a9c1-0000f80367c1
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Well-Known-Objects,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.618
-attributeSyntax: 2.5.5.7
-isSingleValued: FALSE
-rangeLower: 16
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Well-Known-Objects
-oMObjectClass:: KoZIhvcUAQEBCw==
-adminDescription: Well-Known-Objects
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: wellKnownObjects
-schemaIDGUID: 05308983-7688-11d1-aded-00c04fd8d5cd
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=RDN,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 255
-mAPIID: 33282
-showInAdvancedViewOnly: TRUE
-adminDisplayName: RDN
-adminDescription: RDN
-oMSyntax: 64
-searchFlags: 13
-lDAPDisplayName: name
-schemaIDGUID: bf967a0e-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Non-Security-Member-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.531
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 51
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Non-Security-Member-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Non-Security-Member-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: nonSecurityMemberBL
-schemaIDGUID: 52458019-ca6a-11d0-afff-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=ms-DS-Repl-Attribute-Meta-Data,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1707
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Repl-Attribute-Meta-Data
-adminDescription: ms-DS-Repl-Attribute-Meta-Data
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-ReplAttributeMetaData
-schemaIDGUID: d7c53242-724e-4c39-9d4c-2df8c9d66c7a
-systemOnly: FALSE
-systemFlags: 20
-
-dn: CN=DN-Reference-Update,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1242
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DN-Reference-Update
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: DN-Reference-Update
-oMSyntax: 127
-searchFlags: 8
-lDAPDisplayName: dNReferenceUpdate
-schemaIDGUID: 2df90d86-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=GP-Options,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.892
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: GP-Options
-adminDescription: GP-Options
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: gPOptions
-schemaIDGUID: f30e3bbf-9ff0-11d1-b603-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MS-DS-Per-User-Trust-Tombstones-Quota,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1790
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Per-User-Trust-Tombstones-Quota
-adminDescription: Used to enforce a per-user quota for deleting Trusted-Domain objects when authorization is based on matching the user's SID to the value of MS-DS-Creator-SID on the Trusted-Domain object.
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-PerUserTrustTombstonesQuota
-schemaIDGUID: 8b70a6c6-50f9-4fa3-a71e-1ce03040449b
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Phone-Pager-Primary,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.42
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14881
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Pager-Primary
-adminDescription: Phone-Pager-Primary
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: pager
-schemaIDGUID: f0f8ffa6-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Site-GUID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.362
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 16
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Site-GUID
-adminDescription: Site-GUID
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: siteGUID
-schemaIDGUID: 3e978924-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Az-Script-Engine-Cache-Max,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1796
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Script-Engine-Cache-Max
-adminDescription: Maximum number of scripts that are cached by the application
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-AzScriptEngineCacheMax
-schemaIDGUID: 2629f66a-1f95-4bf3-a296-8e9d7b9e30c8
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Token-Groups-No-GC-Acceptable,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1303
-attributeSyntax: 2.5.5.17
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Token-Groups-No-GC-Acceptable
-adminDescription: Token-Groups-No-GC-Acceptable
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: tokenGroupsNoGCAcceptable
-schemaIDGUID: 040fc392-33df-11d2-98b2-0000f87a57d4
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 134217748
-
-dn: CN=Token-Groups-Global-And-Universal,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1418
-attributeSyntax: 2.5.5.17
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Token-Groups-Global-And-Universal
-adminDescription: Token-Groups-Global-And-Universal
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: tokenGroupsGlobalAndUniversal
-schemaIDGUID: 46a9b11d-60ae-405a-b7e8-ff8a58d456d2
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 134217748
-
-dn: CN=Alt-Security-Identities,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.867
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Alt-Security-Identities
-adminDescription: Alt-Security-Identities
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: altSecurityIdentities
-schemaIDGUID: 00fbf30c-91fe-11d1-aebc-0000f80367c1
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=labeledURI,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.3.6.1.4.1.250.1.57
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: labeledURI
-adminDescription: A Uniform Resource Identifier followed by a label. The label is used to describe the resource to which the URI points, and is intended as a friendly name fit for human consumption.
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: labeledURI
-schemaIDGUID: c569bb46-c680-44bc-a273-e6c227d71b45
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Pwd-Last-Set,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.96
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Pwd-Last-Set
-adminDescription: Pwd-Last-Set
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: pwdLastSet
-schemaIDGUID: bf967a0a-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 4c164200-20c0-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Object-Classes,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.21.6
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Object-Classes
-adminDescription: Object-Classes
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: objectClasses
-schemaIDGUID: 9a7ad94b-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=Trust-Attributes,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.470
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trust-Attributes
-adminDescription: Trust-Attributes
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: trustAttributes
-schemaIDGUID: 80a67e5a-9f22-11d0-afdd-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=ms-DS-Trust-Forest-Trust-Info,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1702
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Trust-Forest-Trust-Info
-adminDescription: ms-DS-Trust-Forest-Trust-Info
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: msDS-TrustForestTrustInfo
-schemaIDGUID: 29cc866e-49d3-4969-942e-1dbc0925d183
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Site-Object,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.512
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-linkID: 46
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Site-Object
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Site-Object
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: siteObject
-schemaIDGUID: 3e10944c-c354-11d0-aff8-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Is-Privilege-Holder,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.638
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 71
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Is-Privilege-Holder
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Is-Privilege-Holder
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: isPrivilegeHolder
-schemaIDGUID: 19405b9c-3cfa-11d1-a9c0-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Dns-Root,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.28
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 255
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Dns-Root
-adminDescription: Dns-Root
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: dnsRoot
-schemaIDGUID: bf967959-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Modified-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.168
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Modified-Count
-adminDescription: Modified-Count
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: modifiedCount
-schemaIDGUID: bf9679c5-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=International-ISDN-Number,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.25
-attributeSyntax: 2.5.5.6
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 16
-mAPIID: 32958
-showInAdvancedViewOnly: TRUE
-adminDisplayName: International-ISDN-Number
-adminDescription: International-ISDN-Number
-oMSyntax: 18
-searchFlags: 0
-lDAPDisplayName: internationalISDNNumber
-schemaIDGUID: bf96798d-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Business-Category,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.15
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 128
-mAPIID: 32855
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Business-Category
-adminDescription: Business-Category
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: businessCategory
-schemaIDGUID: bf967931-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=houseIdentifier,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.51
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 32768
-showInAdvancedViewOnly: TRUE
-adminDisplayName: houseIdentifier
-adminDescription: The houseIdentifier attribute type specifies a linguistic construct used to identify a particular building, for example a house number or house name relative to a street, avenue, town or city, etc.
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: houseIdentifier
-schemaIDGUID: a45398b7-c44a-4eb6-82d3-13c10946dbfe
-systemOnly: FALSE
-
-dn: CN=Other-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.16.840.1.113730.3.1.34
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 64
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Other-Name
-adminDescription: Other-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: middleName
-schemaIDGUID: bf9679f2-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Attribute-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.30
-attributeSyntax: 2.5.5.2
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Attribute-ID
-adminDescription: Attribute-ID
-oMSyntax: 6
-searchFlags: 8
-lDAPDisplayName: attributeID
-schemaIDGUID: bf967922-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Repl-Topology-Stay-Of-Execution,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.677
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Repl-Topology-Stay-Of-Execution
-adminDescription: Repl-Topology-Stay-Of-Execution
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: replTopologyStayOfExecution
-schemaIDGUID: 7bfdcb83-4807-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Netboot-GUID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.359
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 16
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Netboot-GUID
-adminDescription: Netboot-GUID
-oMSyntax: 4
-searchFlags: 1
-lDAPDisplayName: netbootGUID
-schemaIDGUID: 3e978921-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=RDN-Att-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.26
-attributeSyntax: 2.5.5.2
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: RDN-Att-ID
-adminDescription: RDN-Att-ID
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: rDNAttID
-schemaIDGUID: bf967a0f-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=May-Contain,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.25
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: May-Contain
-adminDescription: May-Contain
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: mayContain
-schemaIDGUID: bf9679bf-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Trust-Auth-Outgoing,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.135
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 32767
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trust-Auth-Outgoing
-adminDescription: Trust-Auth-Outgoing
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: trustAuthOutgoing
-schemaIDGUID: bf967a5f-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=GPC-WQL-Filter,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1694
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: GPC-WQL-Filter
-adminDescription: GPC-WQL-Filter
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: gPCWQLFilter
-schemaIDGUID: 7bd4c7a6-1add-4436-8c04-3999a880154c
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Server-Reference-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.516
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 95
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Server-Reference-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Server-Reference-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: serverReferenceBL
-schemaIDGUID: 26d9736e-6070-11d1-a9c6-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Create-Time-Stamp,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.18.1
-attributeSyntax: 2.5.5.11
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Create-Time-Stamp
-adminDescription: Create-Time-Stamp
-oMSyntax: 24
-searchFlags: 0
-lDAPDisplayName: createTimeStamp
-schemaIDGUID: 2df90d73-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=Attribute-Display-Names,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.748
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Attribute-Display-Names
-adminDescription: Attribute-Display-Names
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: attributeDisplayNames
-schemaIDGUID: cb843f80-48d9-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Admin-Context-Menu,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.614
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Admin-Context-Menu
-adminDescription: Admin-Context-Menu
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: adminContextMenu
-schemaIDGUID: 553fd038-f32e-11d0-b0bc-00c04fd8dca6
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=LSA-Modified-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.67
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: LSA-Modified-Count
-adminDescription: LSA-Modified-Count
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lSAModifiedCount
-schemaIDGUID: bf9679ae-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=LSA-Creation-Time,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.66
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: LSA-Creation-Time
-adminDescription: LSA-Creation-Time
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lSACreationTime
-schemaIDGUID: bf9679ad-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Server-State,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.154
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Server-State
-adminDescription: Server-State
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: serverState
-schemaIDGUID: bf967a34-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=LDAP-Display-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.460
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 256
-mAPIID: 33137
-showInAdvancedViewOnly: TRUE
-adminDisplayName: LDAP-Display-Name
-adminDescription: LDAP-Display-Name
-oMSyntax: 64
-searchFlags: 9
-lDAPDisplayName: lDAPDisplayName
-schemaIDGUID: bf96799a-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Supplemental-Credentials,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.125
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Supplemental-Credentials
-adminDescription: Supplemental-Credentials
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: supplementalCredentials
-schemaIDGUID: bf967a3f-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=msNPSavedCallingStationID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1130
-attributeSyntax: 2.5.5.5
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msNPSavedCallingStationID
-adminDescription: msNPSavedCallingStationID
-oMSyntax: 22
-searchFlags: 0
-lDAPDisplayName: msNPSavedCallingStationID
-schemaIDGUID: db0c908e-c1f2-11d1-bbc5-0080c76670c0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Flags,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.38
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Flags
-adminDescription: Flags
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: flags
-schemaIDGUID: bf967976-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Create-Wizard-Ext,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.812
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Create-Wizard-Ext
-adminDescription: Create-Wizard-Ext
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: createWizardExt
-schemaIDGUID: 2b09958b-8931-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=DMD-Location,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.36
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DMD-Location
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: DMD-Location
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: dMDLocation
-schemaIDGUID: f0f8ff8b-1191-11d0-a060-00aa006c33ed
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=ms-Exch-House-Identifier,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.596
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 128
-mAPIID: 35924
-adminDisplayName: ms-Exch-House-Identifier
-adminDescription: ms-Exch-House-Identifier
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msExchHouseIdentifier
-schemaIDGUID: a8df7407-c5ea-11d1-bbcb-0080c76670c0
-
-dn: CN=Phone-Mobile-Other,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.647
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 64
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Mobile-Other
-adminDescription: Phone-Mobile-Other
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: otherMobile
-schemaIDGUID: 0296c11e-40da-11d1-a9c0-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Generation-Qualifier,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.44
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 35923
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Generation-Qualifier
-adminDescription: Generation-Qualifier
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: generationQualifier
-schemaIDGUID: 16775804-47f3-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Attribute-Syntax,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.32
-attributeSyntax: 2.5.5.2
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Attribute-Syntax
-adminDescription: Attribute-Syntax
-oMSyntax: 6
-searchFlags: 8
-lDAPDisplayName: attributeSyntax
-schemaIDGUID: bf967925-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Attribute-Security-GUID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.149
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 16
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Attribute-Security-GUID
-adminDescription: Attribute-Security-GUID
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: attributeSecurityGUID
-schemaIDGUID: bf967924-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=DS-Heuristics,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.212
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DS-Heuristics
-adminDescription: DS-Heuristics
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: dSHeuristics
-schemaIDGUID: f0f8ff86-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Serial-Number,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.5
-attributeSyntax: 2.5.5.5
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 33072
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Serial-Number
-adminDescription: Serial-Number
-oMSyntax: 19
-searchFlags: 0
-lDAPDisplayName: serialNumber
-schemaIDGUID: bf967a32-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Settings,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1697
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeUpper: 1000000
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Settings
-adminDescription: ms-DS-Settings
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-Settings
-schemaIDGUID: 0e1b47d7-40a3-4b48-8d1b-4cac0c1cdf21
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Operator-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.144
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Operator-Count
-adminDescription: Operator-Count
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: operatorCount
-schemaIDGUID: bf9679ee-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=msRADIUSFramedIPAddress,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1153
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msRADIUSFramedIPAddress
-adminDescription: msRADIUSFramedIPAddress
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msRADIUSFramedIPAddress
-schemaIDGUID: db0c90a4-c1f2-11d1-bbc5-0080c76670c0
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Home-Drive,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.45
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Home-Drive
-adminDescription: Home-Drive
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: homeDrive
-schemaIDGUID: bf967986-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Attribute-Types,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.21.5
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Attribute-Types
-adminDescription: Attribute-Types
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: attributeTypes
-schemaIDGUID: 9a7ad944-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=Initial-Auth-Outgoing,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.540
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Initial-Auth-Outgoing
-adminDescription: Initial-Auth-Outgoing
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: initialAuthOutgoing
-schemaIDGUID: 52458024-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Version-Number,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.141
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Version-Number
-adminDescription: Version-Number
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: versionNumber
-schemaIDGUID: bf967a76-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Object-Class,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.0
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Object-Class
-adminDescription: Object-Class
-oMSyntax: 6
-searchFlags: 8
-lDAPDisplayName: objectClass
-schemaIDGUID: bf9679e5-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Possible-Inferiors,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.915
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Possible-Inferiors
-adminDescription: Possible-Inferiors
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: possibleInferiors
-schemaIDGUID: 9a7ad94c-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=ms-DS-Approx-Immed-Subordinates,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1669
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Approx-Immed-Subordinates
-adminDescription: ms-DS-Approx-Immed-Subordinates
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-Approx-Immed-Subordinates
-schemaIDGUID: e185d243-f6ce-4adb-b496-b0c005d7823c
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 20
-
-dn: CN=ms-DS-Replication-Notify-Subsequent-DSA-Delay,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1664
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Replication-Notify-Subsequent-DSA-Delay
-adminDescription: This attribute controls the delay between notification of each subsequent replica partner for an NC.
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-Replication-Notify-Subsequent-DSA-Delay
-schemaIDGUID: d63db385-dd92-4b52-b1d8-0d3ecc0e86b6
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Create-Dialog,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.810
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Create-Dialog
-adminDescription: Create-Dialog
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: createDialog
-schemaIDGUID: 2b09958a-8931-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Query-Policy-Object,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.607
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-linkID: 68
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Query-Policy-Object
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Query-Policy-Object
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: queryPolicyObject
-schemaIDGUID: e1aea403-cd5b-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=FRS-Root-Path,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.487
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 2048
-showInAdvancedViewOnly: TRUE
-adminDisplayName: FRS-Root-Path
-adminDescription: FRS-Root-Path
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: fRSRootPath
-schemaIDGUID: 1be8f174-a9ff-11d0-afe2-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Organizational-Unit-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.11
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 33026
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Organizational-Unit-Name
-adminDescription: Organizational-Unit-Name
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: ou
-schemaIDGUID: bf9679f0-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Telex-Number,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.21
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 32
-mAPIID: 14892
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Telex-Number
-adminDescription: Telex-Number
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: telexNumber
-schemaIDGUID: bf967a4b-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Address-Home,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.617
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 4096
-mAPIID: 14941
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Address-Home
-adminDescription: Address-Home
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: homePostalAddress
-schemaIDGUID: 16775781-47f3-11d1-a9c3-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Assistant,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.652
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Assistant
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Assistant
-oMSyntax: 127
-searchFlags: 16
-lDAPDisplayName: assistant
-schemaIDGUID: 0296c11c-40da-11d1-a9c0-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Netboot-Machine-File-Path,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.361
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Netboot-Machine-File-Path
-adminDescription: Netboot-Machine-File-Path
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: netbootMachineFilePath
-schemaIDGUID: 3e978923-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=x500uniqueIdentifier,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.45
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: x500uniqueIdentifier
-adminDescription: Used to distinguish between objects when a distinguished name has been reused. This is a different attribute type from both the "uid" and "uniqueIdentifier" types.
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: x500uniqueIdentifier
-schemaIDGUID: d07da11f-8a3d-42b6-b0aa-76c962be719a
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=DBCS-Pwd,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.55
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DBCS-Pwd
-adminDescription: DBCS-Pwd
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: dBCSPwd
-schemaIDGUID: bf96799c-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Prefix-Map,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.538
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Prefix-Map
-adminDescription: Prefix-Map
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: prefixMap
-schemaIDGUID: 52458022-ca6a-11d0-afff-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=ms-DS-Members-For-Az-Role-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1807
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2017
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Members-For-Az-Role-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Back-link from member application group or user to Az-Role object(s) linking to it
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-MembersForAzRoleBL
-schemaIDGUID: ececcd20-a7e0-4688-9ccf-02ece5e287f5
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Last-Known-Parent,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.781
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Last-Known-Parent
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Last-Known-Parent
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: lastKnownParent
-schemaIDGUID: 52ab8670-5709-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=FSMO-Role-Owner,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.369
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: FSMO-Role-Owner
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: FSMO-Role-Owner
-oMSyntax: 127
-searchFlags: 1
-lDAPDisplayName: fSMORoleOwner
-schemaIDGUID: 66171887-8f3c-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Retired-Repl-DSA-Signatures,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.673
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Retired-Repl-DSA-Signatures
-adminDescription: Retired-Repl-DSA-Signatures
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: retiredReplDSASignatures
-schemaIDGUID: 7bfdcb7f-4807-11d1-a9c3-0000f80367c1
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Network-Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.459
-attributeSyntax: 2.5.5.4
-isSingleValued: FALSE
-rangeLower: 0
-rangeUpper: 256
-mAPIID: 33136
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Network-Address
-adminDescription: Network-Address
-oMSyntax: 20
-searchFlags: 0
-lDAPDisplayName: networkAddress
-schemaIDGUID: bf9679d9-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-
-dn: CN=Schema-Version,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.471
-attributeSyntax: 2.5.5.9
-isSingleValued: FALSE
-mAPIID: 33148
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Schema-Version
-adminDescription: Schema-Version
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: schemaVersion
-schemaIDGUID: bf967a2c-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Poss-Superiors,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.8
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Poss-Superiors
-adminDescription: Poss-Superiors
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: possSuperiors
-schemaIDGUID: bf9679fa-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Default-Security-Descriptor,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.224
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 32767
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Default-Security-Descriptor
-adminDescription: Default-Security-Descriptor
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: defaultSecurityDescriptor
-schemaIDGUID: 807a6d30-1669-11d0-a064-00aa006c33ed
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=User-SMIME-Certificate,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.16.840.1.113730.3.140
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeUpper: 32768
-mAPIID: 14960
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-SMIME-Certificate
-adminDescription: User-SMIME-Certificate
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: userSMIMECertificate
-schemaIDGUID: e16a9db2-403c-11d1-a9c0-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 0
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=userPKCS12,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.16.840.1.113730.3.1.216
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: userPKCS12
-adminDescription: PKCS #12 PFX PDU for exchange of personal identity information.
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: userPKCS12
-schemaIDGUID: 23998ab5-70f8-4007-a4c1-a84a38311f9a
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=User-Account-Control,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.8
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Account-Control
-adminDescription: User-Account-Control
-oMSyntax: 2
-searchFlags: 25
-lDAPDisplayName: userAccountControl
-schemaIDGUID: bf967a68-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 4c164200-20c0-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Terminal-Server,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.885
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeUpper: 20480
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Terminal-Server
-adminDescription: Terminal-Server
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: terminalServer
-schemaIDGUID: 6db69a1c-9422-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Account-Expires,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.159
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Account-Expires
-adminDescription: Account-Expires
-oMSyntax: 65
-searchFlags: 16
-lDAPDisplayName: accountExpires
-schemaIDGUID: bf967915-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 4c164200-20c0-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Group-Type,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.750
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Group-Type
-adminDescription: Group-Type
-oMSyntax: 2
-searchFlags: 9
-lDAPDisplayName: groupType
-schemaIDGUID: 9a9a021e-4a5b-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=NT-Group-Members,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.89
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: NT-Group-Members
-adminDescription: NT-Group-Members
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: nTGroupMembers
-schemaIDGUID: bf9679df-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=WWW-Page-Other,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.749
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-mAPIID: 33141
-showInAdvancedViewOnly: TRUE
-adminDisplayName: WWW-Page-Other
-adminDescription: WWW-Page-Other
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: url
-schemaIDGUID: 9a9a0221-4a5b-11d1-a9c3-0000f80367c1
-attributeSecurityGUID: e45795b3-9455-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Revision,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.145
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Revision
-adminDescription: Revision
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: revision
-schemaIDGUID: bf967a21-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Object-Version,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.76
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 33015
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Object-Version
-adminDescription: Object-Version
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: objectVersion
-schemaIDGUID: 16775848-47f3-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-NC-Repl-Inbound-Neighbors,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1705
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-NC-Repl-Inbound-Neighbors
-adminDescription: ms-DS-NC-Repl-Inbound-Neighbors
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-NCReplInboundNeighbors
-schemaIDGUID: 9edba85a-3e9e-431b-9b1a-a5b6e9eda796
-systemOnly: FALSE
-systemFlags: 20
-
-dn: CN=ms-COM-UserLink,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1425
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 1049
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-COM-UserLink
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Link from a PartitionSet to a User. Default = adminDisplayName
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msCOM-UserLink
-schemaIDGUID: 9e6f3a4d-242c-4f37-b068-36b57f9fc852
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Mastered-By,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1409
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 77
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Mastered-By
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Mastered-By
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: masteredBy
-schemaIDGUID: e48e64e0-12c9-11d3-9102-00c04fd91ab1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Canonical-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.916
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Canonical-Name
-adminDescription: Canonical-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: canonicalName
-schemaIDGUID: 9a7ad945-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=ms-DS-NC-Replica-Locations,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1661
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 1044
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-NC-Replica-Locations
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: This is a list of servers that are the replica set for the corresponding Non-Domain Naming Context.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-NC-Replica-Locations
-schemaIDGUID: 97de9615-b537-46bc-ac0f-10720f3909f3
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-UpdateScript,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1721
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-UpdateScript
-adminDescription: ms-DS-UpdateScript
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-UpdateScript
-schemaIDGUID: 146eb639-bb9f-4fc1-a825-e29e00c77920
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Next-Rid,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.88
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Next-Rid
-adminDescription: Next-Rid
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: nextRid
-schemaIDGUID: bf9679db-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=X121-Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.24
-attributeSyntax: 2.5.5.6
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 15
-mAPIID: 33112
-showInAdvancedViewOnly: TRUE
-adminDisplayName: X121-Address
-adminDescription: X121-Address
-oMSyntax: 18
-searchFlags: 0
-lDAPDisplayName: x121Address
-schemaIDGUID: bf967a7b-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=User-Password,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.35
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 128
-mAPIID: 33107
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Password
-adminDescription: User-Password
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: userPassword
-schemaIDGUID: bf967a6e-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Telephone-Number,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.20
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14856
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Telephone-Number
-adminDescription: Telephone-Number
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: telephoneNumber
-schemaIDGUID: bf967a49-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Department,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.141
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14872
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Department
-adminDescription: Department
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: department
-schemaIDGUID: bf96794f-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Is-Member-Of-Partial-Attribute-Set,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.639
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Is-Member-Of-Partial-Attribute-Set
-adminDescription: Is-Member-Of-Partial-Attribute-Set
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: isMemberOfPartialAttributeSet
-schemaIDGUID: 19405b9d-3cfa-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Policy-Replication-Flags,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.633
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Policy-Replication-Flags
-adminDescription: Policy-Replication-Flags
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: policyReplicationFlags
-schemaIDGUID: 19405b96-3cfa-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Ipsec-ISAKMP-Reference,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.626
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-ISAKMP-Reference
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Ipsec-ISAKMP-Reference
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: ipsecISAKMPReference
-schemaIDGUID: b40ff820-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Application-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.218
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Application-Name
-adminDescription: Application-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: applicationName
-schemaIDGUID: dd712226-10e4-11d0-a05f-00aa006c33ed
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=System-May-Contain,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.196
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: System-May-Contain
-adminDescription: System-May-Contain
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: systemMayContain
-schemaIDGUID: bf967a44-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=msRASSavedFramedRoute,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1191
-attributeSyntax: 2.5.5.5
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msRASSavedFramedRoute
-adminDescription: msRASSavedFramedRoute
-oMSyntax: 22
-searchFlags: 0
-lDAPDisplayName: msRASSavedFramedRoute
-schemaIDGUID: db0c90c7-c1f2-11d1-bbc5-0080c76670c0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=msRASSavedCallbackNumber,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1189
-attributeSyntax: 2.5.5.5
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msRASSavedCallbackNumber
-adminDescription: msRASSavedCallbackNumber
-oMSyntax: 22
-searchFlags: 0
-lDAPDisplayName: msRASSavedCallbackNumber
-schemaIDGUID: db0c90c5-c1f2-11d1-bbc5-0080c76670c0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Trust-Type,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.136
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trust-Type
-adminDescription: Trust-Type
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: trustType
-schemaIDGUID: bf967a60-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Domain-Replica,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.158
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 32767
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Domain-Replica
-adminDescription: Domain-Replica
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: domainReplica
-schemaIDGUID: bf96795e-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Personal-Title,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.615
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 35947
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Personal-Title
-adminDescription: Personal-Title
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: personalTitle
-schemaIDGUID: 16775858-47f3-11d1-a9c3-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Other-Mailbox,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.651
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Other-Mailbox
-adminDescription: Other-Mailbox
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: otherMailbox
-schemaIDGUID: 0296c123-40da-11d1-a9c0-0000f80367c1
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-
-dn: CN=E-mail-Addresses,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.3
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 256
-mAPIID: 14846
-showInAdvancedViewOnly: TRUE
-adminDisplayName: E-mail-Addresses
-adminDescription: E-mail-Addresses
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: mail
-schemaIDGUID: bf967961-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=OM-Syntax,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.231
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 33022
-showInAdvancedViewOnly: TRUE
-adminDisplayName: OM-Syntax
-adminDescription: OM-Syntax
-oMSyntax: 2
-searchFlags: 8
-lDAPDisplayName: oMSyntax
-schemaIDGUID: bf9679ed-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Is-Defunct,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.661
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Is-Defunct
-adminDescription: Is-Defunct
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: isDefunct
-schemaIDGUID: 28630ebe-41d5-11d1-a9c1-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Other-Settings,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1621
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Other-Settings
-adminDescription: ms-DS-Other-Settings
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-Other-Settings
-schemaIDGUID: 79d2f34c-9d7d-42bb-838f-866b3e4400e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Machine-Role,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.71
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Machine-Role
-adminDescription: Machine-Role
-oMSyntax: 10
-searchFlags: 0
-lDAPDisplayName: machineRole
-schemaIDGUID: bf9679b2-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Az-Domain-Timeout,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1795
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Domain-Timeout
-adminDescription: Time (in ms) after a domain is detected to be un-reachable, and before the DC is tried again
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-AzDomainTimeout
-schemaIDGUID: 6448f56a-ca70-4e2e-b0af-d20e4ce653d0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=System-Auxiliary-Class,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.198
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: System-Auxiliary-Class
-adminDescription: System-Auxiliary-Class
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: systemAuxiliaryClass
-schemaIDGUID: bf967a43-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Primary-Group-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.98
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Primary-Group-ID
-adminDescription: Primary-Group-ID
-oMSyntax: 2
-searchFlags: 17
-lDAPDisplayName: primaryGroupID
-schemaIDGUID: bf967a00-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Lm-Pwd-History,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.160
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Lm-Pwd-History
-adminDescription: Lm-Pwd-History
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: lmPwdHistory
-schemaIDGUID: bf96799d-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Group-Membership-SAM,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.166
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Group-Membership-SAM
-adminDescription: Group-Membership-SAM
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: groupMembershipSAM
-schemaIDGUID: bf967980-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Trust-Partner,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.133
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 1024
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trust-Partner
-adminDescription: Trust-Partner
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: trustPartner
-schemaIDGUID: bf967a5d-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Instance-Type,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.1
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 32957
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Instance-Type
-adminDescription: Instance-Type
-oMSyntax: 2
-searchFlags: 8
-lDAPDisplayName: instanceType
-schemaIDGUID: bf96798c-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Treat-As-Leaf,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.806
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Treat-As-Leaf
-adminDescription: Treat-As-Leaf
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: treatAsLeaf
-schemaIDGUID: 8fd044e3-771f-11d1-aeae-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Admin-Property-Pages,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.562
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Admin-Property-Pages
-adminDescription: Admin-Property-Pages
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: adminPropertyPages
-schemaIDGUID: 52458038-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Az-Scope-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1799
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 65536
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Scope-Name
-adminDescription: A string that uniquely identifies a scope object
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AzScopeName
-schemaIDGUID: 515a6b06-2617-4173-8099-d5605df043c6
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=See-Also,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.34
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-mAPIID: 33071
-showInAdvancedViewOnly: TRUE
-adminDisplayName: See-Also
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: See-Also
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: seeAlso
-schemaIDGUID: bf967a31-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=LDAP-IPDeny-List,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.844
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: LDAP-IPDeny-List
-adminDescription: LDAP-IPDeny-List
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: lDAPIPDenyList
-schemaIDGUID: 7359a353-90f7-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Retired-Repl-NC-Signatures,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1826
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Retired-Repl-NC-Signatures
-adminDescription: Information about naming contexts that are no longer held on this computer
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: msDS-RetiredReplNCSignatures
-schemaIDGUID: d5b35506-19d6-4d26-9afb-11357ac99b5e
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Has-Master-NCs,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.14
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-mAPIID: 32950
-linkID: 76
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Has-Master-NCs
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Has-Master-NCs
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: hasMasterNCs
-schemaIDGUID: bf967982-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Modified-Count-At-Last-Prom,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.81
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Modified-Count-At-Last-Prom
-adminDescription: Modified-Count-At-Last-Prom
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: modifiedCountAtLastProm
-schemaIDGUID: bf9679c6-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Min-Pwd-Age,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.78
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Min-Pwd-Age
-adminDescription: Min-Pwd-Age
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: minPwdAge
-schemaIDGUID: bf9679c2-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: c7407360-20bf-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Force-Logoff,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.39
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Force-Logoff
-adminDescription: Force-Logoff
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: forceLogoff
-schemaIDGUID: bf967977-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Move-Tree-State,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1305
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Move-Tree-State
-adminDescription: Move-Tree-State
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: moveTreeState
-schemaIDGUID: 1f2ac2c8-3b71-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Allowed-To-Delegate-To,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1787
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Allowed-To-Delegate-To
-adminDescription: Allowed-To-Delegate-To contains a list of SPNs that are used for Constrained Delegation
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AllowedToDelegateTo
-schemaIDGUID: 800d94d7-b7a1-42a1-b14d-7cae1423d07f
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=System-Only,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.170
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: System-Only
-adminDescription: System-Only
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: systemOnly
-schemaIDGUID: bf967a46-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=ms-DS-IntId,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1716
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-IntId
-adminDescription: ms-DS-IntId
-oMSyntax: 2
-searchFlags: 8
-lDAPDisplayName: msDS-IntId
-schemaIDGUID: bc60096a-1b47-4b30-8877-602c93f56532
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=DNS-Host-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.619
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 2048
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DNS-Host-Name
-adminDescription: DNS-Host-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: dNSHostName
-schemaIDGUID: 72e39547-7b18-11d1-adef-00c04fd8d5cd
-attributeSecurityGUID: 72e39547-7b18-11d1-adef-00c04fd8d5cd
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=ms-DS-Az-Minor-Version,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1825
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Minor-Version
-adminDescription: Minor version number for AzRoles
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-AzMinorVersion
-schemaIDGUID: ee85ed93-b209-4788-8165-e702f51bfbf3
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Bad-Password-Time,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.49
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Bad-Password-Time
-adminDescription: Bad-Password-Time
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: badPasswordTime
-schemaIDGUID: bf96792d-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Primary-Group-Token,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1412
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Primary-Group-Token
-adminDescription: Primary-Group-Token
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: primaryGroupToken
-schemaIDGUID: c0ed8738-7efd-4481-84d9-66d2db8be369
-systemOnly: TRUE
-systemFlags: 20
-
-dn: CN=USN-Intersite,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.469
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 33146
-showInAdvancedViewOnly: TRUE
-adminDisplayName: USN-Intersite
-adminDescription: USN-Intersite
-oMSyntax: 2
-searchFlags: 1
-lDAPDisplayName: USNIntersite
-schemaIDGUID: a8df7498-c5ea-11d1-bbcb-0080c76670c0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=FRS-Member-Reference-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.876
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 105
-showInAdvancedViewOnly: TRUE
-adminDisplayName: FRS-Member-Reference-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: FRS-Member-Reference-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: fRSMemberReferenceBL
-schemaIDGUID: 2a13257f-9373-11d1-aebc-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=ms-DS-SD-Reference-Domain,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1711
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-linkID: 2000
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-SD-Reference-Domain
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: The domain to be used for default security descriptor translation for a Non-Domain Naming Context.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-SDReferenceDomain
-schemaIDGUID: 4c51e316-f628-43a5-b06b-ffb695fcb4f3
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Ipsec-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.621
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-ID
-adminDescription: Ipsec-ID
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: ipsecID
-schemaIDGUID: b40ff81d-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=LDAP-Admin-Limits,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.843
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: LDAP-Admin-Limits
-adminDescription: LDAP-Admin-Limits
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: lDAPAdminLimits
-schemaIDGUID: 7359a352-90f7-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Last-Backup-Restoration-Time,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.519
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Last-Backup-Restoration-Time
-adminDescription: Last-Backup-Restoration-Time
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lastBackupRestorationTime
-schemaIDGUID: 1fbb0be8-ba63-11d0-afef-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Tree-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.660
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Tree-Name
-adminDescription: Tree-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: treeName
-schemaIDGUID: 28630ebd-41d5-11d1-a9c1-0000f80367c1
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=OEM-Information,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.151
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 32767
-showInAdvancedViewOnly: TRUE
-adminDisplayName: OEM-Information
-adminDescription: OEM-Information
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: oEMInformation
-schemaIDGUID: bf9679ea-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Given-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.42
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14854
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Given-Name
-adminDescription: Given-Name
-oMSyntax: 64
-searchFlags: 5
-lDAPDisplayName: givenName
-schemaIDGUID: f0f8ff8e-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=SPN-Mappings,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1347
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: SPN-Mappings
-adminDescription: SPN-Mappings
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: sPNMappings
-schemaIDGUID: 2ab0e76c-7041-11d2-9905-0000f87a57d4
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Operating-System-Version,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.364
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Operating-System-Version
-adminDescription: Operating-System-Version
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: operatingSystemVersion
-schemaIDGUID: 3e978926-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Notification-List,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.303
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Notification-List
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Notification-List
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: notificationList
-schemaIDGUID: 19195a56-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Token-Groups,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1301
-attributeSyntax: 2.5.5.17
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Token-Groups
-adminDescription: Token-Groups
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: tokenGroups
-schemaIDGUID: b7c69e6d-2cc7-11d2-854e-00a0c983f608
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 134217748
-
-dn: CN=carLicense,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.16.840.1.113730.3.1.1
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: carLicense
-adminDescription: Vehicle license or registration plate.
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: carLicense
-schemaIDGUID: d4159c92-957d-4a87-8a67-8d2934e01649
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Preferred-OU,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.97
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Preferred-OU
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Preferred-OU
-oMSyntax: 127
-searchFlags: 16
-lDAPDisplayName: preferredOU
-schemaIDGUID: bf9679ff-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MS-DS-Creator-SID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1410
-attributeSyntax: 2.5.5.17
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Creator-SID
-adminDescription: MS-DS-Creator-SID
-oMSyntax: 4
-searchFlags: 1
-lDAPDisplayName: mS-DS-CreatorSID
-schemaIDGUID: c5e60132-1480-11d3-91c1-0000f87a57d4
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=ms-DS-Non-Members,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1793
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2014
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Non-Members
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: ms-DS-Non-Members
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-NonMembers
-schemaIDGUID: cafcb1de-f23c-46b5-adf7-1e64957bd5db
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Tasks-For-Az-Role-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1815
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2025
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Tasks-For-Az-Role-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Back-link from Az-Task to Az-Role object(s) linking to it
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-TasksForAzRoleBL
-schemaIDGUID: a0dcd536-5158-42fe-8c40-c00a7ad37959
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Extension-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.227
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 255
-mAPIID: 32937
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Extension-Name
-adminDescription: Extension-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: extensionName
-schemaIDGUID: bf967972-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Replication-Notify-First-DSA-Delay,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1663
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Replication-Notify-First-DSA-Delay
-adminDescription: This attribute controls the delay between changes to the DS, and notification of the first replica partner for an NC.
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-Replication-Notify-First-DSA-Delay
-schemaIDGUID: 85abd4f4-0a89-4e49-bdec-6f35bb2562ba
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Max-Pwd-Age,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.74
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Max-Pwd-Age
-adminDescription: Max-Pwd-Age
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: maxPwdAge
-schemaIDGUID: bf9679bb-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: c7407360-20bf-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Phone-Ip-Other,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.722
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Ip-Other
-adminDescription: Phone-Ip-Other
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: otherIpPhone
-schemaIDGUID: 4d146e4b-48d4-11d1-a9c3-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Ipsec-NFA-Reference,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.627
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-NFA-Reference
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Ipsec-NFA-Reference
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: ipsecNFAReference
-schemaIDGUID: b40ff821-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=secretary,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.21
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: secretary
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Specifies the secretary of a person.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: secretary
-schemaIDGUID: 01072d9a-98ad-4a53-9744-e83e287278fb
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=User-Parameters,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.138
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 32767
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Parameters
-adminDescription: User-Parameters
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: userParameters
-schemaIDGUID: bf967a6d-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 4c164200-20c0-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Trust-Posix-Offset,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.134
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trust-Posix-Offset
-adminDescription: Trust-Posix-Offset
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: trustPosixOffset
-schemaIDGUID: bf967a5e-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Bridgehead-Server-List-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.820
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 99
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Bridgehead-Server-List-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Bridgehead-Server-List-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: bridgeheadServerListBL
-schemaIDGUID: d50c2cdb-8951-11d1-aebc-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=ms-DS-Az-Application-Data,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1819
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Application-Data
-adminDescription: A string that is used by individual applications to store whatever information they may need to
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AzApplicationData
-schemaIDGUID: 503fc3e8-1cc6-461a-99a3-9eee04f402a7
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Pek-Key-Change-Interval,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.866
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Pek-Key-Change-Interval
-adminDescription: Pek-Key-Change-Interval
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: pekKeyChangeInterval
-schemaIDGUID: 07383084-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Country-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.6
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 3
-mAPIID: 32873
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Country-Name
-adminDescription: Country-Name
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: c
-schemaIDGUID: bf967945-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Destination-Indicator,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.27
-attributeSyntax: 2.5.5.5
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 128
-mAPIID: 32880
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Destination-Indicator
-adminDescription: Destination-Indicator
-oMSyntax: 19
-searchFlags: 0
-lDAPDisplayName: destinationIndicator
-schemaIDGUID: bf967951-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Country-Code,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.25
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 65535
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Country-Code
-adminDescription: Country-Code
-oMSyntax: 2
-searchFlags: 16
-lDAPDisplayName: countryCode
-schemaIDGUID: 5fd42471-1262-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Phone-Mobile-Primary,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.41
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14876
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Mobile-Primary
-adminDescription: Phone-Mobile-Primary
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: mobile
-schemaIDGUID: f0f8ffa3-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Schema-ID-GUID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.148
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 16
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Schema-ID-GUID
-adminDescription: Schema-ID-GUID
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: schemaIDGUID
-schemaIDGUID: bf967923-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=RID-Set-References,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.669
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: RID-Set-References
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: RID-Set-References
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: rIDSetReferences
-schemaIDGUID: 7bfdcb7b-4807-11d1-a9c3-0000f80367c1
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Auxiliary-Class,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.351
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Auxiliary-Class
-adminDescription: Auxiliary-Class
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: auxiliaryClass
-schemaIDGUID: bf96792c-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=uid,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.1
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: uid
-adminDescription: A user ID.
-oMSyntax: 64
-searchFlags: 8
-lDAPDisplayName: uid
-schemaIDGUID: 0bb0fca0-1e89-429f-901a-1413894d9f59
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=departmentNumber,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.16.840.1.113730.3.1.2
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: departmentNumber
-adminDescription: Identifies a department within an organization.
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: departmentNumber
-schemaIDGUID: be9ef6ee-cbc7-4f22-b27b-96967e7ee585
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Additional-Trusted-Service-Names,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.889
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Additional-Trusted-Service-Names
-adminDescription: Additional-Trusted-Service-Names
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: additionalTrustedServiceNames
-schemaIDGUID: 032160be-9824-11d1-aec0-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=WWW-Home-Page,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.464
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 2048
-showInAdvancedViewOnly: TRUE
-adminDisplayName: WWW-Home-Page
-adminDescription: WWW-Home-Page
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: wWWHomePage
-schemaIDGUID: bf967a7a-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e45795b3-9455-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=USN-Source,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.896
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-mAPIID: 33111
-showInAdvancedViewOnly: TRUE
-adminDisplayName: USN-Source
-adminDescription: USN-Source
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: uSNSource
-schemaIDGUID: 167758ad-47f3-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MS-DS-Consistency-Guid,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1360
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Consistency-Guid
-adminDescription: MS-DS-Consistency-Guid
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: mS-DS-ConsistencyGuid
-schemaIDGUID: 23773dc2-b63a-11d2-90e1-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Frs-Computer-Reference-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.870
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 103
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Frs-Computer-Reference-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Frs-Computer-Reference-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: frsComputerReferenceBL
-schemaIDGUID: 2a132579-9373-11d1-aebc-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Allowed-Attributes,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.913
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Allowed-Attributes
-adminDescription: Allowed-Attributes
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: allowedAttributes
-schemaIDGUID: 9a7ad940-ca53-11d1-bbd0-0080c76670c0
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=ms-DS-Az-Application-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1798
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 512
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Application-Name
-adminDescription: A string that uniquely identifies an application object
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AzApplicationName
-schemaIDGUID: db5b0728-6208-4876-83b7-95d3e5695275
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=UPN-Suffixes,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.890
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: UPN-Suffixes
-adminDescription: UPN-Suffixes
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: uPNSuffixes
-schemaIDGUID: 032160bf-9824-11d1-aec0-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MS-DS-Per-User-Trust-Quota,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1788
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Per-User-Trust-Quota
-adminDescription: Used to enforce a per-user quota for creating Trusted-Domain objects authorized by the control access right, "Create inbound Forest trust". This attribute limits the number of Trusted-Domain objects that can be created by a single non-admin user in the domain.
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-PerUserTrustQuota
-schemaIDGUID: d161adf0-ca24-4993-a3aa-8b2c981302e8
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MS-DS-Machine-Account-Quota,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1411
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Machine-Account-Quota
-adminDescription: MS-DS-Machine-Account-Quota
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: ms-DS-MachineAccountQuota
-schemaIDGUID: d064fb68-1480-11d3-91c1-0000f87a57d4
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Server-Role,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.157
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Server-Role
-adminDescription: Server-Role
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: serverRole
-schemaIDGUID: bf967a33-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Phone-Home-Primary,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.20
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14857
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Home-Primary
-adminDescription: Phone-Home-Primary
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: homePhone
-schemaIDGUID: f0f8ffa1-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Range-Lower,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.34
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 33043
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Range-Lower
-adminDescription: Range-Lower
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: rangeLower
-schemaIDGUID: bf967a0c-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Operating-System-Hotfix,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.415
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Operating-System-Hotfix
-adminDescription: Operating-System-Hotfix
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: operatingSystemHotfix
-schemaIDGUID: bd951b3c-9c96-11d0-afdd-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Additional-Dns-Host-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1717
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 0
-rangeUpper: 2048
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Additional-Dns-Host-Name
-adminDescription: ms-DS-Additional-Dns-Host-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AdditionalDnsHostName
-schemaIDGUID: 80863791-dbe9-4eb8-837e-7f0ab55d9ac7
-attributeSecurityGUID: 72e39547-7b18-11d1-adef-00c04fd8d5cd
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=ms-DS-Az-Script-Timeout,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1797
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Script-Timeout
-adminDescription: Maximum time (in ms) to wait for a script to finish auditing a specific policy
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-AzScriptTimeout
-schemaIDGUID: 87d0fb41-2c8b-41f6-b972-11fdfd50d6b0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Must-Contain,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.24
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Must-Contain
-adminDescription: Must-Contain
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: mustContain
-schemaIDGUID: bf9679d3-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=X509-Cert,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.36
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeUpper: 32768
-mAPIID: 35946
-showInAdvancedViewOnly: TRUE
-adminDisplayName: X509-Cert
-adminDescription: X509-Cert
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: userCertificate
-schemaIDGUID: bf967a7f-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=msNPCallingStationID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1124
-attributeSyntax: 2.5.5.5
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msNPCallingStationID
-adminDescription: msNPCallingStationID
-oMSyntax: 22
-searchFlags: 0
-lDAPDisplayName: msNPCallingStationID
-schemaIDGUID: db0c908a-c1f2-11d1-bbc5-0080c76670c0
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-User-Account-Control-Computed,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1460
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-User-Account-Control-Computed
-adminDescription: ms-DS-User-Account-Control-Computed
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-User-Account-Control-Computed
-schemaIDGUID: 2cc4b836-b63f-4940-8d23-ea7acf06af56
-attributeSecurityGUID: 4c164200-20c0-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 20
-
-dn: CN=Home-Directory,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.44
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Home-Directory
-adminDescription: Home-Directory
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: homeDirectory
-schemaIDGUID: bf967985-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Az-LDAP-Query,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1792
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 4096
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-LDAP-Query
-adminDescription: ms-DS-Az-LDAP-Query
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AzLDAPQuery
-schemaIDGUID: 5e53368b-fc94-45c8-9d7d-daf31ee7112d
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Partial-Attribute-Deletion-List,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.663
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Partial-Attribute-Deletion-List
-adminDescription: Partial-Attribute-Deletion-List
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: partialAttributeDeletionList
-schemaIDGUID: 28630ec0-41d5-11d1-a9c1-0000f80367c1
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Is-Critical-System-Object,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.868
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Is-Critical-System-Object
-adminDescription: Is-Critical-System-Object
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: isCriticalSystemObject
-schemaIDGUID: 00fbf30d-91fe-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=GP-Link,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.891
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: GP-Link
-adminDescription: GP-Link
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: gPLink
-schemaIDGUID: f30e3bbe-9ff0-11d1-b603-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Scope-Flags,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1354
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Scope-Flags
-adminDescription: Scope-Flags
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: scopeFlags
-schemaIDGUID: 16f3a4c2-7e79-11d2-9921-0000f87a57d4
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Lockout-Duration,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.60
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Lockout-Duration
-adminDescription: Lockout-Duration
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lockoutDuration
-schemaIDGUID: bf9679a5-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: c7407360-20bf-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-COM-UserPartitionSetLink,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1426
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-linkID: 1048
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-COM-UserPartitionSetLink
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Link from a User to a PartitionSet. Default = adminDisplayName
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msCOM-UserPartitionSetLink
-schemaIDGUID: 8e940c8a-e477-4367-b08d-ff2ff942dcd7
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Logo,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.16.840.1.113730.3.1.36
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 32767
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Logo
-adminDescription: Logo
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: thumbnailLogo
-schemaIDGUID: bf9679a9-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Picture,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.16.840.1.113730.3.1.35
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 102400
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Picture
-adminDescription: Picture
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: thumbnailPhoto
-schemaIDGUID: 8d3bca50-1d7e-11d0-a081-00aa006c33ed
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Location,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.222
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 1024
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Location
-adminDescription: Location
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: location
-schemaIDGUID: 09dcb79f-165f-11d0-a064-00aa006c33ed
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=User-Workstations,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.86
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 1024
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Workstations
-adminDescription: User-Workstations
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: userWorkstations
-schemaIDGUID: bf9679d7-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Logon-Workstation,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.65
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Logon-Workstation
-adminDescription: Logon-Workstation
-oMSyntax: 4
-searchFlags: 16
-lDAPDisplayName: logonWorkstation
-schemaIDGUID: bf9679ac-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Last-Logon-Timestamp,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1696
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Last-Logon-Timestamp
-adminDescription: Last-Logon-Timestamp
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lastLogonTimestamp
-schemaIDGUID: c0e20a04-0e5a-4ff3-9482-5efeaecd7060
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Prior-Value,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.100
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Prior-Value
-adminDescription: Prior-Value
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: priorValue
-schemaIDGUID: bf967a02-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Last-Set-Time,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.53
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Last-Set-Time
-adminDescription: Last-Set-Time
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lastSetTime
-schemaIDGUID: bf967998-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Object-Guid,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.2
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 16
-rangeUpper: 16
-mAPIID: 35949
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Object-Guid
-adminDescription: Object-Guid
-oMSyntax: 4
-searchFlags: 9
-lDAPDisplayName: objectGUID
-schemaIDGUID: bf9679e7-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Parent-GUID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-cn: Parent-GUID
-ldapDisplayName: parentGUID
-attributeId: 1.2.840.113556.1.4.1224
-attributeSyntax: 2.5.5.10
-omSyntax: 4
-isSingleValued: TRUE
-schemaIdGuid: 2df90d74-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: TRUE
-searchFlags: 0
-systemFlags: 134217748
-schemaFlagsEx: 1
-
-dn: CN=ms-DS-Tasks-For-Az-Task-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1811
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2021
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Tasks-For-Az-Task-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Back-link from Az-Task to the Az-Task object(s) linking to it
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-TasksForAzTaskBL
-schemaIDGUID: df446e52-b5fa-4ca2-a42f-13f98a526c8f
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Managed-By,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.653
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-mAPIID: 32780
-linkID: 72
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Managed-By
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Managed-By
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: managedBy
-schemaIDGUID: 0296c120-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Pwd-Properties,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.93
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Pwd-Properties
-adminDescription: Pwd-Properties
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: pwdProperties
-schemaIDGUID: bf967a0b-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: c7407360-20bf-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Builtin-Creation-Time,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.13
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Builtin-Creation-Time
-adminDescription: Builtin-Creation-Time
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: builtinCreationTime
-schemaIDGUID: bf96792f-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Post-Office-Box,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.18
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 40
-mAPIID: 14891
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Post-Office-Box
-adminDescription: Post-Office-Box
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: postOfficeBox
-schemaIDGUID: bf9679fb-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Company,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.146
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14870
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Company
-adminDescription: Company
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: company
-schemaIDGUID: f0f8ff88-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Catalogs,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.675
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Catalogs
-adminDescription: Catalogs
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: catalogs
-schemaIDGUID: 7bfdcb81-4807-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Default-Object-Category,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.783
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Default-Object-Category
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Default-Object-Category
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: defaultObjectCategory
-schemaIDGUID: 26d97367-6070-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=msRADIUSFramedRoute,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1158
-attributeSyntax: 2.5.5.5
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msRADIUSFramedRoute
-adminDescription: msRADIUSFramedRoute
-oMSyntax: 22
-searchFlags: 0
-lDAPDisplayName: msRADIUSFramedRoute
-schemaIDGUID: db0c90a9-c1f2-11d1-bbc5-0080c76670c0
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Prior-Set-Time,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.99
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Prior-Set-Time
-adminDescription: Prior-Set-Time
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: priorSetTime
-schemaIDGUID: bf967a01-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=User-Cert,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.645
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 32767
-mAPIID: 14882
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Cert
-adminDescription: User-Cert
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: userCert
-schemaIDGUID: bf967a69-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Non-Security-Member,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.530
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 50
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Non-Security-Member
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Non-Security-Member
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: nonSecurityMember
-schemaIDGUID: 52458018-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Member,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.31
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-mAPIID: 32777
-linkID: 2
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Member
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Member
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: member
-schemaIDGUID: bf9679c0-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: bc0ac240-79a9-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Group-Attributes,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.152
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Group-Attributes
-adminDescription: Group-Attributes
-oMSyntax: 2
-searchFlags: 1
-lDAPDisplayName: groupAttributes
-schemaIDGUID: bf96797e-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=System-Flags,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.375
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: System-Flags
-adminDescription: System-Flags
-oMSyntax: 2
-searchFlags: 8
-lDAPDisplayName: systemFlags
-schemaIDGUID: e0fa1e62-9b45-11d0-afdd-00c04fd930c9
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Proxied-Object-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1249
-attributeSyntax: 2.5.5.7
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Proxied-Object-Name
-oMObjectClass:: KoZIhvcUAQEBCw==
-adminDescription: Proxied-Object-Name
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: proxiedObjectName
-schemaIDGUID: e1aea402-cd5b-11d0-afff-0000f80367c1
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=ms-DS-Repl-Value-Meta-Data,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1708
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Repl-Value-Meta-Data
-adminDescription: ms-DS-Repl-Value-Meta-Data
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-ReplValueMetaData
-schemaIDGUID: 2f5c8145-e1bd-410b-8957-8bfa81d5acfd
-systemOnly: FALSE
-systemFlags: 20
-
-dn: CN=Allowed-Child-Classes-Effective,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.912
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Allowed-Child-Classes-Effective
-adminDescription: Allowed-Child-Classes-Effective
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: allowedChildClassesEffective
-schemaIDGUID: 9a7ad943-ca53-11d1-bbd0-0080c76670c0
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=ms-DS-Az-Generate-Audits,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1805
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Generate-Audits
-adminDescription: A boolean field indicating if runtime audits need to be turned on (include audits for access checks, etc.)
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: msDS-AzGenerateAudits
-schemaIDGUID: f90abab0-186c-4418-bb85-88447c87222a
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Az-Application-Version,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1817
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Application-Version
-adminDescription: A version number to indicate that the AzApplication is updated
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AzApplicationVersion
-schemaIDGUID: 7184a120-3ac4-47ae-848f-fe0ab20784d4
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Icon-Path,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.219
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 0
-rangeUpper: 2048
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Icon-Path
-adminDescription: Icon-Path
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: iconPath
-schemaIDGUID: f0f8ff83-1191-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Street-Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.9
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 1024
-mAPIID: 33082
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Street-Address
-adminDescription: Street-Address
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: street
-schemaIDGUID: bf967a3a-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=ms-DS-ExecuteScriptPassword,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1783
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 64
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-ExecuteScriptPassword
-adminDescription: ms-DS-ExecuteScriptPassword
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: msDS-ExecuteScriptPassword
-schemaIDGUID: 9d054a5a-d187-46c1-9d85-42dfc44a56dd
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=ms-DS-Logon-Time-Sync-Interval,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1784
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Logon-Time-Sync-Interval
-adminDescription: ms-DS-Logon-Time-Sync-Interval
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-LogonTimeSyncInterval
-schemaIDGUID: ad7940f8-e43a-4a42-83bc-d688e59ea605
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Garbage-Coll-Period,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.301
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 32943
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Garbage-Coll-Period
-adminDescription: Garbage-Coll-Period
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: garbageCollPeriod
-schemaIDGUID: 5fd424a1-1262-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MSMQ-Sign-Certificates-Mig,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.967
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeUpper: 1048576
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Sign-Certificates-Mig
-adminDescription: MSMQ-Sign-Certificates-Mig
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: mSMQSignCertificatesMig
-schemaIDGUID: 3881b8ea-da3b-11d1-90a5-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=ms-DS-Cached-Membership-Time-Stamp,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1442
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Cached-Membership-Time-Stamp
-adminDescription: ms-DS-Cached-Membership-Time-Stamp
-oMSyntax: 65
-searchFlags: 1
-lDAPDisplayName: msDS-Cached-Membership-Time-Stamp
-schemaIDGUID: 3566bf1f-beee-4dcb-8abe-ef89fcfec6c1
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Logon-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.169
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Logon-Count
-adminDescription: Logon-Count
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: logonCount
-schemaIDGUID: bf9679aa-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Locale-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.58
-attributeSyntax: 2.5.5.9
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Locale-ID
-adminDescription: Locale-ID
-oMSyntax: 2
-searchFlags: 16
-lDAPDisplayName: localeID
-schemaIDGUID: bf9679a1-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Bad-Pwd-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.12
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Bad-Pwd-Count
-adminDescription: Bad-Pwd-Count
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: badPwdCount
-schemaIDGUID: bf96792e-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Trust-Auth-Incoming,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.129
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 32767
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trust-Auth-Incoming
-adminDescription: Trust-Auth-Incoming
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: trustAuthIncoming
-schemaIDGUID: bf967a59-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=SubSchemaSubEntry,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.18.10
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: SubSchemaSubEntry
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: SubSchemaSubEntry
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: subSchemaSubEntry
-schemaIDGUID: 9a7ad94d-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=Structural-Object-Class,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.21.9
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Structural-Object-Class
-adminDescription: The class hierarchy without auxiliary classes
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: structuralObjectClass
-schemaIDGUID: 3860949f-f6a8-4b38-9950-81ecb6bc2982
-systemOnly: FALSE
-systemFlags: 20
-
-dn: CN=Is-Deleted,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.48
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-mAPIID: 32960
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Is-Deleted
-adminDescription: Is-Deleted
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: isDeleted
-schemaIDGUID: bf96798f-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Extra-Columns,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1687
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Extra-Columns
-adminDescription: Extra-Columns
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: extraColumns
-schemaIDGUID: d24e2846-1dd9-4bcf-99d7-a6227cc86da7
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Admin-Multiselect-Property-Pages,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1690
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Admin-Multiselect-Property-Pages
-adminDescription: Admin-Multiselect-Property-Pages
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: adminMultiselectPropertyPages
-schemaIDGUID: 18f9b67d-5ac6-4b3b-97db-d0a406afb7ba
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Options,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.307
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Options
-adminDescription: Options
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: options
-schemaIDGUID: 19195a53-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Lock-Out-Observation-Window,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.61
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Lock-Out-Observation-Window
-adminDescription: Lock-Out-Observation-Window
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lockOutObservationWindow
-schemaIDGUID: bf9679a4-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: c7407360-20bf-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Default-Local-Policy-Object,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.57
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Default-Local-Policy-Object
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Default-Local-Policy-Object
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: defaultLocalPolicyObject
-schemaIDGUID: bf96799f-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Creation-Time,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.26
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Creation-Time
-adminDescription: Creation-Time
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: creationTime
-schemaIDGUID: bf967946-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Registered-Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.26
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 4096
-mAPIID: 33049
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Registered-Address
-adminDescription: Registered-Address
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: registeredAddress
-schemaIDGUID: bf967a10-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-
-dn: CN=Postal-Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.16
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 4096
-mAPIID: 33036
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Postal-Address
-adminDescription: Postal-Address
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: postalAddress
-schemaIDGUID: bf9679fc-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Initials,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.43
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 6
-mAPIID: 14858
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Initials
-adminDescription: Initials
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: initials
-schemaIDGUID: f0f8ff90-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Is-Single-Valued,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.33
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-mAPIID: 32961
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Is-Single-Valued
-adminDescription: Is-Single-Valued
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: isSingleValued
-schemaIDGUID: bf967992-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Netboot-SIF-File,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1240
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Netboot-SIF-File
-adminDescription: Netboot-SIF-File
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: netbootSIFFile
-schemaIDGUID: 2df90d84-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Additional-Sam-Account-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1718
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 0
-rangeUpper: 256
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Additional-Sam-Account-Name
-adminDescription: ms-DS-Additional-Sam-Account-Name
-oMSyntax: 64
-searchFlags: 13
-lDAPDisplayName: msDS-AdditionalSamAccountName
-schemaIDGUID: 975571df-a4d5-429a-9f59-cdc6581d91e6
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=System-Poss-Superiors,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.195
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: System-Poss-Superiors
-adminDescription: System-Poss-Superiors
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: systemPossSuperiors
-schemaIDGUID: bf967a47-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=photo,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.7
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: photo
-adminDescription: An object encoded in G3 fax as explained in recommendation T.4, with an ASN.1 wrapper to make it compatible with an X.400 BodyPart as defined in X.420.
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: photo
-schemaIDGUID: 9c979768-ba1a-4c08-9632-c6a5c1ed649a
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Employee-Number,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.610
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 512
-mAPIID: 35943
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Employee-Number
-adminDescription: Employee-Number
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: employeeNumber
-schemaIDGUID: a8df73ef-c5ea-11d1-bbcb-0080c76670c0
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Lockout-Time,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.662
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Lockout-Time
-adminDescription: Lockout-Time
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lockoutTime
-schemaIDGUID: 28630ebf-41d5-11d1-a9c1-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Dynamic-LDAP-Server,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.537
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Dynamic-LDAP-Server
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Dynamic-LDAP-Server
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: dynamicLDAPServer
-schemaIDGUID: 52458021-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Extended-Attribute-Info,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.909
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Extended-Attribute-Info
-adminDescription: Extended-Attribute-Info
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: extendedAttributeInfo
-schemaIDGUID: 9a7ad947-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=ms-Exch-Assistant-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.444
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 256
-mAPIID: 14896
-adminDisplayName: ms-Exch-Assistant-Name
-adminDescription: ms-Exch-Assistant-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msExchAssistantName
-schemaIDGUID: a8df7394-c5ea-11d1-bbcb-0080c76670c0
-
-dn: CN=GPC-User-Extension-Names,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1349
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: GPC-User-Extension-Names
-adminDescription: GPC-User-Extension-Names
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: gPCUserExtensionNames
-schemaIDGUID: 42a75fc6-783f-11d2-9916-0000f87a57d4
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Non-Members-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1794
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2015
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Non-Members-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: MS-DS-Non-Members-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-NonMembersBL
-schemaIDGUID: 2a8c68fc-3a7a-4e87-8720-fe77c51cbe74
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Admin-Display-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.194
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 256
-mAPIID: 32843
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Admin-Display-Name
-adminDescription: Admin-Display-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: adminDisplayName
-schemaIDGUID: bf96791a-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Context-Menu,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.499
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Context-Menu
-adminDescription: Context-Menu
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: contextMenu
-schemaIDGUID: 4d8601ee-ac85-11d0-afe3-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Link-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.50
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 32965
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Link-ID
-adminDescription: Link-ID
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: linkID
-schemaIDGUID: bf96799b-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=attributeCertificateAttribute,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.58
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: attributeCertificateAttribute
-adminDescription: A digitally signed or certified identity and set of attributes. Used to bind authorization information to an identity. X.509
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: attributeCertificateAttribute
-schemaIDGUID: fa4693bb-7bc2-4cb9-81a8-c99c43b7905e
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Surname,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.4
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14865
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Surname
-adminDescription: Surname
-oMSyntax: 64
-searchFlags: 5
-lDAPDisplayName: sn
-schemaIDGUID: bf967a41-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=SAM-Account-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.221
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 256
-showInAdvancedViewOnly: TRUE
-adminDisplayName: SAM-Account-Name
-adminDescription: SAM-Account-Name
-oMSyntax: 64
-searchFlags: 13
-lDAPDisplayName: sAMAccountName
-schemaIDGUID: 3e0abfd0-126a-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Governs-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.22
-attributeSyntax: 2.5.5.2
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Governs-ID
-adminDescription: Governs-ID
-oMSyntax: 6
-searchFlags: 8
-lDAPDisplayName: governsID
-schemaIDGUID: bf96797d-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=jpegPhoto,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.60
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: jpegPhoto
-adminDescription: Used to store one or more images of a person using the JPEG File Interchange Format [JFIF].
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: jpegPhoto
-schemaIDGUID: bac80572-09c4-4fa9-9ae6-7628d7adbe0e
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=MSMQ-Sign-Certificates,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.947
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-rangeUpper: 1048576
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Sign-Certificates
-adminDescription: MSMQ-Sign-Certificates
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: mSMQSignCertificates
-schemaIDGUID: 9a0dc33b-c100-11d1-bbc5-0080c76670c0
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Initial-Auth-Incoming,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.539
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Initial-Auth-Incoming
-adminDescription: Initial-Auth-Incoming
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: initialAuthIncoming
-schemaIDGUID: 52458023-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Domain-Cross-Ref,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.472
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Domain-Cross-Ref
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Domain-Cross-Ref
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: domainCrossRef
-schemaIDGUID: b000ea7b-a086-11d0-afdd-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Text-Encoded-OR-Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.2
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 1024
-mAPIID: 35969
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Text-Encoded-OR-Address
-adminDescription: Text-Encoded-OR-Address
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: textEncodedORAddress
-schemaIDGUID: a8df7489-c5ea-11d1-bbcb-0080c76670c0
-systemOnly: FALSE
-
-dn: CN=GPC-Functionality-Version,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.893
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: GPC-Functionality-Version
-adminDescription: GPC-Functionality-Version
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: gPCFunctionalityVersion
-schemaIDGUID: f30e3bc0-9ff0-11d1-b603-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=USN-DSA-Last-Obj-Removed,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.267
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-mAPIID: 33109
-showInAdvancedViewOnly: TRUE
-adminDisplayName: USN-DSA-Last-Obj-Removed
-adminDescription: USN-DSA-Last-Obj-Removed
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: uSNDSALastObjRemoved
-schemaIDGUID: bf967a71-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=ms-DS-Operations-For-Az-Role-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1813
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2023
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Operations-For-Az-Role-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Back-link from Az-Operation to Az-Role object(s) linking to it
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-OperationsForAzRoleBL
-schemaIDGUID: f85b6228-3734-4525-b6b7-3f3bb220902c
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=MS-DS-Consistency-Child-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1361
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Consistency-Child-Count
-adminDescription: MS-DS-Consistency-Child-Count
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: mS-DS-ConsistencyChildCount
-schemaIDGUID: 178b7bc2-b63a-11d2-90e1-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=DSA-Signature,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.74
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-mAPIID: 32887
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DSA-Signature
-adminDescription: DSA-Signature
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: dSASignature
-schemaIDGUID: 167757bc-47f3-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Allowed-Child-Classes,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.911
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Allowed-Child-Classes
-adminDescription: Allowed-Child-Classes
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: allowedChildClasses
-schemaIDGUID: 9a7ad942-ca53-11d1-bbd0-0080c76670c0
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=Allowed-Attributes-Effective,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.914
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Allowed-Attributes-Effective
-adminDescription: Allowed-Attributes-Effective
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: allowedAttributesEffective
-schemaIDGUID: 9a7ad941-ca53-11d1-bbd0-0080c76670c0
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=NT-Mixed-Domain,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.357
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: NT-Mixed-Domain
-adminDescription: NT-Mixed-Domain
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: nTMixedDomain
-schemaIDGUID: 3e97891f-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Has-Instantiated-NCs,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1709
-attributeSyntax: 2.5.5.7
-isSingleValued: FALSE
-rangeLower: 4
-rangeUpper: 4
-linkID: 2002
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Has-Instantiated-NCs
-oMObjectClass:: KoZIhvcUAQEBCw==
-adminDescription: DS replication information detailing the state of the NCs present on a particular server.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-HasInstantiatedNCs
-schemaIDGUID: 11e9a5bc-4517-4049-af9c-51554fb0fc09
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Min-Pwd-Length,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.79
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Min-Pwd-Length
-adminDescription: Min-Pwd-Length
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: minPwdLength
-schemaIDGUID: bf9679c3-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: c7407360-20bf-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Domain-Policy-Object,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.32
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Domain-Policy-Object
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Domain-Policy-Object
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: domainPolicyObject
-schemaIDGUID: bf96795d-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Physical-Delivery-Office-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.19
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 128
-mAPIID: 14873
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Physical-Delivery-Office-Name
-adminDescription: Physical-Delivery-Office-Name
-oMSyntax: 64
-searchFlags: 5
-lDAPDisplayName: physicalDeliveryOfficeName
-schemaIDGUID: bf9679f7-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Volume-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.507
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Volume-Count
-adminDescription: Volume-Count
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: volumeCount
-schemaIDGUID: 34aaa217-b699-11d0-afee-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=msRADIUSServiceType,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1171
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msRADIUSServiceType
-adminDescription: msRADIUSServiceType
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msRADIUSServiceType
-schemaIDGUID: db0c90b6-c1f2-11d1-bbc5-0080c76670c0
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Last-Logon,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.52
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Last-Logon
-adminDescription: Last-Logon
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lastLogon
-schemaIDGUID: bf967997-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Groups-to-Ignore,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.344
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Groups-to-Ignore
-adminDescription: Groups-to-Ignore
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: groupsToIgnore
-schemaIDGUID: eea65904-8ac6-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Schema-Info,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1358
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Schema-Info
-adminDescription: Schema-Info
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: schemaInfo
-schemaIDGUID: f9fb64ae-93b4-11d2-9945-0000f87a57d4
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Domain-Component,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.25
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 255
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Domain-Component
-adminDescription: Domain-Component
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: dc
-schemaIDGUID: 19195a55-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Object-Category,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.782
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Object-Category
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Object-Category
-oMSyntax: 127
-searchFlags: 1
-lDAPDisplayName: objectCategory
-schemaIDGUID: 26d97369-6070-11d1-a9c6-0000f80367c1
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Modify-Time-Stamp,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.18.2
-attributeSyntax: 2.5.5.11
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Modify-Time-Stamp
-adminDescription: Modify-Time-Stamp
-oMSyntax: 24
-searchFlags: 0
-lDAPDisplayName: modifyTimeStamp
-schemaIDGUID: 9a7ad94a-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=Display-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.13
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 256
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Display-Name
-adminDescription: Display-Name
-oMSyntax: 64
-searchFlags: 5
-lDAPDisplayName: displayName
-schemaIDGUID: bf967953-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Admin-Description,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.226
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 1024
-mAPIID: 32842
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Admin-Description
-adminDescription: Admin-Description
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: adminDescription
-schemaIDGUID: bf967919-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-DnsRootAlias,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1719
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 255
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-DnsRootAlias
-adminDescription: ms-DS-DnsRootAlias
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-DnsRootAlias
-schemaIDGUID: 2143acca-eead-4d29-b591-85fa49ce9173
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Creation-Wizard,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.498
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Creation-Wizard
-adminDescription: Creation-Wizard
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: creationWizard
-schemaIDGUID: 4d8601ed-ac85-11d0-afe3-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Has-Partial-Replica-NCs,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.15
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-mAPIID: 32949
-linkID: 74
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Has-Partial-Replica-NCs
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Has-Partial-Replica-NCs
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: hasPartialReplicaNCs
-schemaIDGUID: bf967981-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Control-Access-Rights,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.200
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeLower: 16
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Control-Access-Rights
-adminDescription: Control-Access-Rights
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: controlAccessRights
-schemaIDGUID: 6da8a4fc-0e52-11d0-a286-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=UAS-Compat,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.155
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: UAS-Compat
-adminDescription: UAS-Compat
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: uASCompat
-schemaIDGUID: bf967a61-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: b8119fd0-04f6-4762-ab7a-4986c76b3f9a
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Object-Sid,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.146
-attributeSyntax: 2.5.5.17
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 28
-mAPIID: 32807
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Object-Sid
-adminDescription: Object-Sid
-oMSyntax: 4
-searchFlags: 9
-lDAPDisplayName: objectSid
-schemaIDGUID: bf9679e8-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Title,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.12
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14871
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Title
-adminDescription: Title
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: title
-schemaIDGUID: bf967a55-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Phone-Pager-Other,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.118
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 35950
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Pager-Other
-adminDescription: Phone-Pager-Other
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: otherPager
-schemaIDGUID: f0f8ffa4-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Division,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.261
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 256
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Division
-adminDescription: Division
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: division
-schemaIDGUID: fe6136a0-2073-11d0-a9c2-00aa006c33ed
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Range-Upper,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.35
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 33044
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Range-Upper
-adminDescription: Range-Upper
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: rangeUpper
-schemaIDGUID: bf967a0d-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=OM-Object-Class,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.218
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-mAPIID: 33021
-showInAdvancedViewOnly: TRUE
-adminDisplayName: OM-Object-Class
-adminDescription: OM-Object-Class
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: oMObjectClass
-schemaIDGUID: bf9679ec-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=MAPI-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.49
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 32974
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MAPI-ID
-adminDescription: MAPI-ID
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: mAPIID
-schemaIDGUID: bf9679b7-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=SAM-Account-Type,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.302
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: SAM-Account-Type
-adminDescription: SAM-Account-Type
-oMSyntax: 2
-searchFlags: 1
-lDAPDisplayName: sAMAccountType
-schemaIDGUID: 6e7b626c-64f2-11d0-afd2-00c04fd930c9
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Object-Class-Category,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.370
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 3
-mAPIID: 33014
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Object-Class-Category
-adminDescription: Object-Class-Category
-oMSyntax: 10
-searchFlags: 0
-lDAPDisplayName: objectClassCategory
-schemaIDGUID: bf9679e6-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Default-Hiding-Value,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.518
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Default-Hiding-Value
-adminDescription: Default-Hiding-Value
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: defaultHidingValue
-schemaIDGUID: b7b13116-b82e-11d0-afee-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=msNPAllowDialin,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1119
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msNPAllowDialin
-adminDescription: msNPAllowDialin
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: msNPAllowDialin
-schemaIDGUID: db0c9085-c1f2-11d1-bbc5-0080c76670c0
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Code-Page,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.16
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 65535
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Code-Page
-adminDescription: Code-Page
-oMSyntax: 2
-searchFlags: 16
-lDAPDisplayName: codePage
-schemaIDGUID: bf967938-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Admin-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.150
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Admin-Count
-adminDescription: Admin-Count
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: adminCount
-schemaIDGUID: bf967918-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Schema-Update,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.481
-attributeSyntax: 2.5.5.11
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Schema-Update
-adminDescription: Schema-Update
-oMSyntax: 24
-searchFlags: 0
-lDAPDisplayName: schemaUpdate
-schemaIDGUID: 1e2d06b4-ac8f-11d0-afe3-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Trust-Direction,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.132
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trust-Direction
-adminDescription: Trust-Direction
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: trustDirection
-schemaIDGUID: bf967a5c-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Enabled,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.557
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-mAPIID: 35873
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Enabled
-adminDescription: Enabled
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: Enabled
-schemaIDGUID: a8df73f2-c5ea-11d1-bbcb-0080c76670c0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Locality-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.7
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 128
-mAPIID: 14887
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Locality-Name
-adminDescription: Locality-Name
-oMSyntax: 64
-searchFlags: 17
-lDAPDisplayName: l
-schemaIDGUID: bf9679a2-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=EFSPolicy,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.268
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: EFSPolicy
-adminDescription: EFSPolicy
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: eFSPolicy
-schemaIDGUID: 8e4eb2ec-4712-11d0-a1a0-00c04fd930c9
-attributeSecurityGUID: a29b89fd-c7e8-11d0-9bae-00c04fd92ef5
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Builtin-Modified-Count,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.14
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Builtin-Modified-Count
-adminDescription: Builtin-Modified-Count
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: builtinModifiedCount
-schemaIDGUID: bf967930-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Phone-Office-Other,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.18
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14875
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Office-Other
-adminDescription: Phone-Office-Other
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: otherTelephone
-schemaIDGUID: f0f8ffa5-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Phone-ISDN-Primary,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.649
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-ISDN-Primary
-adminDescription: Phone-ISDN-Primary
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: primaryInternationalISDNNumber
-schemaIDGUID: 0296c11f-40da-11d1-a9c0-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Employee-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.35
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Employee-ID
-adminDescription: Employee-ID
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: employeeID
-schemaIDGUID: bf967962-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Tombstone-Lifetime,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.54
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-mAPIID: 33093
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Tombstone-Lifetime
-adminDescription: Tombstone-Lifetime
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: tombstoneLifetime
-schemaIDGUID: 16c3a860-1273-11d0-a060-00aa006c33ed
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Operating-System-Service-Pack,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.365
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Operating-System-Service-Pack
-adminDescription: Operating-System-Service-Pack
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: operatingSystemServicePack
-schemaIDGUID: 3e978927-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Netboot-Initialization,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.358
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Netboot-Initialization
-adminDescription: Netboot-Initialization
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: netbootInitialization
-schemaIDGUID: 3e978920-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=User-Principal-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.656
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeUpper: 1024
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Principal-Name
-adminDescription: User-Principal-Name
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: userPrincipalName
-schemaIDGUID: 28630ebb-41d5-11d1-a9c1-0000f80367c1
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Service-Principal-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.771
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Service-Principal-Name
-adminDescription: Service-Principal-Name
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: servicePrincipalName
-schemaIDGUID: f3a64788-5306-11d1-a9c5-0000f80367c1
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Other-Login-Workstations,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.91
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 0
-rangeUpper: 1024
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Other-Login-Workstations
-adminDescription: Other-Login-Workstations
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: otherLoginWorkstations
-schemaIDGUID: bf9679f1-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-IIS-FTP-Dir,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1786
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 256
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-IIS-FTP-Dir
-adminDescription: Relative user directory on an FTP Root share.
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msIIS-FTPDir
-schemaIDGUID: 8a5c99e9-2230-46eb-b8e8-e59d712eb9ee
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Site-Affinity,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1443
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Site-Affinity
-adminDescription: ms-DS-Site-Affinity
-oMSyntax: 4
-searchFlags: 1
-lDAPDisplayName: msDS-Site-Affinity
-schemaIDGUID: c17c5602-bcb7-46f0-9656-6370ca884b72
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Max-Storage,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.76
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Max-Storage
-adminDescription: Max-Storage
-oMSyntax: 65
-searchFlags: 16
-lDAPDisplayName: maxStorage
-schemaIDGUID: bf9679bd-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=NT-Security-Descriptor,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.281
-attributeSyntax: 2.5.5.15
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 132096
-mAPIID: 32787
-showInAdvancedViewOnly: TRUE
-adminDisplayName: NT-Security-Descriptor
-adminDescription: NT-Security-Descriptor
-oMSyntax: 66
-searchFlags: 8
-lDAPDisplayName: nTSecurityDescriptor
-schemaIDGUID: bf9679e3-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 26
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Site-Object-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.513
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 47
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Site-Object-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Site-Object-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: siteObjectBL
-schemaIDGUID: 3e10944d-c354-11d0-aff8-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Query-Policy-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.608
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 69
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Query-Policy-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Query-Policy-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: queryPolicyBL
-schemaIDGUID: e1aea404-cd5b-11d0-afff-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Partial-Attribute-Set,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.640
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Partial-Attribute-Set
-adminDescription: Partial-Attribute-Set
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: partialAttributeSet
-schemaIDGUID: 19405b9e-3cfa-11d1-a9c0-0000f80367c1
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Obj-Dist-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.49
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-mAPIID: 32828
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Obj-Dist-Name
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Obj-Dist-Name
-oMSyntax: 127
-searchFlags: 8
-lDAPDisplayName: distinguishedName
-schemaIDGUID: bf9679e4-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Description,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.13
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 0
-rangeUpper: 1024
-mAPIID: 32879
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Description
-adminDescription: Description
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: description
-schemaIDGUID: bf967950-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=ms-DS-Az-Class-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1816
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 40
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Class-ID
-adminDescription: A class ID required by the AzRoles UI on the AzApplication object
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AzClassId
-schemaIDGUID: 013a7277-5c2d-49ef-a7de-b765b36a3f6f
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=RID-Available-Pool,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.370
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: RID-Available-Pool
-adminDescription: RID-Available-Pool
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: rIDAvailablePool
-schemaIDGUID: 66171888-8f3c-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Shell-Property-Pages,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.563
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Shell-Property-Pages
-adminDescription: Shell-Property-Pages
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: shellPropertyPages
-schemaIDGUID: 52458039-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-SPN-Suffixes,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1715
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeUpper: 255
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-SPN-Suffixes
-adminDescription: ms-DS-SPN-Suffixes
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-SPNSuffixes
-schemaIDGUID: 789ee1eb-8c8e-4e4c-8cec-79b31b7617b5
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Private-Key,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.101
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Private-Key
-adminDescription: Private-Key
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: privateKey
-schemaIDGUID: bf967a03-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Facsimile-Telephone-Number,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.23
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14883
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Facsimile-Telephone-Number
-adminDescription: Facsimile-Telephone-Number
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: facsimileTelephoneNumber
-schemaIDGUID: bf967974-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Search-Flags,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.334
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-mAPIID: 33069
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Search-Flags
-adminDescription: Search-Flags
-oMSyntax: 10
-searchFlags: 0
-lDAPDisplayName: searchFlags
-schemaIDGUID: bf967a2d-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Schema-Flags-Ex,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.120
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Schema-Flags-Ex
-adminDescription: Schema-Flags-Ex
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: schemaFlagsEx
-schemaIDGUID: bf967a2b-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Is-Ephemeral,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1212
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Is-Ephemeral
-adminDescription: Is-Ephemeral
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: isEphemeral
-schemaIDGUID: f4c453f0-c5f1-11d1-bbcb-0080c76670c0
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=MSMQ-Nt4-Stub,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.960
-attributeSyntax: 2.5.5.9
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Nt4-Stub
-adminDescription: MSMQ-Nt4-Stub
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: mSMQNt4Stub
-schemaIDGUID: 6f914be6-d57e-11d1-90a2-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-IIS-FTP-Root,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1785
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 256
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-IIS-FTP-Root
-adminDescription: Virtual FTP Root where user home directory resides.
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msIIS-FTPRoot
-schemaIDGUID: 2a7827a4-1483-49a5-9d84-52e3812156b4
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Group-Priority,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.345
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Group-Priority
-adminDescription: Group-Priority
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: groupPriority
-schemaIDGUID: eea65905-8ac6-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Bridgehead-Transport-List,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.819
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 98
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Bridgehead-Transport-List
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Bridgehead-Transport-List
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: bridgeheadTransportList
-schemaIDGUID: d50c2cda-8951-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Extended-Class-Info,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.908
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Extended-Class-Info
-adminDescription: Extended-Class-Info
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: extendedClassInfo
-schemaIDGUID: 9a7ad948-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=Flat-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.511
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Flat-Name
-adminDescription: Flat-Name
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: flatName
-schemaIDGUID: b7b13117-b82e-11d0-afee-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Wbem-Path,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.301
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Wbem-Path
-adminDescription: Wbem-Path
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: wbemPath
-schemaIDGUID: 244b2970-5abd-11d0-afd2-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-NC-Repl-Outbound-Neighbors,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1706
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-NC-Repl-Outbound-Neighbors
-adminDescription: ms-DS-NC-Repl-Outbound-Neighbors
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-NCReplOutboundNeighbors
-schemaIDGUID: 855f2ef5-a1c5-4cc4-ba6d-32522848b61f
-systemOnly: FALSE
-systemFlags: 20
-
-dn: CN=ms-DS-Operations-For-Az-Task-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1809
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2019
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Operations-For-Az-Task-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Back-link from Az-Operation to Az-Task object(s) linking to it
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-OperationsForAzTaskBL
-schemaIDGUID: a637d211-5739-4ed1-89b2-88974548bc59
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Show-In-Advanced-View-Only,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.169
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Show-In-Advanced-View-Only
-adminDescription: Show-In-Advanced-View-Only
-oMSyntax: 1
-searchFlags: 17
-lDAPDisplayName: showInAdvancedViewOnly
-schemaIDGUID: bf967984-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Behavior-Version,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1459
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Behavior-Version
-adminDescription: ms-DS-Behavior-Version
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-Behavior-Version
-schemaIDGUID: d31a8757-2447-4545-8081-3bb610cacbf2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=ms-DS-Has-Master-NCs,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1836
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2036
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Has-Master-NCs
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: A list of the naming contexts contained by a DC. Deprecates hasMasterNCs.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-hasMasterNCs
-schemaIDGUID: ae2de0e2-59d7-4d47-8d47-ed4dfe4357ad
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Pwd-History-Length,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.95
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 0
-rangeUpper: 65535
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Pwd-History-Length
-adminDescription: Pwd-History-Length
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: pwdHistoryLength
-schemaIDGUID: bf967a09-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: c7407360-20bf-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Pek-List,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.865
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Pek-List
-adminDescription: Pek-List
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: pekList
-schemaIDGUID: 07383083-91df-11d1-aebc-0000f80367c1
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Postal-Code,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.17
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 40
-mAPIID: 14890
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Postal-Code
-adminDescription: Postal-Code
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: postalCode
-schemaIDGUID: bf9679fd-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Netboot-Mirror-Data-File,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1241
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Netboot-Mirror-Data-File
-adminDescription: Netboot-Mirror-Data-File
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: netbootMirrorDataFile
-schemaIDGUID: 2df90d85-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Default-Class-Store,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.213
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Default-Class-Store
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Default-Class-Store
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: defaultClassStore
-schemaIDGUID: bf967948-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MSMQ-Site-ID,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.953
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Site-ID
-adminDescription: MSMQ-Site-ID
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: mSMQSiteID
-schemaIDGUID: 9a0dc340-c100-11d1-bbc5-0080c76670c0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Show-In-Address-Book,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.644
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Show-In-Address-Book
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Show-In-Address-Book
-oMSyntax: 127
-searchFlags: 16
-lDAPDisplayName: showInAddressBook
-schemaIDGUID: 3e74f60e-3e73-11d1-a9c0-0000f80367c1
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=When-Created,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.2
-attributeSyntax: 2.5.5.11
-isSingleValued: TRUE
-mAPIID: 12295
-showInAdvancedViewOnly: TRUE
-adminDisplayName: When-Created
-adminDescription: When-Created
-oMSyntax: 24
-searchFlags: 0
-lDAPDisplayName: whenCreated
-schemaIDGUID: bf967a78-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=DS-Core-Propagation-Data,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1357
-attributeSyntax: 2.5.5.11
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DS-Core-Propagation-Data
-adminDescription: DS-Core-Propagation-Data
-oMSyntax: 24
-searchFlags: 0
-lDAPDisplayName: dSCorePropagationData
-schemaIDGUID: d167aa4b-8b08-11d2-9939-0000f87a57d4
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Display-Name-Printable,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.353
-attributeSyntax: 2.5.5.5
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 256
-mAPIID: 14847
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Display-Name-Printable
-adminDescription: Display-Name-Printable
-oMSyntax: 19
-searchFlags: 0
-lDAPDisplayName: displayNamePrintable
-schemaIDGUID: bf967954-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Ipsec-Owners-Reference,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.624
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-Owners-Reference
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Ipsec-Owners-Reference
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: ipsecOwnersReference
-schemaIDGUID: b40ff824-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=State-Or-Province-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.8
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 128
-mAPIID: 14888
-showInAdvancedViewOnly: TRUE
-adminDisplayName: State-Or-Province-Name
-adminDescription: State-Or-Province-Name
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: st
-schemaIDGUID: bf967a39-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Server-Reference,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.515
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-linkID: 94
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Server-Reference
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Server-Reference
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: serverReference
-schemaIDGUID: 26d9736d-6070-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Has-Domain-NCs,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1820
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-rangeLower: 4
-rangeUpper: 4
-linkID: 2026
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Has-Domain-NCs
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: DS replication information detailing the domain NCs present on a particular server.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-HasDomainNCs
-schemaIDGUID: 6f17e347-a842-4498-b8b3-15e007da4fed
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Invocation-Id,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.115
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-mAPIID: 32959
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Invocation-Id
-adminDescription: Invocation-Id
-oMSyntax: 4
-searchFlags: 1
-lDAPDisplayName: invocationId
-schemaIDGUID: bf96798e-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Replica-Source,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.109
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Replica-Source
-adminDescription: Replica-Source
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: replicaSource
-schemaIDGUID: bf967a18-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Phone-Ip-Primary,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.721
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeUpper: 64
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Ip-Primary
-adminDescription: Phone-Ip-Primary
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: ipPhone
-schemaIDGUID: 4d146e4a-48d4-11d1-a9c3-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Phone-Home-Other,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.277
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14895
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Phone-Home-Other
-adminDescription: Phone-Home-Other
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: otherHomePhone
-schemaIDGUID: f0f8ffa2-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Organization-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.10
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 33025
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Organization-Name
-adminDescription: Organization-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: o
-schemaIDGUID: bf9679ef-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Extended-Chars-Allowed,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.380
-attributeSyntax: 2.5.5.8
-isSingleValued: TRUE
-mAPIID: 32935
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Extended-Chars-Allowed
-adminDescription: Extended-Chars-Allowed
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: extendedCharsAllowed
-schemaIDGUID: bf967966-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Operating-System,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.363
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Operating-System
-adminDescription: Operating-System
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: operatingSystem
-schemaIDGUID: 3e978925-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Object-Reference,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1840
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2038
-showInAdvancedViewOnly: FALSE
-adminDisplayName: ms-DS-Object-Reference
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: A link to the object that uses the data stored in the object that contains this attribute.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-ObjectReference
-schemaIDGUID: 638ec2e8-22e7-409c-85d2-11b21bee72de
-systemOnly: FALSE
-
-dn: CN=MSMQ-Interval1,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1308
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Interval1
-adminDescription: MSMQ-Interval1
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: mSMQInterval1
-schemaIDGUID: 8ea825aa-3b7b-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Rid,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.153
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Rid
-adminDescription: Rid
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: rid
-schemaIDGUID: bf967a22-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Profile-Path,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.139
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Profile-Path
-adminDescription: Profile-Path
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: profilePath
-schemaIDGUID: bf967a05-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=msRADIUSCallbackNumber,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1145
-attributeSyntax: 2.5.5.5
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msRADIUSCallbackNumber
-adminDescription: msRADIUSCallbackNumber
-oMSyntax: 22
-searchFlags: 0
-lDAPDisplayName: msRADIUSCallbackNumber
-schemaIDGUID: db0c909c-c1f2-11d1-bbc5-0080c76670c0
-attributeSecurityGUID: 037088f8-0ae1-11d2-b422-00a0c968f939
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ACS-Policy-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.772
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ACS-Policy-Name
-adminDescription: ACS-Policy-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: aCSPolicyName
-schemaIDGUID: 1cb3559a-56d0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Comment,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.81
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 1024
-mAPIID: 12292
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Comment
-adminDescription: Comment
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: info
-schemaIDGUID: bf96793e-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Object-Reference-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1841
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2039
-showInAdvancedViewOnly: FALSE
-adminDisplayName: ms-DS-Object-Reference-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Back link for ms-DS-Object-Reference.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDS-ObjectReferenceBL
-schemaIDGUID: 2b702515-c1f7-4b3b-b148-c0e4c6ceecb4
-systemOnly: TRUE
-systemFlags: 1
-
-dn: CN=When-Changed,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.3
-attributeSyntax: 2.5.5.11
-isSingleValued: TRUE
-mAPIID: 12296
-showInAdvancedViewOnly: TRUE
-adminDisplayName: When-Changed
-adminDescription: When-Changed
-oMSyntax: 24
-searchFlags: 0
-lDAPDisplayName: whenChanged
-schemaIDGUID: bf967a77-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=USN-Last-Obj-Rem,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.121
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-mAPIID: 33110
-showInAdvancedViewOnly: TRUE
-adminDisplayName: USN-Last-Obj-Rem
-adminDescription: USN-Last-Obj-Rem
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: uSNLastObjRem
-schemaIDGUID: bf967a73-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Reps-To,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.83
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Reps-To
-oMObjectClass:: KoZIhvcUAQEBBg==
-adminDescription: Reps-To
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: repsTo
-schemaIDGUID: bf967a1e-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Repl-UpToDate-Vector,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.4
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Repl-UpToDate-Vector
-adminDescription: Repl-UpToDate-Vector
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: replUpToDateVector
-schemaIDGUID: bf967a16-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=netboot-SCP-BL,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.864
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 101
-showInAdvancedViewOnly: TRUE
-adminDisplayName: netboot-SCP-BL
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: netboot-SCP-BL
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: netbootSCPBL
-schemaIDGUID: 07383082-91df-11d1-aebc-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=ms-DS-Mastered-By,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1837
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 2037
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Mastered-By
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Back link for msDS-hasMasterNCs.
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msDs-masteredBy
-schemaIDGUID: 60234769-4819-4615-a1b2-49d2f119acb5
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=ms-COM-PartitionSetLink,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1424
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-linkID: 1041
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-COM-PartitionSetLink
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Link from a Partition to a PartitionSet. Default = adminDisplayName
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: msCOM-PartitionSetLink
-schemaIDGUID: 67f121dc-7d02-4c7d-82f5-9ad4c950ac34
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Common-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.3
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-mAPIID: 14863
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Common-Name
-adminDescription: Common-Name
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: cn
-schemaIDGUID: bf96793f-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=MS-DS-All-Users-Trust-Quota,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1789
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-All-Users-Trust-Quota
-adminDescription: Used to enforce a combined users quota on the total number of Trusted-Domain objects created by using the control access right, "Create inbound Forest trust".
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-AllUsersTrustQuota
-schemaIDGUID: d3aa4a5c-4e03-4810-97aa-2b339e7a434b
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Default-Group,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.480
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Default-Group
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Default-Group
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: defaultGroup
-schemaIDGUID: 720bc4e2-a54a-11d0-afdf-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Ipsec-Filter-Reference,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.629
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-Filter-Reference
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Ipsec-Filter-Reference
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: ipsecFilterReference
-schemaIDGUID: b40ff823-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=User-Comment,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.156
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User-Comment
-adminDescription: User-Comment
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: comment
-schemaIDGUID: bf967a6a-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-ds-Schema-Extensions,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1440
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-ds-Schema-Extensions
-adminDescription: ms-ds-Schema-Extensions
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: msDs-Schema-Extensions
-schemaIDGUID: b39a61be-ed07-4cab-9a4a-4963ed0141e1
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Local-Policy-Flags,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.56
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Local-Policy-Flags
-adminDescription: Local-Policy-Flags
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: localPolicyFlags
-schemaIDGUID: bf96799e-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MSMQ-Interval2,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1309
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Interval2
-adminDescription: MSMQ-Interval2
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: mSMQInterval2
-schemaIDGUID: 99b88f52-3b7b-11d2-90cc-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=SID-History,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.609
-attributeSyntax: 2.5.5.17
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: SID-History
-adminDescription: SID-History
-oMSyntax: 4
-searchFlags: 1
-lDAPDisplayName: sIDHistory
-schemaIDGUID: 17eb4278-d167-11d0-b002-0000f80367c1
-attributeSecurityGUID: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf
-systemOnly: FALSE
-systemFlags: 18
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Unicode-Pwd,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.90
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Unicode-Pwd
-adminDescription: Unicode-Pwd
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: unicodePwd
-schemaIDGUID: bf9679e1-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=msRASSavedFramedIPAddress,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1190
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: msRASSavedFramedIPAddress
-adminDescription: msRASSavedFramedIPAddress
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msRASSavedFramedIPAddress
-schemaIDGUID: db0c90c6-c1f2-11d1-bbc5-0080c76670c0
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MS-DRM-Identity-Certificate,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1843
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 10240
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DRM-Identity-Certificate
-adminDescription: The XrML digital rights management certificates for this user.
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: msDRM-IdentityCertificate
-schemaIDGUID: e85e1204-3434-41ad-9b56-e2901228fff0
-systemFlags: 16
-
-dn: CN=Last-Logoff,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.51
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Last-Logoff
-adminDescription: Last-Logoff
-oMSyntax: 65
-searchFlags: 0
-lDAPDisplayName: lastLogoff
-schemaIDGUID: bf967996-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=DMD-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.598
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 1024
-mAPIID: 35926
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DMD-Name
-adminDescription: DMD-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: dmdName
-schemaIDGUID: 167757b9-47f3-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-Exch-LabeledURI,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.593
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 1024
-mAPIID: 35921
-adminDisplayName: ms-Exch-LabeledURI
-adminDescription: ms-Exch-LabeledURI
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msExchLabeledURI
-schemaIDGUID: 16775820-47f3-11d1-a9c3-0000f80367c1
-
-dn: CN=Reports,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.436
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-mAPIID: 32782
-linkID: 43
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Reports
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Reports
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: directReports
-schemaIDGUID: bf967a1c-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=Repl-Property-Meta-Data,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.3
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Repl-Property-Meta-Data
-adminDescription: Repl-Property-Meta-Data
-oMSyntax: 4
-searchFlags: 8
-lDAPDisplayName: replPropertyMetaData
-schemaIDGUID: 281416c0-1968-11d0-a28f-00aa003049e2
-systemOnly: TRUE
-systemFlags: 27
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=From-Entry,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.910
-attributeSyntax: 2.5.5.8
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: From-Entry
-adminDescription: From-Entry
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: fromEntry
-schemaIDGUID: 9a7ad949-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=Trust-Parent,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.471
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trust-Parent
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Trust-Parent
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: trustParent
-schemaIDGUID: b000ea7a-a086-11d0-afdd-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Ipsec-Data-Type,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.622
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-Data-Type
-adminDescription: Ipsec-Data-Type
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: ipsecDataType
-schemaIDGUID: b40ff81e-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Ipsec-Data,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.623
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-Data
-adminDescription: Ipsec-Data
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: ipsecData
-schemaIDGUID: b40ff81f-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=RID-Manager-Reference,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.368
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: RID-Manager-Reference
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: RID-Manager-Reference
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: rIDManagerReference
-schemaIDGUID: 66171886-8f3c-11d0-afda-00c04fd930c9
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=Lockout-Threshold,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.73
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeUpper: 65535
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Lockout-Threshold
-adminDescription: Lockout-Threshold
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: lockoutThreshold
-schemaIDGUID: bf9679a6-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: c7407360-20bf-11d0-a768-00aa006e0529
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Desktop-Profile,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.346
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Desktop-Profile
-adminDescription: Desktop-Profile
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: desktopProfile
-schemaIDGUID: eea65906-8ac6-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Text-Country,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.131
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 128
-mAPIID: 14886
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Text-Country
-adminDescription: Text-Country
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: co
-schemaIDGUID: f0f8ffa7-1191-11d0-a060-00aa006c33ed
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Teletex-Terminal-Identifier,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.22
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-mAPIID: 33091
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Teletex-Terminal-Identifier
-adminDescription: Teletex-Terminal-Identifier
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: teletexTerminalIdentifier
-schemaIDGUID: bf967a4a-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Telex-Primary,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.648
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 64
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Telex-Primary
-adminDescription: Telex-Primary
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: primaryTelexNumber
-schemaIDGUID: 0296c121-40da-11d1-a9c0-0000f80367c1
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Manager,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.10
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-mAPIID: 32773
-linkID: 42
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Manager
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Manager
-oMSyntax: 127
-searchFlags: 16
-lDAPDisplayName: manager
-schemaIDGUID: bf9679b5-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Physical-Location-Object,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.514
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Physical-Location-Object
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Physical-Location-Object
-oMSyntax: 127
-searchFlags: 1
-lDAPDisplayName: physicalLocationObject
-schemaIDGUID: b7b13119-b82e-11d0-afee-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-Az-Major-Version,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1824
-attributeSyntax: 2.5.5.9
-isSingleValued: TRUE
-rangeLower: 1
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Major-Version
-adminDescription: Major version number for AzRoles
-oMSyntax: 2
-searchFlags: 0
-lDAPDisplayName: msDS-AzMajorVersion
-schemaIDGUID: cfb9adb7-c4b7-4059-9568-1ed9db6b7248
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Sub-Class-Of,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.21
-attributeSyntax: 2.5.5.2
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Sub-Class-Of
-adminDescription: Sub-Class-Of
-oMSyntax: 6
-searchFlags: 8
-lDAPDisplayName: subClassOf
-schemaIDGUID: bf967a3b-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=System-Must-Contain,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.197
-attributeSyntax: 2.5.5.2
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: System-Must-Contain
-adminDescription: System-Must-Contain
-oMSyntax: 6
-searchFlags: 0
-lDAPDisplayName: systemMustContain
-schemaIDGUID: bf967a45-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=roomNumber,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.6
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: FALSE
-adminDisplayName: roomNumber
-adminDescription: The room number of an object.
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: roomNumber
-schemaIDGUID: 81d7f8c2-e327-4a0d-91c6-b42d4009115f
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Employee-Type,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.613
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 256
-mAPIID: 35945
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Employee-Type
-adminDescription: Employee-Type
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: employeeType
-schemaIDGUID: a8df73f0-c5ea-11d1-bbcb-0080c76670c0
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Current-Value,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.27
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Current-Value
-adminDescription: Current-Value
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: currentValue
-schemaIDGUID: bf967947-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=DIT-Content-Rules,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.21.2
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DIT-Content-Rules
-adminDescription: DIT-Content-Rules
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: dITContentRules
-schemaIDGUID: 9a7ad946-ca53-11d1-bbd0-0080c76670c0
-systemOnly: TRUE
-systemFlags: 134217748
-
-dn: CN=GPC-Machine-Extension-Names,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1348
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: GPC-Machine-Extension-Names
-adminDescription: GPC-Machine-Extension-Names
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: gPCMachineExtensionNames
-schemaIDGUID: 32ff8ecc-783f-11d2-9916-0000f87a57d4
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=USN-Created,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.19
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-mAPIID: 33108
-showInAdvancedViewOnly: TRUE
-adminDisplayName: USN-Created
-adminDescription: USN-Created
-oMSyntax: 65
-searchFlags: 9
-lDAPDisplayName: uSNCreated
-schemaIDGUID: bf967a70-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Sub-Refs,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.7
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-mAPIID: 33083
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Sub-Refs
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Sub-Refs
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: subRefs
-schemaIDGUID: bf967a3c-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Proxy-Addresses,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.210
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 1123
-mAPIID: 32783
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Proxy-Addresses
-adminDescription: Proxy-Addresses
-oMSyntax: 64
-searchFlags: 5
-lDAPDisplayName: proxyAddresses
-schemaIDGUID: bf967a06-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: e48d0154-bcf8-11d1-8702-00c04fb96050
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Superior-DNS-Root,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.532
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Superior-DNS-Root
-adminDescription: Superior-DNS-Root
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: superiorDNSRoot
-schemaIDGUID: 5245801d-ca6a-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Root-Trust,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.674
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Root-Trust
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Root-Trust
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: rootTrust
-schemaIDGUID: 7bfdcb80-4807-11d1-a9c3-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Shell-Context-Menu,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.615
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Shell-Context-Menu
-adminDescription: Shell-Context-Menu
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: shellContextMenu
-schemaIDGUID: 553fd039-f32e-11d0-b0bc-00c04fd8dca6
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Class-Display-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.610
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Class-Display-Name
-adminDescription: Class-Display-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: classDisplayName
-schemaIDGUID: 548e1c22-dea6-11d0-b010-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Ipsec-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.620
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-Name
-adminDescription: Ipsec-Name
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: ipsecName
-schemaIDGUID: b40ff81c-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=CA-Certificate,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.37
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeLower: 1
-rangeUpper: 32768
-mAPIID: 32771
-showInAdvancedViewOnly: TRUE
-adminDisplayName: CA-Certificate
-adminDescription: CA-Certificate
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: cACertificate
-schemaIDGUID: bf967932-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Ipsec-Negotiation-Policy-Reference,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.628
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-Negotiation-Policy-Reference
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Ipsec-Negotiation-Policy-Reference
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: ipsecNegotiationPolicyReference
-schemaIDGUID: b40ff822-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MHS-OR-Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.650
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MHS-OR-Address
-adminDescription: MHS-OR-Address
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: mhsORAddress
-schemaIDGUID: 0296c122-40da-11d1-a9c0-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Nt-Pwd-History,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.94
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Nt-Pwd-History
-adminDescription: Nt-Pwd-History
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: ntPwdHistory
-schemaIDGUID: bf9679e2-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=SMTP-Mail-Address,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.786
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: SMTP-Mail-Address
-adminDescription: SMTP-Mail-Address
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: mailAddress
-schemaIDGUID: 26d9736f-6070-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Foreign-Identifier,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.356
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Foreign-Identifier
-adminDescription: Foreign-Identifier
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: foreignIdentifier
-schemaIDGUID: 3e97891e-8c01-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=USN-Changed,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.120
-attributeSyntax: 2.5.5.16
-isSingleValued: TRUE
-mAPIID: 32809
-showInAdvancedViewOnly: TRUE
-adminDisplayName: USN-Changed
-adminDescription: USN-Changed
-oMSyntax: 65
-searchFlags: 9
-lDAPDisplayName: uSNChanged
-schemaIDGUID: bf967a6f-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Reps-From,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.91
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Reps-From
-oMObjectClass:: KoZIhvcUAQEBBg==
-adminDescription: Reps-From
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: repsFrom
-schemaIDGUID: bf967a1d-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 19
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=Other-Well-Known-Objects,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1359
-attributeSyntax: 2.5.5.7
-isSingleValued: FALSE
-rangeLower: 16
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Other-Well-Known-Objects
-oMObjectClass:: KoZIhvcUAQEBCw==
-adminDescription: Other-Well-Known-Objects
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: otherWellKnownObjects
-schemaIDGUID: 1ea64e5d-ac0f-11d2-90df-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=ms-DS-NC-Repl-Cursors,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1704
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-NC-Repl-Cursors
-adminDescription: ms-DS-NC-Repl-Cursors
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-NCReplCursors
-schemaIDGUID: 8a167ce4-f9e8-47eb-8d78-f7fe80abb2cc
-systemOnly: FALSE
-systemFlags: 20
-
-dn: CN=Managed-Objects,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.654
-attributeSyntax: 2.5.5.1
-isSingleValued: FALSE
-mAPIID: 32804
-linkID: 73
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Managed-Objects
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: Managed-Objects
-oMSyntax: 127
-searchFlags: 0
-lDAPDisplayName: managedObjects
-schemaIDGUID: 0296c124-40da-11d1-a9c0-0000f80367c1
-systemOnly: TRUE
-systemFlags: 17
-
-dn: CN=ms-DS-Allowed-DNS-Suffixes,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1710
-attributeSyntax: 2.5.5.12
-isSingleValued: FALSE
-rangeLower: 0
-rangeUpper: 2048
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Allowed-DNS-Suffixes
-adminDescription: Allowed suffixes for dNSHostName on computer
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: msDS-AllowedDNSSuffixes
-schemaIDGUID: 8469441b-9ac4-4e45-8205-bd219dbf672d
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=NC-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.2.16
-attributeSyntax: 2.5.5.1
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: NC-Name
-oMObjectClass:: KwwCh3McAIVK
-adminDescription: NC-Name
-oMSyntax: 127
-searchFlags: 8
-lDAPDisplayName: nCName
-schemaIDGUID: bf9679d6-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemFlags: 16
-
-dn: CN=NETBIOS-Name,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.87
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-rangeLower: 1
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: NETBIOS-Name
-adminDescription: NETBIOS-Name
-oMSyntax: 64
-searchFlags: 1
-lDAPDisplayName: nETBIOSName
-schemaIDGUID: bf9679d8-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Query-Filter,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1355
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Query-Filter
-adminDescription: Query-Filter
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: queryFilter
-schemaIDGUID: cbf70a26-7e78-11d2-9921-0000f87a57d4
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Preferred-Delivery-Method,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 2.5.4.28
-attributeSyntax: 2.5.5.9
-isSingleValued: FALSE
-mAPIID: 33037
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Preferred-Delivery-Method
-adminDescription: Preferred-Delivery-Method
-oMSyntax: 10
-searchFlags: 0
-lDAPDisplayName: preferredDeliveryMethod
-schemaIDGUID: bf9679fe-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MSMQ-Site-Foreign,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.961
-attributeSyntax: 2.5.5.8
-isSingleValued: FALSE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Site-Foreign
-adminDescription: MSMQ-Site-Foreign
-oMSyntax: 1
-searchFlags: 0
-lDAPDisplayName: mSMQSiteForeign
-schemaIDGUID: fd129d8a-d57e-11d1-90a2-00c04fd91ab1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=audio,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 0.9.2342.19200300.100.1.55
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeUpper: 250000
-showInAdvancedViewOnly: FALSE
-adminDisplayName: audio
-adminDescription: The Audio attribute type allows the storing of sounds in the Directory.
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: audio
-schemaIDGUID: d0e1d224-e1a0-42ce-a2da-793ba5244f35
-systemOnly: FALSE
-systemFlags: 0
-
-dn: CN=Script-Path,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.62
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Script-Path
-adminDescription: Script-Path
-oMSyntax: 64
-searchFlags: 16
-lDAPDisplayName: scriptPath
-schemaIDGUID: bf9679a8-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=MSMQ-Digests,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.948
-attributeSyntax: 2.5.5.10
-isSingleValued: FALSE
-rangeLower: 16
-rangeUpper: 16
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MSMQ-Digests
-adminDescription: MSMQ-Digests
-oMSyntax: 4
-searchFlags: 1
-lDAPDisplayName: mSMQDigests
-schemaIDGUID: 9a0dc33c-c100-11d1-bbc5-0080c76670c0
-attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-isMemberOfPartialAttributeSet: TRUE
-
-dn: CN=ms-DS-Cached-Membership,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.1441
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: ms-DS-Cached-Membership
-adminDescription: ms-DS-Cached-Membership
-oMSyntax: 4
-searchFlags: 0
-lDAPDisplayName: msDS-Cached-Membership
-schemaIDGUID: 69cab008-cdd4-4bc9-bab8-0ff37efe1b20
-systemOnly: FALSE
-systemFlags: 17
-
-dn: CN=Logon-Hours,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.64
-attributeSyntax: 2.5.5.10
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Logon-Hours
-adminDescription: Logon-Hours
-oMSyntax: 4
-searchFlags: 16
-lDAPDisplayName: logonHours
-schemaIDGUID: bf9679ab-0de6-11d0-a285-00aa003049e2
-attributeSecurityGUID: 5f202010-79a5-11d0-9020-00c04fc2d4cf
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=GPC-File-Sys-Path,${SCHEMADN}
-objectClass: top
-objectClass: attributeSchema
-attributeID: 1.2.840.113556.1.4.894
-attributeSyntax: 2.5.5.12
-isSingleValued: TRUE
-showInAdvancedViewOnly: TRUE
-adminDisplayName: GPC-File-Sys-Path
-adminDescription: GPC-File-Sys-Path
-oMSyntax: 64
-searchFlags: 0
-lDAPDisplayName: gPCFileSysPath
-schemaIDGUID: f30e3bc1-9ff0-11d1-b603-0000f80367c1
-systemOnly: FALSE
-systemFlags: 16
-
-dn: CN=Top,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 2.5.6.0
-mayContain: msDS-ObjectReferenceBL
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Top
-adminDescription: Top
-objectClassCategory: 2
-lDAPDisplayName: top
-schemaIDGUID: bf967ab7-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemPossSuperiors: lostAndFound
-systemMayContain: url
-systemMayContain: wWWHomePage
-systemMayContain: whenCreated
-systemMayContain: whenChanged
-systemMayContain: wellKnownObjects
-systemMayContain: wbemPath
-systemMayContain: uSNSource
-systemMayContain: uSNLastObjRem
-systemMayContain: USNIntersite
-systemMayContain: uSNDSALastObjRemoved
-systemMayContain: uSNCreated
-systemMayContain: uSNChanged
-systemMayContain: systemFlags
-systemMayContain: subSchemaSubEntry
-systemMayContain: subRefs
-systemMayContain: structuralObjectClass
-systemMayContain: siteObjectBL
-systemMayContain: serverReferenceBL
-systemMayContain: sDRightsEffective
-systemMayContain: revision
-systemMayContain: repsTo
-systemMayContain: repsFrom
-systemMayContain: directReports
-systemMayContain: replUpToDateVector
-systemMayContain: replPropertyMetaData
-systemMayContain: name
-systemMayContain: queryPolicyBL
-systemMayContain: proxyAddresses
-systemMayContain: proxiedObjectName
-systemMayContain: possibleInferiors
-systemMayContain: partialAttributeSet
-systemMayContain: partialAttributeDeletionList
-systemMayContain: otherWellKnownObjects
-systemMayContain: objectVersion
-systemMayContain: objectGUID
-systemMayContain: distinguishedName
-systemMayContain: nonSecurityMemberBL
-systemMayContain: netbootSCPBL
-systemMayContain: ownerBL
-systemMayContain: msDS-ReplValueMetaData
-systemMayContain: msDS-ReplAttributeMetaData
-systemMayContain: msDS-NonMembersBL
-systemMayContain: msDS-NCReplOutboundNeighbors
-systemMayContain: msDS-NCReplInboundNeighbors
-systemMayContain: msDS-NCReplCursors
-systemMayContain: msDS-TasksForAzRoleBL
-systemMayContain: msDS-TasksForAzTaskBL
-systemMayContain: msDS-OperationsForAzRoleBL
-systemMayContain: msDS-OperationsForAzTaskBL
-systemMayContain: msDS-MembersForAzRoleBL
-systemMayContain: msDs-masteredBy
-systemMayContain: mS-DS-ConsistencyGuid
-systemMayContain: mS-DS-ConsistencyChildCount
-systemMayContain: msDS-Approx-Immed-Subordinates
-systemMayContain: msCOM-PartitionSetLink
-systemMayContain: msCOM-UserLink
-systemMayContain: modifyTimeStamp
-systemMayContain: masteredBy
-systemMayContain: managedObjects
-systemMayContain: lastKnownParent
-systemMayContain: isPrivilegeHolder
-systemMayContain: memberOf
-systemMayContain: isDeleted
-systemMayContain: isCriticalSystemObject
-systemMayContain: showInAdvancedViewOnly
-systemMayContain: fSMORoleOwner
-systemMayContain: fRSMemberReferenceBL
-systemMayContain: frsComputerReferenceBL
-systemMayContain: fromEntry
-systemMayContain: flags
-systemMayContain: extensionName
-systemMayContain: dSASignature
-systemMayContain: dSCorePropagationData
-systemMayContain: displayNamePrintable
-systemMayContain: displayName
-systemMayContain: description
-systemMayContain: createTimeStamp
-systemMayContain: cn
-systemMayContain: canonicalName
-systemMayContain: bridgeheadServerListBL
-systemMayContain: allowedChildClassesEffective
-systemMayContain: allowedChildClasses
-systemMayContain: allowedAttributesEffective
-systemMayContain: allowedAttributes
-systemMayContain: adminDisplayName
-systemMayContain: adminDescription
-systemMustContain: objectClass
-systemMustContain: objectCategory
-systemMustContain: nTSecurityDescriptor
-systemMustContain: instanceType
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Top,${SCHEMADN}
-
-dn: CN=Ipsec-ISAKMP-Policy,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: ipsecBase
-governsID: 1.2.840.113556.1.5.120
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-ISAKMP-Policy
-adminDescription: Ipsec-ISAKMP-Policy
-objectClassCategory: 1
-lDAPDisplayName: ipsecISAKMPPolicy
-schemaIDGUID: b40ff828-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: container
-systemPossSuperiors: computer
-systemPossSuperiors: organizationalUnit
-defaultSecurityDescriptor: D:
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Ipsec-ISAKMP-Policy,${SCHEMADN}
-
-dn: CN=Domain-DNS,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: domain
-governsID: 1.2.840.113556.1.5.67
-possibleInferiors: group
-possibleInferiors: lostAndFound
-possibleInferiors: builtinDomain
-possibleInferiors: computer
-possibleInferiors: user
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-possibleInferiors: organization
-possibleInferiors: domainDNS
-possibleInferiors: locality
-possibleInferiors: msDS-AzAdminManager
-possibleInferiors: country
-possibleInferiors: organizationalUnit
-rDNAttID: dc
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Domain-DNS
-adminDescription: Domain-DNS
-objectClassCategory: 1
-lDAPDisplayName: domainDNS
-schemaIDGUID: 19195a5b-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-systemPossSuperiors: domainDNS
-systemMayContain: msDS-Behavior-Version
-systemMayContain: msDS-AllowedDNSSuffixes
-systemMayContain: managedBy
-systemAuxiliaryClass: samDomain
-defaultSecurityDescriptor: D:(A;;RP;;;WD)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCRCWDWOSW;;;DA)(A;CI;RPWPCRLCLOCCRCWDWOSDSW;;;BA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(A;CI;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;EA)(A;CI;LC;;;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(A;;RPRC;;;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(A;;LCRPLORC;;;ED)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RPLCLORC;;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)S:(AU;SA;WDWOWP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
-systemFlags: 16
-defaultHidingValue: FALSE
-defaultObjectCategory: CN=Domain-DNS,${SCHEMADN}
-
-dn: CN=ms-DS-Az-Application,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.235
-possibleInferiors: group
-possibleInferiors: container
-possibleInferiors: msDS-AzScope
-possibleInferiors: groupPolicyContainer
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Application
-adminDescription: Defines an installed instance of an application bound to a particular policy store.
-objectClassCategory: 1
-lDAPDisplayName: msDS-AzApplication
-schemaIDGUID: ddf8de9b-cba5-4e12-842e-28d8b66f75ec
-systemOnly: FALSE
-systemPossSuperiors: msDS-AzAdminManager
-systemMayContain: msDS-AzApplicationData
-systemMayContain: msDS-AzGenerateAudits
-systemMayContain: msDS-AzApplicationVersion
-systemMayContain: msDS-AzClassId
-systemMayContain: msDS-AzApplicationName
-systemMayContain: description
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=ms-DS-Az-Application,${SCHEMADN}
-
-dn: CN=Builtin-Domain,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.4
-possibleInferiors: group
-possibleInferiors: computer
-possibleInferiors: user
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Builtin-Domain
-adminDescription: Builtin-Domain
-objectClassCategory: 1
-lDAPDisplayName: builtinDomain
-schemaIDGUID: bf967a81-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: domainDNS
-systemAuxiliaryClass: samDomainBase
-defaultSecurityDescriptor: D:(A;;RPLCLORC;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Builtin-Domain,${SCHEMADN}
-
-dn: CN=Infrastructure-Update,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.175
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Infrastructure-Update
-adminDescription: Infrastructure-Update
-objectClassCategory: 1
-lDAPDisplayName: infrastructureUpdate
-schemaIDGUID: 2df90d89-009f-11d2-aa4c-00c04fd7d83a
-systemOnly: TRUE
-systemPossSuperiors: infrastructureUpdate
-systemPossSuperiors: domain
-systemMayContain: dNReferenceUpdate
-defaultSecurityDescriptor: D:(A;;GA;;;SY)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Infrastructure-Update,${SCHEMADN}
-
-dn: CN=Configuration,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.12
-possibleInferiors: lostAndFound
-possibleInferiors: sitesContainer
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Configuration
-adminDescription: Configuration
-objectClassCategory: 1
-lDAPDisplayName: configuration
-schemaIDGUID: bf967a87-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemPossSuperiors: domainDNS
-systemMayContain: gPOptions
-systemMayContain: gPLink
-systemMustContain: cn
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Configuration,${SCHEMADN}
-
-dn: CN=Cross-Ref,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.3.11
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Cross-Ref
-adminDescription: Cross-Ref
-objectClassCategory: 1
-lDAPDisplayName: crossRef
-schemaIDGUID: bf967a8d-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: crossRefContainer
-systemMayContain: trustParent
-systemMayContain: superiorDNSRoot
-systemMayContain: rootTrust
-systemMayContain: nTMixedDomain
-systemMayContain: nETBIOSName
-systemMayContain: Enabled
-systemMayContain: msDS-SDReferenceDomain
-systemMayContain: msDS-Replication-Notify-Subsequent-DSA-Delay
-systemMayContain: msDS-Replication-Notify-First-DSA-Delay
-systemMayContain: msDS-NC-Replica-Locations
-systemMayContain: msDS-DnsRootAlias
-systemMayContain: msDS-Behavior-Version
-systemMustContain: nCName
-systemMustContain: dnsRoot
-systemMustContain: cn
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Cross-Ref,${SCHEMADN}
-
-dn: CN=RID-Manager,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.83
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: RID-Manager
-adminDescription: RID-Manager
-objectClassCategory: 1
-lDAPDisplayName: rIDManager
-schemaIDGUID: 6617188d-8f3c-11d0-afda-00c04fd930c9
-systemOnly: TRUE
-systemPossSuperiors: container
-systemMustContain: rIDAvailablePool
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)S:(AU;SA;CRWP;;;WD)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=RID-Manager,${SCHEMADN}
-
-dn: CN=Display-Specifier,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.84
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Display-Specifier
-adminDescription: Display-Specifier
-objectClassCategory: 1
-lDAPDisplayName: displaySpecifier
-schemaIDGUID: e0fa1e8a-9b45-11d0-afdd-00c04fd930c9
-systemOnly: FALSE
-systemPossSuperiors: container
-systemMayContain: treatAsLeaf
-systemMayContain: shellPropertyPages
-systemMayContain: shellContextMenu
-systemMayContain: scopeFlags
-systemMayContain: queryFilter
-systemMayContain: iconPath
-systemMayContain: extraColumns
-systemMayContain: creationWizard
-systemMayContain: createWizardExt
-systemMayContain: createDialog
-systemMayContain: contextMenu
-systemMayContain: classDisplayName
-systemMayContain: attributeDisplayNames
-systemMayContain: adminPropertyPages
-systemMayContain: adminMultiselectPropertyPages
-systemMayContain: adminContextMenu
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Display-Specifier,${SCHEMADN}
-
-dn: CN=Ipsec-Base,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.7000.56
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-Base
-adminDescription: Ipsec-Base
-objectClassCategory: 2
-lDAPDisplayName: ipsecBase
-schemaIDGUID: b40ff825-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemMayContain: ipsecOwnersReference
-systemMayContain: ipsecName
-systemMayContain: ipsecID
-systemMayContain: ipsecDataType
-systemMayContain: ipsecData
-defaultSecurityDescriptor: D:
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Ipsec-Base,${SCHEMADN}
-
-dn: CN=ms-DS-Az-Scope,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.237
-possibleInferiors: group
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Scope
-adminDescription: Describes a set of objects managed by an application
-objectClassCategory: 1
-lDAPDisplayName: msDS-AzScope
-schemaIDGUID: 4feae054-ce55-47bb-860e-5b12063a51de
-systemOnly: FALSE
-systemPossSuperiors: msDS-AzApplication
-systemMayContain: msDS-AzApplicationData
-systemMayContain: description
-systemMustContain: msDS-AzScopeName
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=ms-DS-Az-Scope,${SCHEMADN}
-
-dn: CN=Locality,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 2.5.6.3
-possibleInferiors: organization
-possibleInferiors: locality
-rDNAttID: l
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Locality
-adminDescription: Locality
-objectClassCategory: 1
-lDAPDisplayName: locality
-schemaIDGUID: bf967aa0-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: domainDNS
-systemPossSuperiors: country
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: organization
-systemPossSuperiors: locality
-systemMayContain: street
-systemMayContain: st
-systemMayContain: seeAlso
-systemMayContain: searchGuide
-systemMustContain: l
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: FALSE
-defaultObjectCategory: CN=Locality,${SCHEMADN}
-
-dn: CN=Cross-Ref-Container,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.7000.53
-possibleInferiors: crossRef
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Cross-Ref-Container
-adminDescription: Cross-Ref-Container
-objectClassCategory: 1
-lDAPDisplayName: crossRefContainer
-schemaIDGUID: ef9e60e0-56f7-11d1-a9c6-0000f80367c1
-systemOnly: TRUE
-systemPossSuperiors: configuration
-systemMayContain: msDS-SPNSuffixes
-systemMayContain: uPNSuffixes
-systemMayContain: msDS-UpdateScript
-systemMayContain: msDS-ExecuteScriptPassword
-systemMayContain: msDS-Behavior-Version
-defaultSecurityDescriptor: D:(A;;GA;;;SY)
-systemFlags: 16
-defaultHidingValue: FALSE
-defaultObjectCategory: CN=Cross-Ref-Container,${SCHEMADN}
-
-dn: CN=Query-Policy,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.106
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Query-Policy
-adminDescription: Query-Policy
-objectClassCategory: 1
-lDAPDisplayName: queryPolicy
-schemaIDGUID: 83cc7075-cca7-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: container
-systemMayContain: lDAPIPDenyList
-systemMayContain: lDAPAdminLimits
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Query-Policy,${SCHEMADN}
-
-dn: CN=Subnet-Container,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.95
-possibleInferiors: subnet
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Subnet-Container
-adminDescription: Subnet-Container
-objectClassCategory: 1
-lDAPDisplayName: subnetContainer
-schemaIDGUID: b7b13125-b82e-11d0-afee-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: sitesContainer
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Subnet-Container,${SCHEMADN}
-
-dn: CN=NTDS-DSA,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: applicationSettings
-governsID: 1.2.840.113556.1.5.7000.47
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: NTDS-DSA
-adminDescription: NTDS-DSA
-objectClassCategory: 1
-lDAPDisplayName: nTDSDSA
-schemaIDGUID: f0f8ffab-1191-11d0-a060-00aa006c33ed
-systemOnly: TRUE
-systemPossSuperiors: organization
-systemPossSuperiors: server
-systemMayContain: serverReference
-systemMayContain: msDS-RetiredReplNCSignatures
-systemMayContain: retiredReplDSASignatures
-systemMayContain: queryPolicyObject
-systemMayContain: options
-systemMayContain: networkAddress
-systemMayContain: msDS-ReplicationEpoch
-systemMayContain: msDS-HasInstantiatedNCs
-systemMayContain: msDS-hasMasterNCs
-systemMayContain: msDS-HasDomainNCs
-systemMayContain: msDS-Behavior-Version
-systemMayContain: managedBy
-systemMayContain: lastBackupRestorationTime
-systemMayContain: invocationId
-systemMayContain: hasPartialReplicaNCs
-systemMayContain: hasMasterNCs
-systemMayContain: fRSRootPath
-systemMayContain: dMDLocation
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=NTDS-DSA,${SCHEMADN}
-
-dn: CN=Sam-Domain,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.3
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Sam-Domain
-adminDescription: Sam-Domain
-objectClassCategory: 3
-lDAPDisplayName: samDomain
-schemaIDGUID: bf967a90-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemMayContain: treeName
-systemMayContain: rIDManagerReference
-systemMayContain: replicaSource
-systemMayContain: pwdProperties
-systemMayContain: pwdHistoryLength
-systemMayContain: privateKey
-systemMayContain: pekList
-systemMayContain: pekKeyChangeInterval
-systemMayContain: nTMixedDomain
-systemMayContain: nextRid
-systemMayContain: nETBIOSName
-systemMayContain: msDS-PerUserTrustTombstonesQuota
-systemMayContain: msDS-PerUserTrustQuota
-systemMayContain: ms-DS-MachineAccountQuota
-systemMayContain: msDS-LogonTimeSyncInterval
-systemMayContain: msDS-AllUsersTrustQuota
-systemMayContain: modifiedCountAtLastProm
-systemMayContain: minPwdLength
-systemMayContain: minPwdAge
-systemMayContain: maxPwdAge
-systemMayContain: lSAModifiedCount
-systemMayContain: lSACreationTime
-systemMayContain: lockoutThreshold
-systemMayContain: lockoutDuration
-systemMayContain: lockOutObservationWindow
-systemMayContain: gPOptions
-systemMayContain: gPLink
-systemMayContain: eFSPolicy
-systemMayContain: domainPolicyObject
-systemMayContain: desktopProfile
-systemMayContain: description
-systemMayContain: defaultLocalPolicyObject
-systemMayContain: creationTime
-systemMayContain: controlAccessRights
-systemMayContain: cACertificate
-systemMayContain: builtinModifiedCount
-systemMayContain: builtinCreationTime
-systemMayContain: auditingPolicy
-systemAuxiliaryClass: samDomainBase
-defaultSecurityDescriptor: D:(A;;RP;;;WD)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCRCWDWOSW;;;DA)(A;CI;RPWPCRLCLOCCRCWDWOSDSW;;;BA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(A;CI;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;EA)(A;CI;LC;;;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(A;;RPRC;;;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(A;;LCRPLORC;;;ED)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RPLCLORC;;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)S:(AU;SA;WDWOWP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Sam-Domain,${SCHEMADN}
-
-dn: CN=Sam-Domain-Base,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.2
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Sam-Domain-Base
-adminDescription: Sam-Domain-Base
-objectClassCategory: 3
-lDAPDisplayName: samDomainBase
-schemaIDGUID: bf967a91-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemMayContain: uASCompat
-systemMayContain: serverState
-systemMayContain: serverRole
-systemMayContain: revision
-systemMayContain: pwdProperties
-systemMayContain: pwdHistoryLength
-systemMayContain: oEMInformation
-systemMayContain: objectSid
-systemMayContain: nTSecurityDescriptor
-systemMayContain: nextRid
-systemMayContain: modifiedCountAtLastProm
-systemMayContain: modifiedCount
-systemMayContain: minPwdLength
-systemMayContain: minPwdAge
-systemMayContain: maxPwdAge
-systemMayContain: lockoutThreshold
-systemMayContain: lockoutDuration
-systemMayContain: lockOutObservationWindow
-systemMayContain: forceLogoff
-systemMayContain: domainReplica
-systemMayContain: creationTime
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Sam-Domain-Base,${SCHEMADN}
-
-dn: CN=Country,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 2.5.6.2
-possibleInferiors: organization
-possibleInferiors: locality
-possibleInferiors: organizationalUnit
-rDNAttID: c
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Country
-adminDescription: Country
-objectClassCategory: 0
-lDAPDisplayName: country
-schemaIDGUID: bf967a8c-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: domainDNS
-systemPossSuperiors: organization
-systemMayContain: co
-systemMayContain: searchGuide
-systemMustContain: c
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Country,${SCHEMADN}
-
-dn: CN=Organizational-Unit,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 2.5.6.5
-possibleInferiors: group
-possibleInferiors: computer
-possibleInferiors: user
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-possibleInferiors: person
-possibleInferiors: ipsecNFA
-possibleInferiors: locality
-possibleInferiors: msDS-AzAdminManager
-possibleInferiors: organizationalUnit
-possibleInferiors: ipsecPolicy
-possibleInferiors: organizationalPerson
-possibleInferiors: ipsecISAKMPPolicy
-rDNAttID: ou
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Organizational-Unit
-adminDescription: Organizational-Unit
-objectClassCategory: 1
-lDAPDisplayName: organizationalUnit
-schemaIDGUID: bf967aa5-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: country
-systemPossSuperiors: organization
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: domainDNS
-systemMayContain: x121Address
-systemMayContain: userPassword
-systemMayContain: uPNSuffixes
-systemMayContain: co
-systemMayContain: telexNumber
-systemMayContain: teletexTerminalIdentifier
-systemMayContain: telephoneNumber
-systemMayContain: street
-systemMayContain: st
-systemMayContain: seeAlso
-systemMayContain: searchGuide
-systemMayContain: registeredAddress
-systemMayContain: preferredDeliveryMethod
-systemMayContain: postalCode
-systemMayContain: postalAddress
-systemMayContain: postOfficeBox
-systemMayContain: physicalDeliveryOfficeName
-systemMayContain: msCOM-UserPartitionSetLink
-systemMayContain: managedBy
-systemMayContain: thumbnailLogo
-systemMayContain: l
-systemMayContain: internationalISDNNumber
-systemMayContain: gPOptions
-systemMayContain: gPLink
-systemMayContain: facsimileTelephoneNumber
-systemMayContain: destinationIndicator
-systemMayContain: desktopProfile
-systemMayContain: defaultGroup
-systemMayContain: countryCode
-systemMayContain: c
-systemMayContain: businessCategory
-systemMustContain: ou
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(OA;;CCDC;bf967a86-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967aba-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967a9c-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)(A;;RPLCLORC;;;AU)(A;;LCRPLORC;;;ED)(OA;;CCDC;4828CC14-1437-45bc-9B07-AD6F015E5F28;;AO)
-systemFlags: 16
-defaultHidingValue: FALSE
-defaultObjectCategory: CN=Organizational-Unit,${SCHEMADN}
-
-dn: CN=Ipsec-NFA,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: ipsecBase
-governsID: 1.2.840.113556.1.5.121
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-NFA
-adminDescription: Ipsec-NFA
-objectClassCategory: 1
-lDAPDisplayName: ipsecNFA
-schemaIDGUID: b40ff829-427a-11d1-a9c2-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: container
-systemPossSuperiors: computer
-systemPossSuperiors: organizationalUnit
-systemMayContain: ipsecNegotiationPolicyReference
-systemMayContain: ipsecFilterReference
-defaultSecurityDescriptor: D:
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Ipsec-NFA,${SCHEMADN}
-
-dn: CN=Lost-And-Found,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.139
-possibleInferiors: group
-possibleInferiors: msDS-AzApplication
-possibleInferiors: lostAndFound
-possibleInferiors: trustedDomain
-possibleInferiors: subnetContainer
-possibleInferiors: builtinDomain
-possibleInferiors: sitesContainer
-possibleInferiors: serversContainer
-possibleInferiors: attributeSchema
-possibleInferiors: classSchema
-possibleInferiors: computer
-possibleInferiors: foreignSecurityPrincipal
-possibleInferiors: user
-possibleInferiors: container
-possibleInferiors: msDS-AzScope
-possibleInferiors: groupPolicyContainer
-possibleInferiors: site
-possibleInferiors: organization
-possibleInferiors: domainDNS
-possibleInferiors: person
-possibleInferiors: ipsecNFA
-possibleInferiors: queryPolicy
-possibleInferiors: locality
-possibleInferiors: subnet
-possibleInferiors: msDS-AzAdminManager
-possibleInferiors: crossRef
-possibleInferiors: displaySpecifier
-possibleInferiors: nTDSService
-possibleInferiors: country
-possibleInferiors: organizationalUnit
-possibleInferiors: secret
-possibleInferiors: ipsecPolicy
-possibleInferiors: organizationalPerson
-possibleInferiors: server
-possibleInferiors: ipsecISAKMPPolicy
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Lost-And-Found
-adminDescription: Lost-And-Found
-objectClassCategory: 1
-lDAPDisplayName: lostAndFound
-schemaIDGUID: 52ab8671-5709-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: configuration
-systemPossSuperiors: domainDNS
-systemPossSuperiors: dMD
-systemMayContain: moveTreeState
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Lost-And-Found,${SCHEMADN}
-
-dn: CN=Organizational-Person,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: person
-governsID: 2.5.6.7
-mayContain: houseIdentifier
-mayContain: msExchHouseIdentifier
-mayContain: homePostalAddress
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Organizational-Person
-adminDescription: Organizational-Person
-objectClassCategory: 0
-lDAPDisplayName: organizationalPerson
-schemaIDGUID: bf967aa4-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: organization
-systemPossSuperiors: container
-systemMayContain: x121Address
-systemMayContain: comment
-systemMayContain: title
-systemMayContain: co
-systemMayContain: primaryTelexNumber
-systemMayContain: telexNumber
-systemMayContain: teletexTerminalIdentifier
-systemMayContain: street
-systemMayContain: st
-systemMayContain: registeredAddress
-systemMayContain: preferredDeliveryMethod
-systemMayContain: postalCode
-systemMayContain: postalAddress
-systemMayContain: postOfficeBox
-systemMayContain: thumbnailPhoto
-systemMayContain: physicalDeliveryOfficeName
-systemMayContain: pager
-systemMayContain: otherPager
-systemMayContain: otherTelephone
-systemMayContain: mobile
-systemMayContain: otherMobile
-systemMayContain: primaryInternationalISDNNumber
-systemMayContain: ipPhone
-systemMayContain: otherIpPhone
-systemMayContain: otherHomePhone
-systemMayContain: homePhone
-systemMayContain: otherFacsimileTelephoneNumber
-systemMayContain: personalTitle
-systemMayContain: middleName
-systemMayContain: otherMailbox
-systemMayContain: ou
-systemMayContain: o
-systemMayContain: mhsORAddress
-systemMayContain: msDS-AllowedToDelegateTo
-systemMayContain: manager
-systemMayContain: thumbnailLogo
-systemMayContain: l
-systemMayContain: internationalISDNNumber
-systemMayContain: initials
-systemMayContain: givenName
-systemMayContain: generationQualifier
-systemMayContain: facsimileTelephoneNumber
-systemMayContain: employeeID
-systemMayContain: mail
-systemMayContain: division
-systemMayContain: destinationIndicator
-systemMayContain: department
-systemMayContain: c
-systemMayContain: countryCode
-systemMayContain: company
-systemMayContain: assistant
-systemMayContain: streetAddress
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Person,${SCHEMADN}
-
-dn: CN=Attribute-Schema,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.3.14
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Attribute-Schema
-adminDescription: Attribute-Schema
-objectClassCategory: 1
-lDAPDisplayName: attributeSchema
-schemaIDGUID: bf967a80-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: dMD
-systemMayContain: systemOnly
-systemMayContain: searchFlags
-systemMayContain: schemaFlagsEx
-systemMayContain: rangeUpper
-systemMayContain: rangeLower
-systemMayContain: oMObjectClass
-systemMayContain: msDs-Schema-Extensions
-systemMayContain: msDS-IntId
-systemMayContain: mAPIID
-systemMayContain: linkID
-systemMayContain: isMemberOfPartialAttributeSet
-systemMayContain: isEphemeral
-systemMayContain: isDefunct
-systemMayContain: extendedCharsAllowed
-systemMayContain: classDisplayName
-systemMayContain: attributeSecurityGUID
-systemMustContain: schemaIDGUID
-systemMustContain: oMSyntax
-systemMustContain: lDAPDisplayName
-systemMustContain: isSingleValued
-systemMustContain: cn
-systemMustContain: attributeSyntax
-systemMustContain: attributeID
-defaultSecurityDescriptor: D:S:
-systemFlags: 134217744
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Attribute-Schema,${SCHEMADN}
-
-dn: CN=NTDS-Service,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.72
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: NTDS-Service
-adminDescription: NTDS-Service
-objectClassCategory: 1
-lDAPDisplayName: nTDSService
-schemaIDGUID: 19195a5f-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-systemPossSuperiors: container
-systemMayContain: tombstoneLifetime
-systemMayContain: sPNMappings
-systemMayContain: replTopologyStayOfExecution
-systemMayContain: msDS-Other-Settings
-systemMayContain: garbageCollPeriod
-systemMayContain: dSHeuristics
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=NTDS-Service,${SCHEMADN}
-
-dn: CN=Servers-Container,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.7000.48
-possibleInferiors: server
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Servers-Container
-adminDescription: Servers-Container
-objectClassCategory: 1
-lDAPDisplayName: serversContainer
-schemaIDGUID: f780acc0-56f0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: site
-defaultSecurityDescriptor: D:(A;;CC;;;BA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Servers-Container,${SCHEMADN}
-
-dn: CN=Computer,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: user
-governsID: 1.2.840.113556.1.3.30
-possibleInferiors: ipsecNFA
-possibleInferiors: ipsecPolicy
-possibleInferiors: ipsecISAKMPPolicy
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Computer
-adminDescription: Computer
-objectClassCategory: 1
-lDAPDisplayName: computer
-schemaIDGUID: bf967a86-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: container
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: domainDNS
-systemMayContain: volumeCount
-systemMayContain: siteGUID
-systemMayContain: rIDSetReferences
-systemMayContain: policyReplicationFlags
-systemMayContain: physicalLocationObject
-systemMayContain: operatingSystemVersion
-systemMayContain: operatingSystemServicePack
-systemMayContain: operatingSystemHotfix
-systemMayContain: operatingSystem
-systemMayContain: networkAddress
-systemMayContain: netbootSIFFile
-systemMayContain: netbootMirrorDataFile
-systemMayContain: netbootMachineFilePath
-systemMayContain: netbootInitialization
-systemMayContain: netbootGUID
-systemMayContain: msDS-AdditionalSamAccountName
-systemMayContain: msDS-AdditionalDnsHostName
-systemMayContain: managedBy
-systemMayContain: machineRole
-systemMayContain: location
-systemMayContain: localPolicyFlags
-systemMayContain: dNSHostName
-systemMayContain: defaultLocalPolicyObject
-systemMayContain: cn
-systemMayContain: catalogs
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCRLCLORCSDDT;;;CO)(OA;;WP;4c164200-20c0-11d0-a768-00aa006e0529;;CO)(A;;RPLCLORC;;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(A;;CCDC;;;PS)(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;PS)(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;CO)(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;CO)(OA;;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;bf967950-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;bf967953-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)
-systemFlags: 16
-defaultHidingValue: FALSE
-defaultObjectCategory: CN=Computer,${SCHEMADN}
-
-dn: CN=Person,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 2.5.6.6
-mayContain: attributeCertificateAttribute
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Person
-adminDescription: Person
-objectClassCategory: 0
-lDAPDisplayName: person
-schemaIDGUID: bf967aa7-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: container
-systemMayContain: userPassword
-systemMayContain: telephoneNumber
-systemMayContain: sn
-systemMayContain: serialNumber
-systemMayContain: seeAlso
-systemMustContain: cn
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Person,${SCHEMADN}
-
-dn: CN=Ipsec-Policy,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: ipsecBase
-governsID: 1.2.840.113556.1.5.98
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Ipsec-Policy
-adminDescription: Ipsec-Policy
-objectClassCategory: 1
-lDAPDisplayName: ipsecPolicy
-schemaIDGUID: b7b13121-b82e-11d0-afee-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: computer
-systemPossSuperiors: container
-systemMayContain: ipsecNFAReference
-systemMayContain: ipsecISAKMPReference
-defaultSecurityDescriptor: D:
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Ipsec-Policy,${SCHEMADN}
-
-dn: CN=Container,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.3.23
-possibleInferiors: group
-possibleInferiors: trustedDomain
-possibleInferiors: computer
-possibleInferiors: foreignSecurityPrincipal
-possibleInferiors: user
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-possibleInferiors: person
-possibleInferiors: ipsecNFA
-possibleInferiors: queryPolicy
-possibleInferiors: msDS-AzAdminManager
-possibleInferiors: displaySpecifier
-possibleInferiors: nTDSService
-possibleInferiors: secret
-possibleInferiors: ipsecPolicy
-possibleInferiors: organizationalPerson
-possibleInferiors: ipsecISAKMPPolicy
-mayContain: msDS-ObjectReference
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Container
-adminDescription: Container
-objectClassCategory: 1
-lDAPDisplayName: container
-schemaIDGUID: bf967a8b-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: msDS-AzScope
-systemPossSuperiors: msDS-AzApplication
-systemPossSuperiors: msDS-AzAdminManager
-systemPossSuperiors: subnet
-systemPossSuperiors: server
-systemPossSuperiors: nTDSService
-systemPossSuperiors: domainDNS
-systemPossSuperiors: organization
-systemPossSuperiors: configuration
-systemPossSuperiors: container
-systemPossSuperiors: organizationalUnit
-systemMayContain: schemaVersion
-systemMayContain: defaultClassStore
-systemMustContain: cn
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Container,${SCHEMADN}
-
-dn: CN=Site,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.31
-possibleInferiors: serversContainer
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Site
-adminDescription: Site
-objectClassCategory: 1
-lDAPDisplayName: site
-schemaIDGUID: bf967ab3-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: sitesContainer
-systemMayContain: notificationList
-systemMayContain: mSMQSiteID
-systemMayContain: mSMQSiteForeign
-systemMayContain: mSMQNt4Stub
-systemMayContain: mSMQInterval2
-systemMayContain: mSMQInterval1
-systemMayContain: managedBy
-systemMayContain: location
-systemMayContain: gPOptions
-systemMayContain: gPLink
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;LCRPLORC;;;ED)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Site,${SCHEMADN}
-
-dn: CN=Organization,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 2.5.6.4
-possibleInferiors: computer
-possibleInferiors: user
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-possibleInferiors: domainDNS
-possibleInferiors: locality
-possibleInferiors: country
-possibleInferiors: organizationalUnit
-possibleInferiors: organizationalPerson
-rDNAttID: o
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Organization
-adminDescription: Organization
-objectClassCategory: 1
-lDAPDisplayName: organization
-schemaIDGUID: bf967aa3-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: locality
-systemPossSuperiors: country
-systemPossSuperiors: domainDNS
-systemMayContain: x121Address
-systemMayContain: userPassword
-systemMayContain: telexNumber
-systemMayContain: teletexTerminalIdentifier
-systemMayContain: telephoneNumber
-systemMayContain: street
-systemMayContain: st
-systemMayContain: seeAlso
-systemMayContain: searchGuide
-systemMayContain: registeredAddress
-systemMayContain: preferredDeliveryMethod
-systemMayContain: postalCode
-systemMayContain: postalAddress
-systemMayContain: postOfficeBox
-systemMayContain: physicalDeliveryOfficeName
-systemMayContain: l
-systemMayContain: internationalISDNNumber
-systemMayContain: facsimileTelephoneNumber
-systemMayContain: destinationIndicator
-systemMayContain: businessCategory
-systemMustContain: o
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: FALSE
-defaultObjectCategory: CN=Organization,${SCHEMADN}
-
-dn: CN=ms-DS-Az-Admin-Manager,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.234
-possibleInferiors: group
-possibleInferiors: msDS-AzApplication
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: MS-DS-Az-Admin-Manager
-adminDescription: Root of Authorization Policy store instance
-objectClassCategory: 1
-lDAPDisplayName: msDS-AzAdminManager
-schemaIDGUID: cfee1051-5f28-4bae-a863-5d0cc18a8ed1
-systemOnly: FALSE
-systemPossSuperiors: domainDNS
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: container
-systemMayContain: msDS-AzMinorVersion
-systemMayContain: msDS-AzMajorVersion
-systemMayContain: msDS-AzApplicationData
-systemMayContain: msDS-AzGenerateAudits
-systemMayContain: msDS-AzScriptTimeout
-systemMayContain: msDS-AzScriptEngineCacheMax
-systemMayContain: msDS-AzDomainTimeout
-systemMayContain: description
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=ms-DS-Az-Admin-Manager,${SCHEMADN}
-
-dn: CN=Security-Principal,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.6
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Security-Principal
-adminDescription: Security-Principal
-objectClassCategory: 3
-lDAPDisplayName: securityPrincipal
-schemaIDGUID: bf967ab0-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemMayContain: supplementalCredentials
-systemMayContain: sIDHistory
-systemMayContain: securityIdentifier
-systemMayContain: sAMAccountType
-systemMayContain: rid
-systemMayContain: tokenGroupsNoGCAcceptable
-systemMayContain: tokenGroupsGlobalAndUniversal
-systemMayContain: tokenGroups
-systemMayContain: nTSecurityDescriptor
-systemMayContain: msDS-KeyVersionNumber
-systemMayContain: altSecurityIdentities
-systemMayContain: accountNameHistory
-systemMustContain: sAMAccountName
-systemMustContain: objectSid
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Security-Principal,${SCHEMADN}
-
-dn: CN=Application-Settings,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.7000.49
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Application-Settings
-adminDescription: Application-Settings
-objectClassCategory: 2
-lDAPDisplayName: applicationSettings
-schemaIDGUID: f780acc1-56f0-11d1-a9c6-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: server
-systemMayContain: notificationList
-systemMayContain: msDS-Settings
-systemMayContain: applicationName
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Application-Settings,${SCHEMADN}
-
-dn: CN=Class-Schema,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.3.13
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Class-Schema
-adminDescription: Class-Schema
-objectClassCategory: 1
-lDAPDisplayName: classSchema
-schemaIDGUID: bf967a83-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: dMD
-systemMayContain: systemPossSuperiors
-systemMayContain: systemOnly
-systemMayContain: systemMustContain
-systemMayContain: systemMayContain
-systemMayContain: systemAuxiliaryClass
-systemMayContain: schemaFlagsEx
-systemMayContain: rDNAttID
-systemMayContain: possSuperiors
-systemMayContain: mustContain
-systemMayContain: msDs-Schema-Extensions
-systemMayContain: msDS-IntId
-systemMayContain: mayContain
-systemMayContain: lDAPDisplayName
-systemMayContain: isDefunct
-systemMayContain: defaultSecurityDescriptor
-systemMayContain: defaultHidingValue
-systemMayContain: classDisplayName
-systemMayContain: auxiliaryClass
-systemMustContain: subClassOf
-systemMustContain: schemaIDGUID
-systemMustContain: objectClassCategory
-systemMustContain: governsID
-systemMustContain: defaultObjectCategory
-systemMustContain: cn
-defaultSecurityDescriptor: D:S:
-systemFlags: 134217744
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Class-Schema,${SCHEMADN}
-
-dn: CN=User,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: organizationalPerson
-governsID: 1.2.840.113556.1.5.9
-mayContain: x500uniqueIdentifier
-mayContain: userSMIMECertificate
-mayContain: userPKCS12
-mayContain: uid
-mayContain: secretary
-mayContain: roomNumber
-mayContain: preferredLanguage
-mayContain: photo
-mayContain: labeledURI
-mayContain: jpegPhoto
-mayContain: homePostalAddress
-mayContain: givenName
-mayContain: employeeType
-mayContain: employeeNumber
-mayContain: displayName
-mayContain: departmentNumber
-mayContain: carLicense
-mayContain: audio
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: User
-adminDescription: User
-objectClassCategory: 1
-lDAPDisplayName: user
-schemaIDGUID: bf967aba-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: builtinDomain
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: domainDNS
-systemMayContain: pager
-systemMayContain: o
-systemMayContain: mobile
-systemMayContain: manager
-systemMayContain: mail
-systemMayContain: initials
-systemMayContain: homePhone
-systemMayContain: businessCategory
-systemMayContain: userCertificate
-systemMayContain: userWorkstations
-systemMayContain: userSharedFolderOther
-systemMayContain: userSharedFolder
-systemMayContain: userPrincipalName
-systemMayContain: userParameters
-systemMayContain: userAccountControl
-systemMayContain: unicodePwd
-systemMayContain: terminalServer
-systemMayContain: servicePrincipalName
-systemMayContain: scriptPath
-systemMayContain: pwdLastSet
-systemMayContain: profilePath
-systemMayContain: primaryGroupID
-systemMayContain: preferredOU
-systemMayContain: otherLoginWorkstations
-systemMayContain: operatorCount
-systemMayContain: ntPwdHistory
-systemMayContain: networkAddress
-systemMayContain: msRASSavedFramedRoute
-systemMayContain: msRASSavedFramedIPAddress
-systemMayContain: msRASSavedCallbackNumber
-systemMayContain: msRADIUSServiceType
-systemMayContain: msRADIUSFramedRoute
-systemMayContain: msRADIUSFramedIPAddress
-systemMayContain: msRADIUSCallbackNumber
-systemMayContain: msNPSavedCallingStationID
-systemMayContain: msNPCallingStationID
-systemMayContain: msNPAllowDialin
-systemMayContain: mSMQSignCertificatesMig
-systemMayContain: mSMQSignCertificates
-systemMayContain: mSMQDigestsMig
-systemMayContain: mSMQDigests
-systemMayContain: msIIS-FTPRoot
-systemMayContain: msIIS-FTPDir
-systemMayContain: msDS-User-Account-Control-Computed
-systemMayContain: msDS-Site-Affinity
-systemMayContain: mS-DS-CreatorSID
-systemMayContain: msDS-Cached-Membership-Time-Stamp
-systemMayContain: msDS-Cached-Membership
-systemMayContain: msDRM-IdentityCertificate
-systemMayContain: msCOM-UserPartitionSetLink
-systemMayContain: maxStorage
-systemMayContain: logonWorkstation
-systemMayContain: logonHours
-systemMayContain: logonCount
-systemMayContain: lockoutTime
-systemMayContain: localeID
-systemMayContain: lmPwdHistory
-systemMayContain: lastLogonTimestamp
-systemMayContain: lastLogon
-systemMayContain: lastLogoff
-systemMayContain: homeDrive
-systemMayContain: homeDirectory
-systemMayContain: groupsToIgnore
-systemMayContain: groupPriority
-systemMayContain: groupMembershipSAM
-systemMayContain: dynamicLDAPServer
-systemMayContain: desktopProfile
-systemMayContain: defaultClassStore
-systemMayContain: dBCSPwd
-systemMayContain: controlAccessRights
-systemMayContain: codePage
-systemMayContain: badPwdCount
-systemMayContain: badPasswordTime
-systemMayContain: adminCount
-systemMayContain: aCSPolicyName
-systemMayContain: accountExpires
-systemAuxiliaryClass: securityPrincipal
-systemAuxiliaryClass: mailRecipient
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RP;037088f8-0ae1-11d2-b422-00a0c968f939;;RS)(OA;;RP;4c164200-20c0-11d0-a768-00aa006e0529;;RS)(OA;;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;;RS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(OA;;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;;RS)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)(OA;;WPRP;6db69a1c-9422-11d1-aebd-0000f80367c1;;S-1-5-32-561)
-systemFlags: 16
-defaultHidingValue: FALSE
-defaultObjectCategory: CN=Person,${SCHEMADN}
-
-dn: CN=DMD,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.3.9
-possibleInferiors: lostAndFound
-possibleInferiors: attributeSchema
-possibleInferiors: classSchema
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: DMD
-adminDescription: DMD
-objectClassCategory: 1
-lDAPDisplayName: dMD
-schemaIDGUID: bf967a8f-0de6-11d0-a285-00aa003049e2
-systemOnly: TRUE
-systemPossSuperiors: configuration
-systemMayContain: schemaUpdate
-systemMayContain: schemaInfo
-systemMayContain: prefixMap
-systemMayContain: msDs-Schema-Extensions
-systemMayContain: msDS-IntId
-systemMayContain: dmdName
-systemMustContain: cn
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=DMD,${SCHEMADN}
-
-dn: CN=Leaf,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.20
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Leaf
-adminDescription: Leaf
-objectClassCategory: 2
-lDAPDisplayName: leaf
-schemaIDGUID: bf967a9e-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Leaf,${SCHEMADN}
-
-dn: CN=Secret,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: leaf
-governsID: 1.2.840.113556.1.5.28
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Secret
-adminDescription: Secret
-objectClassCategory: 1
-lDAPDisplayName: secret
-schemaIDGUID: bf967aae-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: container
-systemMayContain: priorValue
-systemMayContain: priorSetTime
-systemMayContain: lastSetTime
-systemMayContain: currentValue
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Secret,${SCHEMADN}
-
-dn: CN=Sites-Container,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.107
-possibleInferiors: subnetContainer
-possibleInferiors: site
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Sites-Container
-adminDescription: Sites-Container
-objectClassCategory: 1
-lDAPDisplayName: sitesContainer
-schemaIDGUID: 7a4117da-cd67-11d0-afff-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: configuration
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Sites-Container,${SCHEMADN}
-
-dn: CN=Server,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.17
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Server
-adminDescription: Server
-objectClassCategory: 1
-lDAPDisplayName: server
-schemaIDGUID: bf967a92-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: serversContainer
-systemMayContain: mailAddress
-systemMayContain: serverReference
-systemMayContain: serialNumber
-systemMayContain: managedBy
-systemMayContain: dNSHostName
-systemMayContain: bridgeheadTransportList
-defaultSecurityDescriptor: D:(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Server,${SCHEMADN}
-
-dn: CN=SubSchema,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 2.5.20.1
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: SubSchema
-adminDescription: SubSchema
-objectClassCategory: 1
-lDAPDisplayName: subSchema
-schemaIDGUID: 5a8b3261-c38d-11d1-bbc9-0080c76670c0
-systemOnly: TRUE
-systemPossSuperiors: dMD
-systemMayContain: objectClasses
-systemMayContain: modifyTimeStamp
-systemMayContain: extendedClassInfo
-systemMayContain: extendedAttributeInfo
-systemMayContain: dITContentRules
-systemMayContain: attributeTypes
-defaultSecurityDescriptor: D:S:
-systemFlags: 134217744
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=SubSchema,${SCHEMADN}
-
-dn: CN=Trusted-Domain,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: leaf
-governsID: 1.2.840.113556.1.5.34
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Trusted-Domain
-adminDescription: Trusted-Domain
-objectClassCategory: 1
-lDAPDisplayName: trustedDomain
-schemaIDGUID: bf967ab8-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: container
-systemMayContain: trustType
-systemMayContain: trustPosixOffset
-systemMayContain: trustPartner
-systemMayContain: trustDirection
-systemMayContain: trustAuthOutgoing
-systemMayContain: trustAuthIncoming
-systemMayContain: trustAttributes
-systemMayContain: securityIdentifier
-systemMayContain: msDS-TrustForestTrustInfo
-systemMayContain: mS-DS-CreatorSID
-systemMayContain: initialAuthOutgoing
-systemMayContain: initialAuthIncoming
-systemMayContain: flatName
-systemMayContain: domainIdentifier
-systemMayContain: domainCrossRef
-systemMayContain: additionalTrustedServiceNames
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(OA;;WP;736e4812-af31-11d2-b7df-00805f48caeb;bf967ab8-0de6-11d0-a285-00aa003049e2;CO)(A;;SD;;;CO)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Trusted-Domain,${SCHEMADN}
-
-dn: CN=Domain,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.66
-possibleInferiors: domainDNS
-rDNAttID: dc
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Domain
-adminDescription: Domain
-objectClassCategory: 2
-lDAPDisplayName: domain
-schemaIDGUID: 19195a5a-6da0-11d0-afd3-00c04fd930c9
-systemOnly: FALSE
-systemPossSuperiors: domain
-systemPossSuperiors: organization
-systemMustContain: dc
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Domain-DNS,${SCHEMADN}
-
-dn: CN=Foreign-Security-Principal,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.76
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Foreign-Security-Principal
-adminDescription: Foreign-Security-Principal
-objectClassCategory: 1
-lDAPDisplayName: foreignSecurityPrincipal
-schemaIDGUID: 89e31c12-8530-11d0-afda-00c04fd930c9
-systemOnly: FALSE
-systemPossSuperiors: container
-systemMayContain: foreignIdentifier
-systemMustContain: objectSid
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Foreign-Security-Principal,${SCHEMADN}
-
-dn: CN=Subnet,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.96
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Subnet
-adminDescription: Subnet
-objectClassCategory: 1
-lDAPDisplayName: subnet
-schemaIDGUID: b7b13124-b82e-11d0-afee-0000f80367c1
-systemOnly: FALSE
-systemPossSuperiors: subnetContainer
-systemMayContain: siteObject
-systemMayContain: physicalLocationObject
-systemMayContain: location
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Subnet,${SCHEMADN}
-
-dn: CN=Mail-Recipient,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.3.46
-mayContain: userSMIMECertificate
-mayContain: secretary
-mayContain: msExchLabeledURI
-mayContain: msExchAssistantName
-mayContain: labeledURI
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Mail-Recipient
-adminDescription: Mail-Recipient
-objectClassCategory: 3
-lDAPDisplayName: mailRecipient
-schemaIDGUID: bf967aa1-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: container
-systemMayContain: userCertificate
-systemMayContain: userCert
-systemMayContain: textEncodedORAddress
-systemMayContain: telephoneNumber
-systemMayContain: showInAddressBook
-systemMayContain: legacyExchangeDN
-systemMayContain: garbageCollPeriod
-systemMayContain: info
-systemMustContain: cn
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Mail-Recipient,${SCHEMADN}
-
-dn: CN=Group,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: top
-governsID: 1.2.840.113556.1.5.8
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Group
-adminDescription: Group
-objectClassCategory: 1
-lDAPDisplayName: group
-schemaIDGUID: bf967a9c-0de6-11d0-a285-00aa003049e2
-systemOnly: FALSE
-systemPossSuperiors: msDS-AzScope
-systemPossSuperiors: msDS-AzApplication
-systemPossSuperiors: msDS-AzAdminManager
-systemPossSuperiors: container
-systemPossSuperiors: builtinDomain
-systemPossSuperiors: organizationalUnit
-systemPossSuperiors: domainDNS
-systemMayContain: primaryGroupToken
-systemMayContain: operatorCount
-systemMayContain: nTGroupMembers
-systemMayContain: nonSecurityMember
-systemMayContain: msDS-NonMembers
-systemMayContain: msDS-AzLDAPQuery
-systemMayContain: member
-systemMayContain: managedBy
-systemMayContain: groupMembershipSAM
-systemMayContain: groupAttributes
-systemMayContain: mail
-systemMayContain: desktopProfile
-systemMayContain: controlAccessRights
-systemMayContain: adminCount
-systemMustContain: groupType
-systemAuxiliaryClass: mailRecipient
-systemAuxiliaryClass: securityPrincipal
-defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a55-1e2f-11d0-9819-00aa0040529b;;AU)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)
-systemFlags: 16
-defaultHidingValue: FALSE
-defaultObjectCategory: CN=Group,${SCHEMADN}
-
-dn: CN=Group-Policy-Container,${SCHEMADN}
-objectClass: top
-objectClass: classSchema
-subClassOf: container
-governsID: 1.2.840.113556.1.5.157
-possibleInferiors: group
-possibleInferiors: trustedDomain
-possibleInferiors: computer
-possibleInferiors: foreignSecurityPrincipal
-possibleInferiors: user
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-possibleInferiors: person
-possibleInferiors: ipsecNFA
-possibleInferiors: queryPolicy
-possibleInferiors: msDS-AzAdminManager
-possibleInferiors: displaySpecifier
-possibleInferiors: nTDSService
-possibleInferiors: secret
-possibleInferiors: ipsecPolicy
-possibleInferiors: organizationalPerson
-possibleInferiors: ipsecISAKMPPolicy
-rDNAttID: cn
-showInAdvancedViewOnly: TRUE
-adminDisplayName: Group-Policy-Container
-adminDescription: Group-Policy-Container
-objectClassCategory: 1
-lDAPDisplayName: groupPolicyContainer
-schemaIDGUID: f30e3bc2-9ff0-11d1-b603-0000f80367c1
-systemOnly: FALSE
-systemMayContain: versionNumber
-systemMayContain: gPCWQLFilter
-systemMayContain: gPCUserExtensionNames
-systemMayContain: gPCMachineExtensionNames
-systemMayContain: gPCFunctionalityVersion
-systemMayContain: gPCFileSysPath
-systemMayContain: flags
-defaultSecurityDescriptor: D:P(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;DA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;EA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;CO)(A;CI;RPWPCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPLCLORC;;;AU)(OA;CI;CR;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;AU)(A;CI;LCRPLORC;;;ED)
-systemFlags: 16
-defaultHidingValue: TRUE
-defaultObjectCategory: CN=Group-Policy-Container,${SCHEMADN}
-
diff --git a/source4/setup/schema_samba4.ldif b/source4/setup/schema_samba4.ldif
index 47010da637..c11e65e465 100644
--- a/source4/setup/schema_samba4.ldif
+++ b/source4/setup/schema_samba4.ldif
@@ -219,19 +219,6 @@ objectClass: top
objectClass: classSchema
subClassOf: top
governsID: 1.3.6.1.4.1.7165.4.2.2
-possibleInferiors: group
-possibleInferiors: lostAndFound
-possibleInferiors: builtinDomain
-possibleInferiors: computer
-possibleInferiors: user
-possibleInferiors: container
-possibleInferiors: groupPolicyContainer
-possibleInferiors: organization
-possibleInferiors: domainDNS
-possibleInferiors: locality
-possibleInferiors: msDS-AzAdminManager
-possibleInferiors: country
-possibleInferiors: organizationalUnit
rDNAttID: cn
showInAdvancedViewOnly: TRUE
adminDisplayName: Samba4-Local-Domain
@@ -285,6 +272,7 @@ systemMayContain: replUpToDateVector
systemMayContain: replPropertyMetaData
systemMayContain: name
systemMayContain: queryPolicyBL
+systemMayContain: parentGUID
systemMayContain: proxyAddresses
systemMayContain: proxiedObjectName
systemMayContain: possibleInferiors
diff --git a/source4/torture/ldap/schema.c b/source4/torture/ldap/schema.c
index 6184ad266d..7ea7b39d5c 100644
--- a/source4/torture/ldap/schema.c
+++ b/source4/torture/ldap/schema.c
@@ -223,7 +223,7 @@ static int test_add_attribute(void *ptr, struct ldb_context *ldb, struct ldb_mes
goto failed;
}
- status = dsdb_attribute_from_ldb(schema, msg, attr, attr);
+ status = dsdb_attribute_from_ldb(ldb, schema, msg, attr, attr);
if (!W_ERROR_IS_OK(status)) {
goto failed;
}
diff --git a/source4/torture/libnet/libnet_BecomeDC.c b/source4/torture/libnet/libnet_BecomeDC.c
index 2b1bff40ee..7d1c025f18 100644
--- a/source4/torture/libnet/libnet_BecomeDC.c
+++ b/source4/torture/libnet/libnet_BecomeDC.c
@@ -231,7 +231,7 @@ static NTSTATUS test_apply_schema(struct test_become_dc_state *s,
sa = talloc_zero(s->self_made_schema, struct dsdb_attribute);
NT_STATUS_HAVE_NO_MEMORY(sa);
- status = dsdb_attribute_from_drsuapi(s->self_made_schema, &cur->object, s, sa);
+ status = dsdb_attribute_from_drsuapi(s->ldb, s->self_made_schema, &cur->object, s, sa);
if (!W_ERROR_IS_OK(status)) {
return werror_to_ntstatus(status);
}
diff --git a/source4/torture/raw/lock.c b/source4/torture/raw/lock.c
index 72a03e1623..7e3ac29809 100644
--- a/source4/torture/raw/lock.c
+++ b/source4/torture/raw/lock.c
@@ -364,7 +364,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli)
lock[0].count = 2;
status = smb_raw_lock(cli->tree, &io);
if (TARGET_IS_WIN7(tctx))
- CHECK_STATUS(status, NT_STATUS_WIN7_INVALID_RANGE);
+ CHECK_STATUS(status, NT_STATUS_INVALID_LOCK_RANGE);
else
CHECK_STATUS(status, NT_STATUS_OK);
lock[0].pid--;
@@ -376,7 +376,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli)
/* XXX This is very strange - Win7 gives us an invalid range when we
* unlock the range even though the range is locked! Win7 bug? */
if (TARGET_IS_WIN7(tctx))
- CHECK_STATUS(status, NT_STATUS_WIN7_INVALID_RANGE);
+ CHECK_STATUS(status, NT_STATUS_INVALID_LOCK_RANGE);
else {
CHECK_STATUS(status, NT_STATUS_OK);
status = smb_raw_lock(cli->tree, &io);
diff --git a/source4/torture/raw/lockbench.c b/source4/torture/raw/lockbench.c
index d20175a018..c7f99aeb3c 100644
--- a/source4/torture/raw/lockbench.c
+++ b/source4/torture/raw/lockbench.c
@@ -317,13 +317,15 @@ bool torture_bench_lock(struct torture_context *torture)
{
bool ret = true;
TALLOC_CTX *mem_ctx = talloc_new(torture);
- int i;
+ int i, j;
int timelimit = torture_setting_int(torture, "timelimit", 10);
struct timeval tv;
struct benchlock_state *state;
int total = 0, minops=0;
struct smbcli_state *cli;
bool progress;
+ off_t offset;
+ int initial_locks = torture_setting_int(torture, "initial_locks", 0);
progress = torture_setting_bool(torture, "progress", true);
@@ -371,6 +373,21 @@ bool torture_bench_lock(struct torture_context *torture)
goto failed;
}
+ /* Optionally, lock initial_locks for each proc beforehand. */
+ if (i == 0 && initial_locks > 0) {
+ printf("Initializing %d locks on each proc.\n",
+ initial_locks);
+ }
+
+ for (j = 0; j < initial_locks; j++) {
+ offset = (0xFFFFFED8LLU * (i+2)) + j;
+ if (!NT_STATUS_IS_OK(smbcli_lock64(state[i].tree,
+ state[i].fnum, offset, 1, 0, WRITE_LOCK))) {
+ printf("Failed initializing, lock=%d\n", j);
+ goto failed;
+ }
+ }
+
state[i].stage = LOCK_INITIAL;
lock_send(&state[i]);
}
@@ -413,6 +430,7 @@ bool torture_bench_lock(struct torture_context *torture)
return ret;
failed:
+ smbcli_deltree(state[0].tree, BASEDIR);
talloc_free(mem_ctx);
return false;
}
diff --git a/source4/torture/rpc/eventlog.c b/source4/torture/rpc/eventlog.c
index 10c4886259..865b4e2217 100644
--- a/source4/torture/rpc/eventlog.c
+++ b/source4/torture/rpc/eventlog.c
@@ -203,7 +203,6 @@ static bool test_ReadEventLog(struct torture_context *tctx,
static bool test_ReportEventLog(struct torture_context *tctx,
struct dcerpc_pipe *p)
{
- NTSTATUS status;
struct eventlog_ReportEventW r;
struct eventlog_CloseEventLog cr;
struct policy_handle handle;
@@ -237,7 +236,9 @@ static bool test_ReportEventLog(struct torture_context *tctx,
r.out.record_number = &record_number;
r.out.time_written = &time_written;
- status = dcerpc_eventlog_ReportEventW(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_eventlog_ReportEventW(p, tctx, &r),
+ "ReportEventW failed");
torture_assert_ntstatus_ok(tctx, r.out.result, "ReportEventW failed");
diff --git a/source4/torture/rpc/ntsvcs.c b/source4/torture/rpc/ntsvcs.c
index 5453102039..04494b3223 100644
--- a/source4/torture/rpc/ntsvcs.c
+++ b/source4/torture/rpc/ntsvcs.c
@@ -47,18 +47,26 @@ static bool test_PNP_GetVersion(struct torture_context *tctx,
static bool test_PNP_GetDeviceListSize(struct torture_context *tctx,
struct dcerpc_pipe *p)
{
- NTSTATUS status;
struct PNP_GetDeviceListSize r;
uint32_t size = 0;
r.in.devicename = NULL;
- r.in.flags = 0;
+ r.in.flags = CM_GETIDLIST_FILTER_SERVICE;
r.out.size = &size;
- status = dcerpc_PNP_GetDeviceListSize(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_PNP_GetDeviceListSize(p, tctx, &r),
+ "PNP_GetDeviceListSize");
+ torture_assert_werr_equal(tctx, r.out.result, WERR_CM_INVALID_POINTER,
+ "PNP_GetDeviceListSize");
+
+ r.in.devicename = "Spooler";
- torture_assert_ntstatus_ok(tctx, status, "PNP_GetDeviceListSize");
- torture_assert_werr_ok(tctx, r.out.result, "PNP_GetDeviceListSize");
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_PNP_GetDeviceListSize(p, tctx, &r),
+ "PNP_GetDeviceListSize");
+ torture_assert_werr_ok(tctx, r.out.result,
+ "PNP_GetDeviceListSize");
return true;
}
@@ -66,7 +74,6 @@ static bool test_PNP_GetDeviceListSize(struct torture_context *tctx,
static bool test_PNP_GetDeviceList(struct torture_context *tctx,
struct dcerpc_pipe *p)
{
- NTSTATUS status;
struct PNP_GetDeviceList r;
uint16_t *buffer = NULL;
uint32_t length = 0;
@@ -74,25 +81,35 @@ static bool test_PNP_GetDeviceList(struct torture_context *tctx,
buffer = talloc_array(tctx, uint16_t, 0);
r.in.filter = NULL;
- r.in.flags = 0;
+ r.in.flags = CM_GETIDLIST_FILTER_SERVICE;
r.in.length = &length;
r.out.length = &length;
r.out.buffer = buffer;
- status = dcerpc_PNP_GetDeviceList(p, tctx, &r);
- torture_assert_ntstatus_ok(tctx, status, "PNP_GetDeviceList");
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_PNP_GetDeviceList(p, tctx, &r),
+ "PNP_GetDeviceList failed");
+ torture_assert_werr_equal(tctx, r.out.result, WERR_CM_INVALID_POINTER,
+ "PNP_GetDeviceList failed");
+
+ r.in.filter = "Spooler";
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_PNP_GetDeviceList(p, tctx, &r),
+ "PNP_GetDeviceList failed");
if (W_ERROR_EQUAL(r.out.result, WERR_CM_BUFFER_SMALL)) {
struct PNP_GetDeviceListSize s;
- s.in.devicename = NULL;
- s.in.flags = 0;
+ s.in.devicename = "Spooler";
+ s.in.flags = CM_GETIDLIST_FILTER_SERVICE;
s.out.size = &length;
- status = dcerpc_PNP_GetDeviceListSize(p, tctx, &s);
-
- torture_assert_ntstatus_ok(tctx, status, "PNP_GetDeviceListSize");
- torture_assert_werr_ok(tctx, s.out.result, "PNP_GetDeviceListSize");
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_PNP_GetDeviceListSize(p, tctx, &s),
+ "PNP_GetDeviceListSize failed");
+ torture_assert_werr_ok(tctx, s.out.result,
+ "PNP_GetDeviceListSize failed");
}
buffer = talloc_array(tctx, uint16_t, length);
@@ -101,9 +118,12 @@ static bool test_PNP_GetDeviceList(struct torture_context *tctx,
r.out.length = &length;
r.out.buffer = buffer;
- status = dcerpc_PNP_GetDeviceList(p, tctx, &r);
- torture_assert_ntstatus_ok(tctx, status, "PNP_GetDeviceList");
- torture_assert_werr_ok(tctx, r.out.result, "PNP_GetDeviceList");
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_PNP_GetDeviceList(p, tctx, &r),
+ "PNP_GetDeviceList failed");
+
+ torture_assert_werr_ok(tctx, r.out.result,
+ "PNP_GetDeviceList failed");
return true;
}
diff --git a/source4/torture/rpc/spoolss_win.c b/source4/torture/rpc/spoolss_win.c
index c50cbfbaee..42b6929557 100644
--- a/source4/torture/rpc/spoolss_win.c
+++ b/source4/torture/rpc/spoolss_win.c
@@ -34,6 +34,8 @@ struct test_spoolss_win_context {
/* EnumPrinterKeys */
const char **printer_keys;
+
+ bool printer_has_driver;
};
/* This is a convenience function for all OpenPrinterEx calls */
@@ -256,6 +258,12 @@ static bool test_GetPrinter(struct torture_context *tctx,
torture_assert_werr_ok(tctx, gp.out.result, "GetPrinter failed");
ctx->current_info = gp.out.info;
+
+ if (level == 2 && gp.out.info) {
+ ctx->printer_has_driver = gp.out.info->info2.drivername &&
+ strlen(gp.out.info->info2.drivername);
+ }
+
return true;
}
@@ -289,6 +297,7 @@ static bool test_EnumJobs(struct torture_context *tctx,
static bool test_GetPrinterDriver2(struct torture_context *tctx,
struct dcerpc_pipe *p,
+ struct test_spoolss_win_context *ctx,
struct policy_handle *handle)
{
NTSTATUS status;
@@ -313,8 +322,11 @@ static bool test_GetPrinterDriver2(struct torture_context *tctx,
status = dcerpc_spoolss_GetPrinterDriver2(p, tctx, &gpd2);
torture_assert_ntstatus_ok(tctx, status, "GetPrinterDriver2 failed");
- torture_assert_werr_ok(tctx, gpd2.out.result,
- "GetPrinterDriver2 failed.");
+
+ if (ctx->printer_has_driver) {
+ torture_assert_werr_ok(tctx, gpd2.out.result,
+ "GetPrinterDriver2 failed.");
+ }
return true;
}
@@ -527,7 +539,7 @@ static bool test_WinXP(struct torture_context *tctx, struct dcerpc_pipe *p)
ret &= test_ClosePrinter(tctx, p, &handle04);
ret &= test_EnumPrinters(tctx, p, ctx, 1556);
- ret &= test_GetPrinterDriver2(tctx, p, &handle03);
+ ret &= test_GetPrinterDriver2(tctx, p, ctx, &handle03);
ret &= test_EnumForms(tctx, p, &handle03, 0);
ret &= test_EnumPrinterKey(tctx, p, &handle03, "", ctx);
diff --git a/source4/torture/rpc/svcctl.c b/source4/torture/rpc/svcctl.c
index a4b9e6bed1..e38e8daba1 100644
--- a/source4/torture/rpc/svcctl.c
+++ b/source4/torture/rpc/svcctl.c
@@ -3,7 +3,7 @@
test suite for srvsvc rpc operations
Copyright (C) Jelmer Vernooij 2004
- Copyright (C) Guenther Deschner 2008
+ Copyright (C) Guenther Deschner 2008,2009
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -74,6 +74,36 @@ static bool test_OpenService(struct dcerpc_pipe *p, struct torture_context *tctx
}
+static bool test_QueryServiceStatus(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+ struct svcctl_QueryServiceStatus r;
+ struct policy_handle h, s;
+ struct SERVICE_STATUS service_status;
+ NTSTATUS status;
+
+ if (!test_OpenSCManager(p, tctx, &h))
+ return false;
+
+ if (!test_OpenService(p, tctx, &h, "Netlogon", &s))
+ return false;
+
+ r.in.handle = &s;
+ r.out.service_status = &service_status;
+
+ status = dcerpc_svcctl_QueryServiceStatus(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "QueryServiceStatus failed!");
+ torture_assert_werr_ok(tctx, r.out.result, "QueryServiceStatus failed!");
+
+ if (!test_CloseServiceHandle(p, tctx, &s))
+ return false;
+
+ if (!test_CloseServiceHandle(p, tctx, &h))
+ return false;
+
+ return true;
+}
+
static bool test_QueryServiceStatusEx(struct torture_context *tctx, struct dcerpc_pipe *p)
{
struct svcctl_QueryServiceStatusEx r;
@@ -82,8 +112,8 @@ static bool test_QueryServiceStatusEx(struct torture_context *tctx, struct dcerp
uint32_t info_level = SVC_STATUS_PROCESS_INFO;
uint8_t *buffer;
- uint32_t buf_size = 0;
- uint32_t bytes_needed = 0;
+ uint32_t offered = 0;
+ uint32_t needed = 0;
if (!test_OpenSCManager(p, tctx, &h))
return false;
@@ -95,16 +125,16 @@ static bool test_QueryServiceStatusEx(struct torture_context *tctx, struct dcerp
r.in.handle = &s;
r.in.info_level = info_level;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
r.out.buffer = buffer;
- r.out.bytes_needed = &bytes_needed;
+ r.out.needed = &needed;
status = dcerpc_svcctl_QueryServiceStatusEx(p, tctx, &r);
torture_assert_ntstatus_ok(tctx, status, "QueryServiceStatusEx failed!");
if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
- r.in.buf_size = bytes_needed;
- buffer = talloc_array(tctx, uint8_t, bytes_needed);
+ r.in.offered = needed;
+ buffer = talloc_array(tctx, uint8_t, needed);
r.out.buffer = buffer;
status = dcerpc_svcctl_QueryServiceStatusEx(p, tctx, &r);
@@ -121,6 +151,48 @@ static bool test_QueryServiceStatusEx(struct torture_context *tctx, struct dcerp
return true;
}
+static bool test_QueryServiceConfigW(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+ struct svcctl_QueryServiceConfigW r;
+ struct QUERY_SERVICE_CONFIG query;
+ struct policy_handle h, s;
+ NTSTATUS status;
+
+ uint32_t offered = 0;
+ uint32_t needed = 0;
+
+ if (!test_OpenSCManager(p, tctx, &h))
+ return false;
+
+ if (!test_OpenService(p, tctx, &h, "Netlogon", &s))
+ return false;
+
+ r.in.handle = &s;
+ r.in.offered = offered;
+ r.out.query = &query;
+ r.out.needed = &needed;
+
+ status = dcerpc_svcctl_QueryServiceConfigW(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "QueryServiceConfigW failed!");
+
+ if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
+ r.in.offered = needed;
+ status = dcerpc_svcctl_QueryServiceConfigW(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "QueryServiceConfigW failed!");
+ }
+
+ torture_assert_werr_ok(tctx, r.out.result, "QueryServiceConfigW failed!");
+
+ if (!test_CloseServiceHandle(p, tctx, &s))
+ return false;
+
+ if (!test_CloseServiceHandle(p, tctx, &h))
+ return false;
+
+ return true;
+}
+
static bool test_QueryServiceConfig2W(struct torture_context *tctx, struct dcerpc_pipe *p)
{
struct svcctl_QueryServiceConfig2W r;
@@ -129,8 +201,8 @@ static bool test_QueryServiceConfig2W(struct torture_context *tctx, struct dcerp
uint32_t info_level = SERVICE_CONFIG_DESCRIPTION;
uint8_t *buffer;
- uint32_t buf_size = 0;
- uint32_t bytes_needed = 0;
+ uint32_t offered = 0;
+ uint32_t needed = 0;
if (!test_OpenSCManager(p, tctx, &h))
return false;
@@ -142,16 +214,16 @@ static bool test_QueryServiceConfig2W(struct torture_context *tctx, struct dcerp
r.in.handle = &s;
r.in.info_level = info_level;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
r.out.buffer = buffer;
- r.out.bytes_needed = &bytes_needed;
+ r.out.needed = &needed;
status = dcerpc_svcctl_QueryServiceConfig2W(p, tctx, &r);
torture_assert_ntstatus_ok(tctx, status, "QueryServiceConfig2W failed!");
if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
- r.in.buf_size = bytes_needed;
- buffer = talloc_array(tctx, uint8_t, bytes_needed);
+ r.in.offered = needed;
+ buffer = talloc_array(tctx, uint8_t, needed);
r.out.buffer = buffer;
status = dcerpc_svcctl_QueryServiceConfig2W(p, tctx, &r);
@@ -160,16 +232,16 @@ static bool test_QueryServiceConfig2W(struct torture_context *tctx, struct dcerp
}
r.in.info_level = SERVICE_CONFIG_FAILURE_ACTIONS;
- r.in.buf_size = buf_size;
+ r.in.offered = offered;
r.out.buffer = buffer;
- r.out.bytes_needed = &bytes_needed;
+ r.out.needed = &needed;
status = dcerpc_svcctl_QueryServiceConfig2W(p, tctx, &r);
torture_assert_ntstatus_ok(tctx, status, "QueryServiceConfig2W failed!");
if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
- r.in.buf_size = bytes_needed;
- buffer = talloc_array(tctx, uint8_t, bytes_needed);
+ r.in.offered = needed;
+ buffer = talloc_array(tctx, uint8_t, needed);
r.out.buffer = buffer;
status = dcerpc_svcctl_QueryServiceConfig2W(p, tctx, &r);
@@ -186,6 +258,59 @@ static bool test_QueryServiceConfig2W(struct torture_context *tctx, struct dcerp
return true;
}
+static bool test_QueryServiceObjectSecurity(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+ struct svcctl_QueryServiceObjectSecurity r;
+ struct policy_handle h, s;
+
+ uint8_t *buffer;
+ uint32_t needed;
+
+ if (!test_OpenSCManager(p, tctx, &h))
+ return false;
+
+ if (!test_OpenService(p, tctx, &h, "Netlogon", &s))
+ return false;
+
+ r.in.handle = &s;
+ r.in.security_flags = 0;
+ r.in.offered = 0;
+ r.out.buffer = NULL;
+ r.out.needed = &needed;
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_svcctl_QueryServiceObjectSecurity(p, tctx, &r),
+ "QueryServiceObjectSecurity failed!");
+ torture_assert_werr_equal(tctx, r.out.result, WERR_INVALID_PARAM,
+ "QueryServiceObjectSecurity failed!");
+
+ r.in.security_flags = SECINFO_DACL;
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_svcctl_QueryServiceObjectSecurity(p, tctx, &r),
+ "QueryServiceObjectSecurity failed!");
+
+ if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
+ r.in.offered = needed;
+ buffer = talloc_array(tctx, uint8_t, needed);
+ r.out.buffer = buffer;
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_svcctl_QueryServiceObjectSecurity(p, tctx, &r),
+ "QueryServiceObjectSecurity failed!");
+ }
+
+ torture_assert_werr_ok(tctx, r.out.result, "QueryServiceObjectSecurity failed!");
+
+ if (!test_CloseServiceHandle(p, tctx, &s))
+ return false;
+
+ if (!test_CloseServiceHandle(p, tctx, &h))
+ return false;
+
+ return true;
+}
+
static bool test_EnumServicesStatus(struct torture_context *tctx, struct dcerpc_pipe *p)
{
struct svcctl_EnumServicesStatusW r;
@@ -194,7 +319,7 @@ static bool test_EnumServicesStatus(struct torture_context *tctx, struct dcerpc_
NTSTATUS status;
uint32_t resume_handle = 0;
struct ENUM_SERVICE_STATUSW *service = NULL;
- uint32_t bytes_needed = 0;
+ uint32_t needed = 0;
uint32_t services_returned = 0;
if (!test_OpenSCManager(p, tctx, &h))
@@ -203,20 +328,20 @@ static bool test_EnumServicesStatus(struct torture_context *tctx, struct dcerpc_
r.in.handle = &h;
r.in.type = SERVICE_TYPE_WIN32;
r.in.state = SERVICE_STATE_ALL;
- r.in.buf_size = 0;
+ r.in.offered = 0;
r.in.resume_handle = &resume_handle;
r.out.service = NULL;
r.out.resume_handle = &resume_handle;
r.out.services_returned = &services_returned;
- r.out.bytes_needed = &bytes_needed;
+ r.out.needed = &needed;
status = dcerpc_svcctl_EnumServicesStatusW(p, tctx, &r);
torture_assert_ntstatus_ok(tctx, status, "EnumServicesStatus failed!");
if (W_ERROR_EQUAL(r.out.result, WERR_MORE_DATA)) {
- r.in.buf_size = bytes_needed;
- r.out.service = talloc_array(tctx, uint8_t, bytes_needed);
+ r.in.offered = needed;
+ r.out.service = talloc_array(tctx, uint8_t, needed);
status = dcerpc_svcctl_EnumServicesStatusW(p, tctx, &r);
@@ -230,7 +355,7 @@ static bool test_EnumServicesStatus(struct torture_context *tctx, struct dcerpc_
DATA_BLOB blob;
struct ndr_pull *ndr;
- blob.length = r.in.buf_size;
+ blob.length = r.in.offered;
blob.data = talloc_steal(tctx, r.out.service);
ndr = ndr_pull_init_blob(&blob, tctx, lp_iconv_convenience(tctx->lp_ctx));
@@ -260,6 +385,69 @@ static bool test_EnumServicesStatus(struct torture_context *tctx, struct dcerpc_
return true;
}
+static bool test_EnumDependentServicesW(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+ struct svcctl_EnumDependentServicesW r;
+ struct policy_handle h, s;
+ uint32_t needed;
+ uint32_t services_returned;
+ uint32_t i;
+ uint32_t states[] = { SERVICE_STATE_ACTIVE,
+ SERVICE_STATE_INACTIVE,
+ SERVICE_STATE_ALL };
+
+ if (!test_OpenSCManager(p, tctx, &h))
+ return false;
+
+ if (!test_OpenService(p, tctx, &h, "Netlogon", &s))
+ return false;
+
+ r.in.service = &s;
+ r.in.offered = 0;
+ r.in.state = 0;
+ r.out.service_status = NULL;
+ r.out.services_returned = &services_returned;
+ r.out.needed = &needed;
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_svcctl_EnumDependentServicesW(p, tctx, &r),
+ "EnumDependentServicesW failed!");
+
+ torture_assert_werr_equal(tctx, r.out.result, WERR_INVALID_PARAM,
+ "EnumDependentServicesW failed!");
+
+ for (i=0; i<ARRAY_SIZE(states); i++) {
+
+ r.in.state = states[i];
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_svcctl_EnumDependentServicesW(p, tctx, &r),
+ "EnumDependentServicesW failed!");
+
+ if (W_ERROR_EQUAL(r.out.result, WERR_MORE_DATA)) {
+ r.in.offered = needed;
+ r.out.service_status = talloc_array(tctx, uint8_t, needed);
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_svcctl_EnumDependentServicesW(p, tctx, &r),
+ "EnumDependentServicesW failed!");
+
+ }
+
+ torture_assert_werr_ok(tctx, r.out.result,
+ "EnumDependentServicesW failed");
+ }
+
+ if (!test_CloseServiceHandle(p, tctx, &s))
+ return false;
+
+ if (!test_CloseServiceHandle(p, tctx, &h))
+ return false;
+
+ return true;
+}
+
static bool test_SCManager(struct torture_context *tctx,
struct dcerpc_pipe *p)
{
@@ -285,10 +473,18 @@ struct torture_suite *torture_rpc_svcctl(TALLOC_CTX *mem_ctx)
test_SCManager);
torture_rpc_tcase_add_test(tcase, "EnumServicesStatus",
test_EnumServicesStatus);
+ torture_rpc_tcase_add_test(tcase, "EnumDependentServicesW",
+ test_EnumDependentServicesW);
+ torture_rpc_tcase_add_test(tcase, "QueryServiceStatus",
+ test_QueryServiceStatus);
torture_rpc_tcase_add_test(tcase, "QueryServiceStatusEx",
test_QueryServiceStatusEx);
+ torture_rpc_tcase_add_test(tcase, "QueryServiceConfigW",
+ test_QueryServiceConfigW);
torture_rpc_tcase_add_test(tcase, "QueryServiceConfig2W",
test_QueryServiceConfig2W);
+ torture_rpc_tcase_add_test(tcase, "QueryServiceObjectSecurity",
+ test_QueryServiceObjectSecurity);
return suite;
}
diff --git a/source4/torture/smb2/lock.c b/source4/torture/smb2/lock.c
index 5f0293c681..844309efd4 100644
--- a/source4/torture/smb2/lock.c
+++ b/source4/torture/smb2/lock.c
@@ -101,7 +101,7 @@ static bool test_valid_request(struct torture_context *torture, struct smb2_tree
el[0].flags = SMB2_LOCK_FLAG_EXCLUSIVE|SMB2_LOCK_FLAG_FAIL_IMMEDIATELY;
status = smb2_lock(tree, &lck);
if (TARGET_IS_WIN7(torture)) {
- CHECK_STATUS(status, NT_STATUS_WIN7_INVALID_RANGE);
+ CHECK_STATUS(status, NT_STATUS_INVALID_LOCK_RANGE);
} else {
CHECK_STATUS(status, NT_STATUS_OK);
}
@@ -110,7 +110,7 @@ static bool test_valid_request(struct torture_context *torture, struct smb2_tree
lck.in.reserved = 0x123ab2;
status = smb2_lock(tree, &lck);
if (TARGET_IS_WIN7(torture)) {
- CHECK_STATUS(status, NT_STATUS_WIN7_INVALID_RANGE);
+ CHECK_STATUS(status, NT_STATUS_INVALID_LOCK_RANGE);
} else {
CHECK_STATUS(status, NT_STATUS_OK);
}
@@ -118,7 +118,7 @@ static bool test_valid_request(struct torture_context *torture, struct smb2_tree
lck.in.reserved = 0x123ab3;
status = smb2_lock(tree, &lck);
if (TARGET_IS_WIN7(torture)) {
- CHECK_STATUS(status, NT_STATUS_WIN7_INVALID_RANGE);
+ CHECK_STATUS(status, NT_STATUS_INVALID_LOCK_RANGE);
} else if (TARGET_IS_WINDOWS(torture)) {
CHECK_STATUS(status, NT_STATUS_OK);
} else {
@@ -129,7 +129,7 @@ static bool test_valid_request(struct torture_context *torture, struct smb2_tree
lck.in.reserved = 0x123ab4;
status = smb2_lock(tree, &lck);
if (TARGET_IS_WIN7(torture)) {
- CHECK_STATUS(status, NT_STATUS_WIN7_INVALID_RANGE);
+ CHECK_STATUS(status, NT_STATUS_INVALID_LOCK_RANGE);
} else {
CHECK_STATUS(status, NT_STATUS_LOCK_NOT_GRANTED);
}
@@ -137,7 +137,7 @@ static bool test_valid_request(struct torture_context *torture, struct smb2_tree
lck.in.reserved = 0x123ab5;
status = smb2_lock(tree, &lck);
if (TARGET_IS_WIN7(torture)) {
- CHECK_STATUS(status, NT_STATUS_WIN7_INVALID_RANGE);
+ CHECK_STATUS(status, NT_STATUS_INVALID_LOCK_RANGE);
} else if (TARGET_IS_WINDOWS(torture)) {
CHECK_STATUS(status, NT_STATUS_OK);
} else {
diff --git a/source4/utils/config.mk b/source4/utils/config.mk
index ea8e00ff8a..5fa7e200f0 100644
--- a/source4/utils/config.mk
+++ b/source4/utils/config.mk
@@ -92,16 +92,3 @@ oLschema2ldif_OBJ_FILES = $(addprefix $(utilssrcdir)/, oLschema2ldif.o)
MANPAGES += $(utilssrcdir)/man/oLschema2ldif.1
-################################################
-# Start BINARY ad2oLschema
-[BINARY::ad2oLschema]
-INSTALLDIR = BINDIR
-PRIVATE_DEPENDENCIES = \
- LIBLDB_CMDLINE SAMDB
-# End BINARY ad2oLschema
-################################################
-
-ad2oLschema_OBJ_FILES = $(addprefix $(utilssrcdir)/, ad2oLschema.o)
-
-MANPAGES += $(utilssrcdir)/man/ad2oLschema.1
-