public static DataType getDataType(Program program) {

		DataTypeManager dataTypeManager = program.getDataTypeManager();
		boolean isRelative = isRelative(program);
		CategoryPath categoryPath = new CategoryPath(CATEGORY_PATH);
		StructureDataType struct =
			getAlignedPack4Structure(dataTypeManager, categoryPath, STRUCTURE_NAME);

		// Add the components.
		DataType compDt;

		/* comps[0] */
		compDt = new UnsignedIntegerDataType(dataTypeManager);
		struct.add(compDt, "adjectives", null);

		/* comps[1] */
		if (isRelative) {
			compDt = new IBO32DataType(dataTypeManager);
			struct.add(compDt, "dispType", null);
		}
		else {
			compDt = new PointerDataType(TypeDescriptorModel.getDataType(program), dataTypeManager);
			struct.add(compDt, "pType", null);
		}

		/* comps[2] */
		if (isRelative) {
			compDt = new IntegerDataType(dataTypeManager);
		}
		else {
			compDt = new TypedefDataType(new CategoryPath("/crtdefs.h"), "ptrdiff_t",
				new IntegerDataType(dataTypeManager), dataTypeManager);
		}
		struct.add(compDt, "dispCatchObj", null);

		/* comps[3] */
		if (isRelative) {
			compDt = new IBO32DataType(dataTypeManager);
			struct.add(compDt, "dispOfHandler", null);
		}
		else {
			compDt = new PointerDataType(new VoidDataType(dataTypeManager), dataTypeManager);
			struct.add(compDt, "addressOfHandler", null);
		}

		// Only some 64 bit programs have this displacement of the address of the function frame.
		/* comps[4] */
		if (isRelative) { // Needs more checking here still. Incorrectly puts it in all 64 bit programs.
			compDt = new DWordDataType(dataTypeManager);
			struct.add(compDt, "dispFrame", null);
		}

		TypedefDataType typeDefDt =
			new TypedefDataType(categoryPath, DATA_TYPE_NAME, struct, dataTypeManager);

		return MSDataTypeUtils.getMatchingDataType(program, typeDefDt);
	}
This gets the HandlerType structure for the indicated program.
@param program the program which will contain this data type. 
@return the HandlerType structure.
Ghidra/Features/MicrosoftCodeAnalyzer/src/main/java/ghidra/app/cmd/data/exceptionhandling/EHCatchHandlerModel.java