Esempio n. 1
0
        public override void Marshal(NdrBuffer buffer)
        {
            if (buffer == null)
            {
                throw new ArgumentNullException(nameof(buffer));
            }

            buffer.WriteStruct(this.LogonTime);
            buffer.WriteStruct(this.LogoffTime);
            buffer.WriteStruct(this.KickOffTime);
            buffer.WriteStruct(this.PwdLastChangeTime);
            buffer.WriteStruct(this.PwdCanChangeTime);
            buffer.WriteStruct(this.PwdMustChangeTime);

            buffer.WriteStruct(this.UserName);
            buffer.WriteStruct(this.UserDisplayName);
            buffer.WriteStruct(this.LogonScript);
            buffer.WriteStruct(this.ProfilePath);
            buffer.WriteStruct(this.HomeDirectory);
            buffer.WriteStruct(this.HomeDrive);

            buffer.WriteInt16LittleEndian(this.LogonCount);
            buffer.WriteInt16LittleEndian(this.BadPasswordCount);

            buffer.WriteUInt32LittleEndian(this.UserId);
            buffer.WriteUInt32LittleEndian(this.GroupId);

            buffer.WriteInt32LittleEndian(this.GroupCount);
            buffer.WriteDeferredStructArray(this.GroupIds);

            buffer.WriteInt32LittleEndian((int)this.UserFlags);

            buffer.WriteMemory(this.UserSessionKey);

            buffer.WriteStruct(this.ServerName);
            buffer.WriteStruct(this.DomainName);

            buffer.WriteConformantStruct(this.DomainId);

            buffer.WriteFixedPrimitiveArray(this.Reserved1.Span);

            buffer.WriteInt32LittleEndian((int)this.UserAccountControl);
            buffer.WriteInt32LittleEndian(this.SubAuthStatus);

            buffer.WriteStruct(this.LastSuccessfulILogon);
            buffer.WriteStruct(this.LastFailedILogon);
            buffer.WriteInt32LittleEndian(this.FailedILogonCount);

            buffer.WriteInt32LittleEndian(this.Reserved3);

            buffer.WriteInt32LittleEndian(this.ExtraSidCount);
            buffer.WriteDeferredConformantStructArray(this.ExtraIds);

            buffer.WriteConformantStruct(this.ResourceDomainId);

            buffer.WriteInt32LittleEndian(this.ResourceGroupCount);
            buffer.WriteDeferredStructArray(this.ResourceGroupIds);
        }
Esempio n. 2
0
        public override void Marshal(NdrBuffer buffer)
        {
            buffer.WriteStruct(LogonTime);
            buffer.WriteStruct(LogoffTime);
            buffer.WriteStruct(KickOffTime);
            buffer.WriteStruct(PwdLastChangeTime);
            buffer.WriteStruct(PwdCanChangeTime);
            buffer.WriteStruct(PwdMustChangeTime);

            buffer.WriteStruct(UserName);
            buffer.WriteStruct(UserDisplayName);
            buffer.WriteStruct(LogonScript);
            buffer.WriteStruct(ProfilePath);
            buffer.WriteStruct(HomeDirectory);
            buffer.WriteStruct(HomeDrive);

            buffer.WriteInt16LittleEndian(LogonCount);
            buffer.WriteInt16LittleEndian(BadPasswordCount);

            buffer.WriteInt32LittleEndian(UserId);
            buffer.WriteInt32LittleEndian(GroupId);

            buffer.WriteInt32LittleEndian(GroupCount);
            buffer.WriteDeferredStructArray(GroupIds);

            buffer.WriteInt32LittleEndian((int)UserFlags);

            buffer.WriteMemory(UserSessionKey);

            buffer.WriteStruct(ServerName);
            buffer.WriteStruct(DomainName);

            buffer.WriteConformantStruct(DomainId);

            buffer.WriteFixedPrimitiveArray(Reserved1.Span);

            buffer.WriteInt32LittleEndian((int)UserAccountControl);
            buffer.WriteInt32LittleEndian(SubAuthStatus);

            buffer.WriteStruct(LastSuccessfulILogon);
            buffer.WriteStruct(LastFailedILogon);
            buffer.WriteInt32LittleEndian(FailedILogonCount);

            buffer.WriteInt32LittleEndian(Reserved3);

            buffer.WriteInt32LittleEndian(ExtraSidCount);
            buffer.WriteDeferredConformantStructArray(ExtraIds);

            buffer.WriteConformantStruct(ResourceDomainId);

            buffer.WriteInt32LittleEndian(ResourceGroupCount);
            buffer.WriteDeferredStructArray(ResourceGroupIds);
        }
Esempio n. 3
0
        private void WriteHeader(NdrBuffer buffer)
        {
            using (var headerBuffer = new NdrBuffer(align: false))
            {
                foreach (var kv in this.Header)
                {
                    headerBuffer.WriteInt16BigEndian((short)kv.Key);
                    headerBuffer.WriteInt16BigEndian((short)kv.Value.Length);
                    headerBuffer.WriteMemory(kv.Value);
                }

                var header = headerBuffer.ToMemory(0);

                buffer.WriteInt16BigEndian((short)header.Length);
                buffer.WriteMemory(header);
            }
        }
Esempio n. 4
0
 private static void WriteData(ReadOnlyMemory <byte> data, NdrBuffer buffer)
 {
     buffer.WriteInt32BigEndian(data.Length);
     buffer.WriteMemory(data);
 }