示例#1
0
        public void Read(NDRParser parser)
        {
            parser.BeginStructure(); // SHARE_ENUM_STRUCT
            Level = parser.ReadUInt32();
            parser.BeginStructure(); // SHARE_ENUM_UNION
            // 14.3.8 - For a non-encapsulated union, the discriminant is marshalled into the transmitted data stream twice.
            // once as the field or parameter, which is referenced by the switch_is construct, in the procedure argument list;
            // and once as the first part of the union representation.
            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;

            default:
                throw new NotImplementedException();
            }
            parser.EndStructure(); // SHARE_ENUM_UNION
            parser.EndStructure(); // SHARE_ENUM_STRUCT
        }
示例#2
0
 public void Read(NDRParser parser)
 {
     parser.BeginStructure();
     parser.ReadEmbeddedStructureFullPointer(ref NetName);
     ShareType = new ShareTypeExtended(parser);
     parser.ReadEmbeddedStructureFullPointer(ref Remark);
     parser.EndStructure();
 }
示例#3
0
 public override void Read(NDRParser parser)
 {
     parser.BeginStructure();
     PlatformID = parser.ReadUInt32();
     parser.ReadEmbeddedStructureFullPointer(ref ComputerName);
     parser.ReadEmbeddedStructureFullPointer(ref LanGroup);
     VerMajor = parser.ReadUInt32();
     VerMinor = parser.ReadUInt32();
     parser.ReadEmbeddedStructureFullPointer(ref LanRoot);
     parser.EndStructure();
 }
示例#4
0
 public void Read(NDRParser parser)
 {
     parser.BeginStructure();
     parser.ReadEmbeddedStructureFullPointer(ref NetName);
     ShareType = new ShareTypeExtended(parser);
     parser.ReadEmbeddedStructureFullPointer(ref Remark);
     Permissions = (Permissions)parser.ReadUInt32();
     MaxUses     = parser.ReadUInt32();
     CurrentUses = parser.ReadUInt32();
     parser.ReadEmbeddedStructureFullPointer(ref Path);
     parser.ReadEmbeddedStructureFullPointer(ref Password);
     parser.EndStructure();
 }
示例#5
0
 public override void Read(NDRParser parser)
 {
     // If an array, structure, or union embeds a pointer, the representation of the referent of the
     // pointer is deferred to a position in the octet stream that follows the representation of the
     // embedding construction
     parser.BeginStructure();
     PlatformID = parser.ReadUInt32();
     parser.ReadEmbeddedStructureFullPointer(ref ComputerName);
     parser.ReadEmbeddedStructureFullPointer(ref LanGroup);
     VerMajor = parser.ReadUInt32();
     VerMinor = parser.ReadUInt32();
     parser.EndStructure();
 }
示例#6
0
 public void Read(NDRParser parser)
 {
     parser.BeginStructure();
     _ = parser.ReadUInt32();
     parser.ReadEmbeddedStructureFullPointer(ref Entries);
     parser.EndStructure();
 }
示例#7
0
    public NetrServerStatisticsGetResponse(byte[] buffer)
    {
        NDRParser parser = new NDRParser(buffer);

        parser.BeginStructure();
        parser.ReadEmbeddedStructureFullPointer(ref StatServer);
        parser.EndStructure();
    }
        public void Read(NDRParser parser)
        {
            parser.BeginStructure();
            uint itemCount = parser.ReadUInt32();

            parser.ReadEmbeddedStructureFullPointer(ref Items);
            parser.EndStructure();
        }
示例#9
0
        public void Read(NDRParser parser)
        {
            parser.BeginStructure();
            uint count = parser.ReadUInt32();

            parser.ReadEmbeddedStructureFullPointer <NDRConformantArray <ShareInfo0Entry> >(ref Entries);
            parser.EndStructure();
        }
示例#10
0
    public NetrRemoteTODResponse(byte[] buffer)
    {
        NDRParser parser = new NDRParser(buffer);

        parser.BeginStructure();
        parser.ReadEmbeddedStructureFullPointer(ref TimeOfDayInfo);
        parser.EndStructure();
    }
    public DsrGetDcNameResponse(byte[] buffer)
    {
        NDRParser parser = new NDRParser(buffer);

        parser.BeginStructure();
        parser.ReadEmbeddedStructureFullPointer(ref DCInfo);
        parser.EndStructure();
    }
