hook sub_xxx函数问题

ida 解析出来的函数如下:
void *__usercall sub_aaa@<X0>(int a1@<W0>, const char *a2@<X1>, int a3@<W2>, int a4@<W3>, const char *a5@<X4>, const void *a6@<X5>, _QWORD *a7@<X8>)
然后用 MSHookFunction hook后就会闪退,控制台也没有闪退的堆栈打印出来,不知道问题出在哪里了,在这里请教一下各位大大们,有没有解决方案呢?

说明:hook 其他的 sub_xxx函数没问题,形如:__int64 __fastcall sub_xxx(__int64 a1, __int64 a2, char a3),但hook带@的就会闪退且无闪退日志