public RegistryKey(IDataStream stream, ulong offset) { m_Stream = stream; m_blockOffset = offset; m_keyBlock = LoadBlock(stream, offset); Name = m_keyBlock.name; }
private static KeyBlock LoadBlock(IDataStream stream, ulong blockOffset) { ulong offset = blockOffset; KeyBlock result = new KeyBlock(); result.blockSize = Util.GetUInt32(stream, offset); result.subkeyCount = Util.GetUInt32(stream, offset + 24); result.subkeys = Util.GetUInt32(stream, offset + 32); result.valueCount = Util.GetUInt32(stream, offset + 40); result.offsets = Util.GetInt32(stream, offset + 44); result.len = Util.GetInt16(stream, offset + 76); result.du = Util.GetInt16(stream, offset + 78); result.name = Util.GetASCIIString(stream, offset + 80, (ulong)result.len); return result; }