@Override
	public DataType toDataType() throws DuplicateNameException {
		StructureDataType struct = new StructureDataType(NAME, 0);

		struct.add(QWORD, 8, "BaseOfImage", null);
		struct.add(DWORD, 4, "SizeOfImage", null);
		struct.add(DWORD, 4, "CheckSum", null);
		struct.add(DWORD, 4, "TimeDateStamp", null);
		struct.add(Pointer32DataType.dataType, 4, "ModuleNameRVA", null);

		StructureDataType sv = new StructureDataType("VersionInfo", 0);
		sv.add(DWORD, 4, "Signature", null);
		sv.add(DWORD, 4, "StrucVersion", null);
		sv.add(DWORD, 4, "FileVersionMS", null);
		sv.add(DWORD, 4, "FileVersionLS", null);
		sv.add(DWORD, 4, "ProductVersionMS", null);
		sv.add(DWORD, 4, "ProductVersionLS", null);
		sv.add(DWORD, 4, "FileFlagsMask", null);
		sv.add(DWORD, 4, "FileFlags", null);
		sv.add(DWORD, 4, "FileOS", null);
		sv.add(DWORD, 4, "FileType", null);
		sv.add(DWORD, 4, "FileSubtype", null);
		sv.add(DWORD, 4, "FileDateMS", null);
		sv.add(DWORD, 4, "FileDateLS", null);

		StructureDataType s0 = new StructureDataType("CvRecord", 0);
		s0.add(DWORD, 4, "DataSize", null);
		s0.add(Pointer32DataType.dataType, 4, "RVA", null);

		StructureDataType s1 = new StructureDataType("MiscRecord", 0);
		s1.add(DWORD, 4, "DataSize", null);
		s1.add(Pointer32DataType.dataType, 4, "RVA", null);

		struct.add(sv, sv.getLength(), sv.getDisplayName(), null);
		struct.add(s0, s0.getLength(), s0.getDisplayName(), null);
		struct.add(s1, s1.getLength(), s1.getDisplayName(), null);
		struct.add(QWORD, 8, "Reserved0", null);
		struct.add(QWORD, 8, "Reserved1", null);

		struct.setCategoryPath(new CategoryPath("/MDMP"));

		return struct;
	}
@see ghidra.app.util.bin.StructConverter#toDataType()
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/dump/mdmp/Module.java