private DataType processMemberPointer(AbstractPointerMsType type, DataType underlyingType) {

		int size = type.getSize().intValueExact();

		String name;
		AbstractPointerMsType.MsPointerMode msPointerMode = type.getPointerMode();
		if (msPointerMode == AbstractPointerMsType.MsPointerMode.MEMBER_FUNCTION_POINTER) {
			name = String.format("pmf_%08x", type.toString().hashCode());
		}
		else {
			name = String.format("pdm_%08x", type.toString().hashCode());
		}

		RecordNumber containingClassRecordNumber =
			type.getMemberPointerContainingClassRecordNumber();
		CategoryPath storagePath = getCategoryPathForMemberPointer(containingClassRecordNumber);
		DataType dt = new StructureDataType(storagePath, name, size);
		dt.setDescription(type.toString());

		return dt;
	}
Comment field if this type is used as a structure member.  This method could go away later
 if we develop member pointers into the Ghidra framework; this method exists to pass some
 pertinent information along to the user
@param type the PDB type being inspected
@return comment string or null
@throws CancelledException upon user cancellation
@throws PdbException upon processing error
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PointerTypeApplier.java