735 lines
16 KiB
C#
735 lines
16 KiB
C#
// This code is derived from jcifs smb client library <jcifs at samba dot org>
|
|
// Ported by J. Arturo <webmaster at komodosoft dot net>
|
|
//
|
|
// 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 2.1 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, write to the Free Software
|
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
using SharpCifs.Dcerpc.Ndr;
|
|
|
|
namespace SharpCifs.Dcerpc.Msrpc
|
|
{
|
|
public class Srvsvc
|
|
{
|
|
public static string GetSyntax()
|
|
{
|
|
return "4b324fc8-1670-01d3-1278-5a47bf6ee188:3.0";
|
|
}
|
|
|
|
public class ShareInfo0 : NdrObject
|
|
{
|
|
public string Netname;
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode(NdrBuffer dst)
|
|
{
|
|
dst.Align(4);
|
|
dst.Enc_ndr_referent(Netname, 1);
|
|
if (Netname != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
dst.Enc_ndr_string(Netname);
|
|
}
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode(NdrBuffer src)
|
|
{
|
|
src.Align(4);
|
|
int netnamep = src.Dec_ndr_long();
|
|
if (netnamep != 0)
|
|
{
|
|
src = src.Deferred;
|
|
Netname = src.Dec_ndr_string();
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ShareInfoCtr0 : NdrObject
|
|
{
|
|
public int Count;
|
|
|
|
public ShareInfo0[] Array;
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode(NdrBuffer dst)
|
|
{
|
|
dst.Align(4);
|
|
dst.Enc_ndr_long(Count);
|
|
dst.Enc_ndr_referent(Array, 1);
|
|
if (Array != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
int arrays = Count;
|
|
dst.Enc_ndr_long(arrays);
|
|
int arrayi = dst.Index;
|
|
dst.Advance(4 * arrays);
|
|
dst = dst.Derive(arrayi);
|
|
for (int i = 0; i < arrays; i++)
|
|
{
|
|
Array[i].Encode(dst);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode(NdrBuffer src)
|
|
{
|
|
src.Align(4);
|
|
Count = src.Dec_ndr_long();
|
|
int arrayp = src.Dec_ndr_long();
|
|
if (arrayp != 0)
|
|
{
|
|
src = src.Deferred;
|
|
int arrays = src.Dec_ndr_long();
|
|
int arrayi = src.Index;
|
|
src.Advance(4 * arrays);
|
|
if (Array == null)
|
|
{
|
|
if (arrays < 0 || arrays > unchecked(0xFFFF))
|
|
{
|
|
throw new NdrException(NdrException.InvalidConformance);
|
|
}
|
|
Array = new ShareInfo0[arrays];
|
|
}
|
|
src = src.Derive(arrayi);
|
|
for (int i = 0; i < arrays; i++)
|
|
{
|
|
if (Array[i] == null)
|
|
{
|
|
Array[i] = new ShareInfo0();
|
|
}
|
|
Array[i].Decode(src);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ShareInfo1 : NdrObject
|
|
{
|
|
public string Netname;
|
|
|
|
public int Type;
|
|
|
|
public string Remark;
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode(NdrBuffer dst)
|
|
{
|
|
dst.Align(4);
|
|
dst.Enc_ndr_referent(Netname, 1);
|
|
dst.Enc_ndr_long(Type);
|
|
dst.Enc_ndr_referent(Remark, 1);
|
|
if (Netname != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
dst.Enc_ndr_string(Netname);
|
|
}
|
|
if (Remark != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
dst.Enc_ndr_string(Remark);
|
|
}
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode(NdrBuffer src)
|
|
{
|
|
src.Align(4);
|
|
int netnamep = src.Dec_ndr_long();
|
|
Type = src.Dec_ndr_long();
|
|
int remarkp = src.Dec_ndr_long();
|
|
if (netnamep != 0)
|
|
{
|
|
src = src.Deferred;
|
|
Netname = src.Dec_ndr_string();
|
|
}
|
|
if (remarkp != 0)
|
|
{
|
|
src = src.Deferred;
|
|
Remark = src.Dec_ndr_string();
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ShareInfoCtr1 : NdrObject
|
|
{
|
|
public int Count;
|
|
|
|
public ShareInfo1[] Array;
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode(NdrBuffer dst)
|
|
{
|
|
dst.Align(4);
|
|
dst.Enc_ndr_long(Count);
|
|
dst.Enc_ndr_referent(Array, 1);
|
|
if (Array != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
int arrays = Count;
|
|
dst.Enc_ndr_long(arrays);
|
|
int arrayi = dst.Index;
|
|
dst.Advance(12 * arrays);
|
|
dst = dst.Derive(arrayi);
|
|
for (int i = 0; i < arrays; i++)
|
|
{
|
|
Array[i].Encode(dst);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode(NdrBuffer src)
|
|
{
|
|
src.Align(4);
|
|
Count = src.Dec_ndr_long();
|
|
int arrayp = src.Dec_ndr_long();
|
|
if (arrayp != 0)
|
|
{
|
|
src = src.Deferred;
|
|
int arrays = src.Dec_ndr_long();
|
|
int arrayi = src.Index;
|
|
src.Advance(12 * arrays);
|
|
if (Array == null)
|
|
{
|
|
if (arrays < 0 || arrays > unchecked(0xFFFF))
|
|
{
|
|
throw new NdrException(NdrException.InvalidConformance);
|
|
}
|
|
Array = new ShareInfo1[arrays];
|
|
}
|
|
src = src.Derive(arrayi);
|
|
for (int i = 0; i < arrays; i++)
|
|
{
|
|
if (Array[i] == null)
|
|
{
|
|
Array[i] = new ShareInfo1();
|
|
}
|
|
Array[i].Decode(src);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ShareInfo502 : NdrObject
|
|
{
|
|
public string Netname;
|
|
|
|
public int Type;
|
|
|
|
public string Remark;
|
|
|
|
public int Permissions;
|
|
|
|
public int MaxUses;
|
|
|
|
public int CurrentUses;
|
|
|
|
public string Path;
|
|
|
|
public string Password;
|
|
|
|
public int SdSize;
|
|
|
|
public byte[] SecurityDescriptor;
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode(NdrBuffer dst)
|
|
{
|
|
dst.Align(4);
|
|
dst.Enc_ndr_referent(Netname, 1);
|
|
dst.Enc_ndr_long(Type);
|
|
dst.Enc_ndr_referent(Remark, 1);
|
|
dst.Enc_ndr_long(Permissions);
|
|
dst.Enc_ndr_long(MaxUses);
|
|
dst.Enc_ndr_long(CurrentUses);
|
|
dst.Enc_ndr_referent(Path, 1);
|
|
dst.Enc_ndr_referent(Password, 1);
|
|
dst.Enc_ndr_long(SdSize);
|
|
dst.Enc_ndr_referent(SecurityDescriptor, 1);
|
|
if (Netname != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
dst.Enc_ndr_string(Netname);
|
|
}
|
|
if (Remark != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
dst.Enc_ndr_string(Remark);
|
|
}
|
|
if (Path != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
dst.Enc_ndr_string(Path);
|
|
}
|
|
if (Password != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
dst.Enc_ndr_string(Password);
|
|
}
|
|
if (SecurityDescriptor != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
int securityDescriptors = SdSize;
|
|
dst.Enc_ndr_long(securityDescriptors);
|
|
int securityDescriptori = dst.Index;
|
|
dst.Advance(1 * securityDescriptors);
|
|
dst = dst.Derive(securityDescriptori);
|
|
for (int i = 0; i < securityDescriptors; i++)
|
|
{
|
|
dst.Enc_ndr_small(SecurityDescriptor[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode(NdrBuffer src)
|
|
{
|
|
src.Align(4);
|
|
int netnamep = src.Dec_ndr_long();
|
|
Type = src.Dec_ndr_long();
|
|
int remarkp = src.Dec_ndr_long();
|
|
Permissions = src.Dec_ndr_long();
|
|
MaxUses = src.Dec_ndr_long();
|
|
CurrentUses = src.Dec_ndr_long();
|
|
int pathp = src.Dec_ndr_long();
|
|
int passwordp = src.Dec_ndr_long();
|
|
SdSize = src.Dec_ndr_long();
|
|
int securityDescriptorp = src.Dec_ndr_long();
|
|
if (netnamep != 0)
|
|
{
|
|
src = src.Deferred;
|
|
Netname = src.Dec_ndr_string();
|
|
}
|
|
if (remarkp != 0)
|
|
{
|
|
src = src.Deferred;
|
|
Remark = src.Dec_ndr_string();
|
|
}
|
|
if (pathp != 0)
|
|
{
|
|
src = src.Deferred;
|
|
Path = src.Dec_ndr_string();
|
|
}
|
|
if (passwordp != 0)
|
|
{
|
|
src = src.Deferred;
|
|
Password = src.Dec_ndr_string();
|
|
}
|
|
if (securityDescriptorp != 0)
|
|
{
|
|
src = src.Deferred;
|
|
int securityDescriptors = src.Dec_ndr_long();
|
|
int securityDescriptori = src.Index;
|
|
src.Advance(1 * securityDescriptors);
|
|
if (SecurityDescriptor == null)
|
|
{
|
|
if (securityDescriptors < 0 || securityDescriptors > unchecked(0xFFFF))
|
|
{
|
|
throw new NdrException(NdrException.InvalidConformance);
|
|
}
|
|
SecurityDescriptor = new byte[securityDescriptors];
|
|
}
|
|
src = src.Derive(securityDescriptori);
|
|
for (int i = 0; i < securityDescriptors; i++)
|
|
{
|
|
SecurityDescriptor[i] = unchecked((byte)src.Dec_ndr_small());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ShareInfoCtr502 : NdrObject
|
|
{
|
|
public int Count;
|
|
|
|
public ShareInfo502[] Array;
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode(NdrBuffer dst)
|
|
{
|
|
dst.Align(4);
|
|
dst.Enc_ndr_long(Count);
|
|
dst.Enc_ndr_referent(Array, 1);
|
|
if (Array != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
int arrays = Count;
|
|
dst.Enc_ndr_long(arrays);
|
|
int arrayi = dst.Index;
|
|
dst.Advance(40 * arrays);
|
|
dst = dst.Derive(arrayi);
|
|
for (int i = 0; i < arrays; i++)
|
|
{
|
|
Array[i].Encode(dst);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode(NdrBuffer src)
|
|
{
|
|
src.Align(4);
|
|
Count = src.Dec_ndr_long();
|
|
int arrayp = src.Dec_ndr_long();
|
|
if (arrayp != 0)
|
|
{
|
|
src = src.Deferred;
|
|
int arrays = src.Dec_ndr_long();
|
|
int arrayi = src.Index;
|
|
src.Advance(40 * arrays);
|
|
if (Array == null)
|
|
{
|
|
if (arrays < 0 || arrays > unchecked(0xFFFF))
|
|
{
|
|
throw new NdrException(NdrException.InvalidConformance);
|
|
}
|
|
Array = new ShareInfo502[arrays];
|
|
}
|
|
src = src.Derive(arrayi);
|
|
for (int i = 0; i < arrays; i++)
|
|
{
|
|
if (Array[i] == null)
|
|
{
|
|
Array[i] = new ShareInfo502();
|
|
}
|
|
Array[i].Decode(src);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ShareEnumAll : DcerpcMessage
|
|
{
|
|
public override int GetOpnum()
|
|
{
|
|
return unchecked(0x0f);
|
|
}
|
|
|
|
public int Retval;
|
|
|
|
public string Servername;
|
|
|
|
public int Level;
|
|
|
|
public NdrObject Info;
|
|
|
|
public int Prefmaxlen;
|
|
|
|
public int Totalentries;
|
|
|
|
public int ResumeHandle;
|
|
|
|
public ShareEnumAll(string servername, int level, NdrObject info, int prefmaxlen,
|
|
int totalentries, int resumeHandle)
|
|
{
|
|
this.Servername = servername;
|
|
this.Level = level;
|
|
this.Info = info;
|
|
this.Prefmaxlen = prefmaxlen;
|
|
this.Totalentries = totalentries;
|
|
this.ResumeHandle = resumeHandle;
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode_in(NdrBuffer dst)
|
|
{
|
|
dst.Enc_ndr_referent(Servername, 1);
|
|
if (Servername != null)
|
|
{
|
|
dst.Enc_ndr_string(Servername);
|
|
}
|
|
dst.Enc_ndr_long(Level);
|
|
int descr = Level;
|
|
dst.Enc_ndr_long(descr);
|
|
dst.Enc_ndr_referent(Info, 1);
|
|
if (Info != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
Info.Encode(dst);
|
|
}
|
|
dst.Enc_ndr_long(Prefmaxlen);
|
|
dst.Enc_ndr_long(ResumeHandle);
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode_out(NdrBuffer src)
|
|
{
|
|
Level = src.Dec_ndr_long();
|
|
src.Dec_ndr_long();
|
|
int infop = src.Dec_ndr_long();
|
|
if (infop != 0)
|
|
{
|
|
if (Info == null)
|
|
{
|
|
Info = new ShareInfoCtr0();
|
|
}
|
|
src = src.Deferred;
|
|
Info.Decode(src);
|
|
}
|
|
Totalentries = src.Dec_ndr_long();
|
|
ResumeHandle = src.Dec_ndr_long();
|
|
Retval = src.Dec_ndr_long();
|
|
}
|
|
}
|
|
|
|
public class ShareGetInfo : DcerpcMessage
|
|
{
|
|
public override int GetOpnum()
|
|
{
|
|
return unchecked(0x10);
|
|
}
|
|
|
|
public int Retval;
|
|
|
|
public string Servername;
|
|
|
|
public string Sharename;
|
|
|
|
public int Level;
|
|
|
|
public NdrObject Info;
|
|
|
|
public ShareGetInfo(string servername, string sharename, int level, NdrObject info
|
|
)
|
|
{
|
|
this.Servername = servername;
|
|
this.Sharename = sharename;
|
|
this.Level = level;
|
|
this.Info = info;
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode_in(NdrBuffer dst)
|
|
{
|
|
dst.Enc_ndr_referent(Servername, 1);
|
|
if (Servername != null)
|
|
{
|
|
dst.Enc_ndr_string(Servername);
|
|
}
|
|
dst.Enc_ndr_string(Sharename);
|
|
dst.Enc_ndr_long(Level);
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode_out(NdrBuffer src)
|
|
{
|
|
src.Dec_ndr_long();
|
|
int infop = src.Dec_ndr_long();
|
|
if (infop != 0)
|
|
{
|
|
if (Info == null)
|
|
{
|
|
Info = new ShareInfo0();
|
|
}
|
|
src = src.Deferred;
|
|
Info.Decode(src);
|
|
}
|
|
Retval = src.Dec_ndr_long();
|
|
}
|
|
}
|
|
|
|
public class ServerInfo100 : NdrObject
|
|
{
|
|
public int PlatformId;
|
|
|
|
public string Name;
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode(NdrBuffer dst)
|
|
{
|
|
dst.Align(4);
|
|
dst.Enc_ndr_long(PlatformId);
|
|
dst.Enc_ndr_referent(Name, 1);
|
|
if (Name != null)
|
|
{
|
|
dst = dst.Deferred;
|
|
dst.Enc_ndr_string(Name);
|
|
}
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode(NdrBuffer src)
|
|
{
|
|
src.Align(4);
|
|
PlatformId = src.Dec_ndr_long();
|
|
int namep = src.Dec_ndr_long();
|
|
if (namep != 0)
|
|
{
|
|
src = src.Deferred;
|
|
Name = src.Dec_ndr_string();
|
|
}
|
|
}
|
|
}
|
|
|
|
public class ServerGetInfo : DcerpcMessage
|
|
{
|
|
public override int GetOpnum()
|
|
{
|
|
return unchecked(0x15);
|
|
}
|
|
|
|
public int Retval;
|
|
|
|
public string Servername;
|
|
|
|
public int Level;
|
|
|
|
public NdrObject Info;
|
|
|
|
public ServerGetInfo(string servername, int level, NdrObject info)
|
|
{
|
|
this.Servername = servername;
|
|
this.Level = level;
|
|
this.Info = info;
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode_in(NdrBuffer dst)
|
|
{
|
|
dst.Enc_ndr_referent(Servername, 1);
|
|
if (Servername != null)
|
|
{
|
|
dst.Enc_ndr_string(Servername);
|
|
}
|
|
dst.Enc_ndr_long(Level);
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode_out(NdrBuffer src)
|
|
{
|
|
src.Dec_ndr_long();
|
|
int infop = src.Dec_ndr_long();
|
|
if (infop != 0)
|
|
{
|
|
if (Info == null)
|
|
{
|
|
Info = new ServerInfo100();
|
|
}
|
|
src = src.Deferred;
|
|
Info.Decode(src);
|
|
}
|
|
Retval = src.Dec_ndr_long();
|
|
}
|
|
}
|
|
|
|
public class TimeOfDayInfo : NdrObject
|
|
{
|
|
public int Elapsedt;
|
|
|
|
public int Msecs;
|
|
|
|
public int Hours;
|
|
|
|
public int Mins;
|
|
|
|
public int Secs;
|
|
|
|
public int Hunds;
|
|
|
|
public int Timezone;
|
|
|
|
public int Tinterval;
|
|
|
|
public int Day;
|
|
|
|
public int Month;
|
|
|
|
public int Year;
|
|
|
|
public int Weekday;
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode(NdrBuffer dst)
|
|
{
|
|
dst.Align(4);
|
|
dst.Enc_ndr_long(Elapsedt);
|
|
dst.Enc_ndr_long(Msecs);
|
|
dst.Enc_ndr_long(Hours);
|
|
dst.Enc_ndr_long(Mins);
|
|
dst.Enc_ndr_long(Secs);
|
|
dst.Enc_ndr_long(Hunds);
|
|
dst.Enc_ndr_long(Timezone);
|
|
dst.Enc_ndr_long(Tinterval);
|
|
dst.Enc_ndr_long(Day);
|
|
dst.Enc_ndr_long(Month);
|
|
dst.Enc_ndr_long(Year);
|
|
dst.Enc_ndr_long(Weekday);
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode(NdrBuffer src)
|
|
{
|
|
src.Align(4);
|
|
Elapsedt = src.Dec_ndr_long();
|
|
Msecs = src.Dec_ndr_long();
|
|
Hours = src.Dec_ndr_long();
|
|
Mins = src.Dec_ndr_long();
|
|
Secs = src.Dec_ndr_long();
|
|
Hunds = src.Dec_ndr_long();
|
|
Timezone = src.Dec_ndr_long();
|
|
Tinterval = src.Dec_ndr_long();
|
|
Day = src.Dec_ndr_long();
|
|
Month = src.Dec_ndr_long();
|
|
Year = src.Dec_ndr_long();
|
|
Weekday = src.Dec_ndr_long();
|
|
}
|
|
}
|
|
|
|
public class RemoteTod : DcerpcMessage
|
|
{
|
|
public override int GetOpnum()
|
|
{
|
|
return unchecked(0x1c);
|
|
}
|
|
|
|
public int Retval;
|
|
|
|
public string Servername;
|
|
|
|
public TimeOfDayInfo Info;
|
|
|
|
public RemoteTod(string servername, TimeOfDayInfo info)
|
|
{
|
|
this.Servername = servername;
|
|
this.Info = info;
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Encode_in(NdrBuffer dst)
|
|
{
|
|
dst.Enc_ndr_referent(Servername, 1);
|
|
if (Servername != null)
|
|
{
|
|
dst.Enc_ndr_string(Servername);
|
|
}
|
|
}
|
|
|
|
/// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
|
|
public override void Decode_out(NdrBuffer src)
|
|
{
|
|
int infop = src.Dec_ndr_long();
|
|
if (infop != 0)
|
|
{
|
|
if (Info == null)
|
|
{
|
|
Info = new TimeOfDayInfo();
|
|
}
|
|
Info.Decode(src);
|
|
}
|
|
Retval = src.Dec_ndr_long();
|
|
}
|
|
}
|
|
}
|
|
}
|