[cifs-protocol] repsFromTo blob format (WSPP CAR)

Hongwei Sun hongweis at microsoft.com
Tue Oct 13 15:46:05 MDT 2009


Tridge,

   We finished the investigation regarding the different versions of structures referenced by cbOtherDraOffset in RESP_FROM and RESP_TO (5.107, and 5.108 MS-DRSR).

   We made the following changes to the MS-DRSR.

   In  5.107 for RESP_FROM and 5.108 for RESP_TO , the changes are:

       dwVersion (4 bytes):  The version of this structure. It must be 1 or 2. <19>

	  	<19> Section 5.106: Windows Server 2000 and Windows Server 2003 DCs have value 1 in field dwVersion.  Windows Server 2008 and Windows 2008 R2 DCs have value 2 in field dwVersion.

	cbOtherDraOffset (4 bytes):  The offset from the start of the structure to a location in the data field, specifying the start of a structure that contains a NetworkAddress for the source DC. If dwVersion is 1, it is an MTX_ADDR structure. If dwVersion is 2, it is a DSA_RPC_INST structure.

	 cbOtherDra (4 bytes):  The size of the structure pointed to by cbOtherDraOffset.

	 data (variable):  The storage for the rest of the structure. The structure pointed to by cbOtherDraOffset and cbPasDataOffset are packed into this field and can be referenced using the offsets.
   
   In 5.33, DSA_RPC_INST is defined as:
	
       DSA_RPC_INST is a concrete type for an instance of NTDSA.
	 typedef struct _DSA_RPC_INST
	 {
	      DWORD cb;
    		DWORD cbpszServerOffset;
    		DWORD cbpszAnnotationOffset;
    		DWORD cbpszInstanceOffset;
    		DWORD cbpguidInstanceOffset;
	 } DSA_RPC_INST, *PDSA_RPC_INST;

       cb:  The total number of bytes in the DSA_RPC_INST structure.
	 cbpszServerOffset:  The offset from the start of the DSA_RPC_INST structure to a location that specifies the start of the server name of this instance.
	 cbpszAnnotationOffset:  The offset from the start of the DSA_RPC_INST structure to a location that specifies the start of the annotation of this instance.
	 cbpszInstanceOffset:  The offset from the start of the DSA_RPC_INST structure to a location that specifies the start of the NetworkAddress of this instance.
	 cbpguidInstanceOffset:  The offset from the start of the DSA_RPC_INST structure to a location that specifies the start of the GUID for the instance.  


    The information above will be updated into the future release of the MS-DRSR document.  Please let us know if you have more questions.

Thanks!

Hongwei 
  
-----Original Message-----
From: tridge at samba.org [mailto:tridge at samba.org] 
Sent: Sunday, September 20, 2009 12:15 PM
To: Interoperability Documentation Help
Cc: cifs-protocol at samba.org; pfif at tridgell.net; metze at samba.org
Subject: repsFromTo blob format (WSPP CAR)

We've been unable to find a description in the WSPP docs of the format
for the repsFromToBlob blob that is used to encode the repsFrom and
repsTo attributes in DRS/LDAP.

For now we have produced our own IDL for the blobs, which you can see
here:

  http://samba.org/ftp/unpacked/samba_4_0_test/librpc/idl/drsblobs.idl

in the typedef for the structure repsFromToBlob, but it would be good
if we could confirm this with IDL (or other binary structure encoding)
in the WSPP docs.

The MS-DRSR doc shows some examples for version1 of the structure, but
nothing for version 2 (version 2 is used by W2K8).

Cheers, Tridge



More information about the cifs-protocol mailing list