12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System;
- using System.Collections.Generic;
- using SMBLibrary.RPC;
- using Utilities;
- namespace SMBLibrary.Services
- {
-
-
-
- public class ShareEnum : INDRStructure
- {
- public uint Level;
- public IShareInfoContainer Info;
- public ShareEnum()
- {
- }
- public ShareEnum(uint level)
- {
- Level = level;
- }
- public ShareEnum(IShareInfoContainer info)
- {
- Level = info.Level;
- Info = info;
- }
- public ShareEnum(NDRParser parser)
- {
- Read(parser);
- }
- public void Read(NDRParser parser)
- {
- parser.BeginStructure();
- Level = parser.ReadUInt32();
- parser.BeginStructure();
-
-
-
- uint level = parser.ReadUInt32();
- switch (level)
- {
- case 0:
- ShareInfo0Container info0 = null;
- parser.ReadEmbeddedStructureFullPointer<ShareInfo0Container>(ref info0);
- Info = info0;
- break;
- case 1:
- ShareInfo1Container info1 = null;
- parser.ReadEmbeddedStructureFullPointer<ShareInfo1Container>(ref info1);
- Info = info1;
- break;
- case 2:
- case 501:
- case 502:
- case 503:
- throw new NotImplementedException();
- default:
- break;
- }
- parser.EndStructure();
- parser.EndStructure();
- }
- public void Write(NDRWriter writer)
- {
- if (Info != null && Level != Info.Level)
- {
- throw new ArgumentException("SHARE_ENUM_STRUCT Level mismatch");
- }
- writer.BeginStructure();
- writer.WriteUInt32(Level);
- writer.BeginStructure();
- writer.WriteUInt32(Level);
- writer.WriteEmbeddedStructureFullPointer(Info);
- writer.EndStructure();
- writer.EndStructure();
- }
- }
- }
|