示例#12
0
        public void Read(NDRParser parser)
        {
            parser.BeginStructure();
            parser.ReadStructure(unicode_string);
            Sid = new SID();
            NDRSID NDRSid = new NDRSID(Sid);

            parser.ReadEmbeddedStructureFullPointer(ref NDRSid);
            parser.EndStructure();
        }
示例#13
0
        public void Read(NDRParser parser)
        {
            parser.BeginStructure();
            Entries = parser.ReadUInt32();

            Names = new NDRConformantArray <LsaTrustInformation>();
            parser.ReadEmbeddedStructureFullPointer(ref Names);
            MaxEntries = parser.ReadUInt32();
            parser.EndStructure();
        }
示例#14
0
        public void Read(NDRParser parser)
        {
            parser.BeginStructure();
            Level = parser.ReadUInt32();
            switch (Level)
            {
            case 100:
                WorkstationInfo100?info100 = null;
                parser.ReadEmbeddedStructureFullPointer(ref info100);
                Info = info100;
                break;

            case 101:
                WorkstationInfo101?info101 = null;
                parser.ReadEmbeddedStructureFullPointer(ref info101);
                Info = info101;
                break;

            default:
                throw new NotImplementedException();
            }
            parser.EndStructure();
        }
示例#15
0
        public void Read(NDRParser parser)
        {
            parser.BeginStructure(); // SHARE_INFO Union
            Level = parser.ReadUInt32();
            switch (Level)
            {
            case 100:
                ShareInfo0Entry info0 = null;
                parser.ReadEmbeddedStructureFullPointer <ShareInfo0Entry>(ref info0);
                Info = info0;
                break;

            case 101:
                ShareInfo1Entry info1 = null;
                parser.ReadEmbeddedStructureFullPointer <ShareInfo1Entry>(ref info1);
                Info = info1;
                break;

            default:
                throw new NotImplementedException();
            }
            parser.EndStructure(); // SHARE_INFO Union
        }
    public LsarLookupSidsResponse(byte[] buffer)
    {
        NDRParser parser = new NDRParser(buffer);

        parser.BeginStructure();
        parser.ReadEmbeddedStructureFullPointer(ref DomainList);
        parser.EndStructure();

        TranslatedSids = new LsaTranslatedArray <LsaTranslatedName>();
        parser.ReadStructure(TranslatedSids);

        Count = parser.ReadUInt32();

        parser.EndStructure();
    }
示例#17
0
        public void Read(NDRParser parser)
        {
            parser.BeginStructure(); // SERVER_INFO Union
            Level = parser.ReadUInt32();
            switch (Level)
            {
            case 100:
                ServerInfo100 info100 = null;
                parser.ReadEmbeddedStructureFullPointer <ServerInfo100>(ref info100);
                Info = info100;
                break;

            case 101:
                ServerInfo101 info101 = null;
                parser.ReadEmbeddedStructureFullPointer <ServerInfo101>(ref info101);
                Info = info101;
                break;

            default:
                throw new NotImplementedException();
            }
            ;
            parser.EndStructure(); // SERVER_INFO Union
        }
        public void Read(NDRParser parser)
        {
            parser.BeginStructure();
            parser.ReadEmbeddedStructureFullPointer(ref DomainControllerName);
            parser.ReadEmbeddedStructureFullPointer(ref DomainControllerAddress);
            DomainControllerAddressType = parser.ReadUInt32();

            DomainGuid = new Guid(parser.ReadBytes(16));

            parser.ReadEmbeddedStructureFullPointer(ref DomainName);
            parser.ReadEmbeddedStructureFullPointer(ref DnsForestName);

            Flags = parser.ReadUInt32();
            parser.ReadEmbeddedStructureFullPointer(ref DcSiteName);
            parser.ReadEmbeddedStructureFullPointer(ref ClientSiteName);

            parser.EndStructure();
        }
示例#19
0
 public void Read(NDRParser parser)
 {
     parser.BeginStructure();
     parser.ReadEmbeddedStructureFullPointer(ref NetName);
     parser.EndStructure();
 }
示例#20
0
 public void Read(NDRParser parser)
 {
     lenght = parser.ReadUInt16();
     size   = parser.ReadUInt16();
     parser.ReadEmbeddedStructureFullPointer(ref buffer);
 }