typedef enum {
    SymNone,
    SymCoff,
    SymCv,
    SymPdb,
    SymExport,
    SymDeferred,
    SymSym,       // .sym file
    SymDia,
    SymVirtual,
    NumSymTypes
} SYM_TYPE;

typedef struct _IMAGEHLP_MODULE64 {
  DWORD    SizeOfStruct;
  DWORD64  BaseOfImage;
  DWORD    ImageSize;
  DWORD    TimeDateStamp;
  DWORD    CheckSum;
  DWORD    NumSyms;
  SYM_TYPE SymType;
  CHAR    ModuleName[32];
  CHAR    ImageName[256];
  CHAR    LoadedImageName[256];
  CHAR    LoadedPdbName[256];
  DWORD    CVSig;
  CHAR    CVData[780]; // MAX_PATH * 3
  DWORD    PdbSig;
  GUID     PdbSig70;
  DWORD    PdbAge;
  BOOL     PdbUnmatched;
  BOOL     DbgUnmatched;
  BOOL     LineNumbers;
  BOOL     GlobalSymbols;
  BOOL     TypeInfo;
  BOOL     SourceIndexed;
  BOOL     Publics;
} IMAGEHLP_MODULE64, *PIMAGEHLP_MODULE64;