public Map<String, String> readStringValues(String key) {
		try {
			HashMap<String, String> results = new HashMap<>();
			OpenResult openResult = openKey(key, READ_ACCESS);
			if (openResult.mSuccess) {
				QueryResult queryResult = queryInfoKey(openResult.mHandle);
				for (int i = 0; i < queryResult.mCount; i++) {
					if (METHOD_ENUM_VALUE == null) {
						METHOD_ENUM_VALUE = getMethod(mRoot.getClass(), "WindowsRegEnumValue", int.class, int.class, int.class);
					}
					byte[] name = (byte[]) METHOD_ENUM_VALUE.invoke(mRoot, new Object[] { openResult.mHandle, Integer.valueOf(i), Integer.valueOf(queryResult.mMaxValueLength + 1) });
					String value = readString(key, new String(name));
					results.put(new String(name), value);
				}
				closeKey(openResult.mHandle);
				return results;
			}
		} catch (Exception exception) {
			Log.error(exception);
		}
		return null;
	}