15,466
社区成员
发帖
与我相关
我的任务
分享
_CRTIMP void * __cdecl _decode_pointer(void *codedptr)
{
#ifdef _M_IX86
_ptiddata ptd;
PVOID (APIENTRY *pfnDecodePointer)(PVOID) = NULL;
if ((FLS_GETVALUE == NULL) ||
__flsindex == FLS_OUT_OF_INDEXES ||
(ptd = (_ptiddata)FLS_GETVALUE(__flsindex)) == NULL)
{
// cached function pointer is not available - look it up the traditional way
HINSTANCE hKernel32 = _crt_wait_module_handle(_KERNEL32);
if (hKernel32)
{
pfnDecodePointer = (PVOID (APIENTRY *)(PVOID))
GetProcAddress(hKernel32, _DECODE_POINTER);
}
}
else
{
// use cached function pointer in TLS
pfnDecodePointer = (PVOID (APIENTRY *)(PVOID)) (ptd->_decode_ptr);
}
if (pfnDecodePointer != NULL)
{
//这一句
codedptr = (*pfnDecodePointer)(codedptr);
}
#else /* _M_IX86 */
codedptr = DecodePointer(codedptr);
#endif /* _M_IX86 */
return codedptr;
}