public IOFLOW_HEADER(byte[] buffer) { if (buffer.Length < IOFLOW_HEADER.SIZEOF_IOFLOW_HEADER) { string err = string.Format("buffer.Length < SIZEOF_IRP_HEADER ({0})", SIZEOF_IOFLOW_HEADER); throw new ArgumentOutOfRangeException(err); } this.buffer = buffer; filterMessageHeader = new FILTER_MESSAGE_HEADER(buffer); filterReplyHeader = new FILTER_REPLY_HEADER(buffer); iopb = new FLT_IO_PARAMETER_BLOCK(buffer, OffsetIopb); }