protected MsmqInputMessage(int additionalPropertyCount, SizeQuota bufferSizeQuota) : base(12 + additionalPropertyCount) { this.maxBufferSize = bufferSizeQuota.MaxSize; this.body = new NativeMsmqMessage.BufferProperty(this, 9, bufferSizeQuota.AllocIfAvailable(0x1000)); this.bodyLength = new NativeMsmqMessage.IntProperty(this, 10); this.messageId = new NativeMsmqMessage.BufferProperty(this, 2, 20); this.lookupId = new NativeMsmqMessage.LongProperty(this, 60); this.cls = new NativeMsmqMessage.ShortProperty(this, 1); this.senderId = new NativeMsmqMessage.BufferProperty(this, 20, 0x100); this.senderIdLength = new NativeMsmqMessage.IntProperty(this, 0x15); this.senderCertificate = new NativeMsmqMessage.BufferProperty(this, 0x1c, bufferSizeQuota.AllocIfAvailable(0x1000)); this.senderCertificateLength = new NativeMsmqMessage.IntProperty(this, 0x1d); if (Msmq.IsAdvancedPoisonHandlingSupported) { this.lastMovedTime = new NativeMsmqMessage.IntProperty(this, 0x4b); this.abortCount = new NativeMsmqMessage.IntProperty(this, 0x45); this.moveCount = new NativeMsmqMessage.IntProperty(this, 70); } }