mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-15 10:43:30 +01:00
merge common implementations and server implementations
This commit is contained in:
734
Emby.Server.Implementations/IO/SharpCifs/Dcerpc/Msrpc/Srvsvc.cs
Normal file
734
Emby.Server.Implementations/IO/SharpCifs/Dcerpc/Msrpc/Srvsvc.cs
Normal file
@@ -0,0 +1,734 @@
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user