Skip to content

Releases: Chuyu-Team/YY-Thunks

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 20 Jul 06:28

更新日志

  • Fea #138, 补充接口支持
    • 添加 CredUIPromptForWindowsCredentialsW(A)
    • 添加 CredPackAuthenticationBufferW(A)
    • 添加 CredUnPackAuthenticationBufferW(A)
    • 添加 CryptImportPublicKeyInfoEx2
    • 添加 CreateProcessWithTokenW
    • 添加 NCryptCreatePersistedKey
    • 添加 NCryptDeleteKey
    • 添加 NCryptExportKey
    • 添加 NCryptFinalizeKey
    • 添加 NCryptFreeObject
    • 添加 NCryptGetProperty
    • 添加 NCryptSetProperty
    • 添加 NCryptImportKey
    • 添加 NCryptIsAlgSupported
    • 添加 NCryptOpenKey
    • 添加 NCryptOpenStorageProvider
    • 添加 NCryptSignHash
    • 添加 NCryptEncrypt
    • 添加 NCryptDecrypt
    • 添加 NCryptCloseProtectionDescriptor
    • 添加 NCryptCreateProtectionDescriptor
    • 添加 NCryptGetProtectionDescriptorInfo
    • 添加 NCryptProtectSecret
    • 添加 NCryptUnprotectSecret
    • 添加 NCryptDeriveKey
    • 添加 NCryptSecretAgreement
    • 添加 NCryptVerifySignature
    • 添加 GetUnicastIpAddressTable
    • 添加 NotifyStableUnicastIpAddressTable
    • 添加 NotifyIpInterfaceChange(不再是空壳函数)

v1.2.1 - 累计问题修复

Choose a tag to compare

@github-actions github-actions released this 07 May 07:19

更新日志

  • Bug #166,VS工程自定义函数入口点时,自定义入口点未被执行
  • Bug #175, GetLogicalProcessorInformationEx产生堆损
  • Fea ,新增API支持汇总
    • 补充gpui支持(Fea #163
      • 添加 CoIncrementMTAUsage
      • 添加 CoDecrementMTAUsage
      • 添加 DCompositionCreateDevice
      • 添加 DCompositionCreateDevice2
      • 添加 DCompositionCreateDevice3
    • 补充QT6支持
      • 添加 Direct3DCreate9(PR #167
      • 添加 GetRestrictedErrorInfo(PR #170
    • 补充flutter支持(PR #174
      • 添加 RtlAddGrowableFunctionTable
      • 添加 RtlDeleteGrowableFunctionTable
      • 添加 GetCurrentThreadStackLimits
    • 其他通用支持(Fea #138
      • 添加 GetTcpTable2
      • 添加 BCryptGenerateKeyPair
      • 添加 BCryptFinalizeKeyPair
      • 添加 BCryptImportKeyPair
      • 添加 BCryptSignHash
      • 添加 BCryptVerifySignature
  • Fea #177, 兼容 std::filesystem::equivalent
    • GetFileInformationByHandleEx额外兼容FileIdInfo
    • OpenFileById额外兼容ExtendedFileIdType

温馨提示

为了解决Bug #166,YY-Thunks的配置方法存在一些变化,与之前版本并未完全兼容,为此小版本特意提升1,请重新阅读readme.md。

使用NuGet包引用的用户不受影响,内部已经自动兼容。

v1.1.9 改善VS2026 C++支持

Choose a tag to compare

@github-actions github-actions released this 16 Nov 11:10

更新日志

  • Bug #161, Windows 10 SDK与7.1SDK的GUID operator==定义不同而产生兼容问题
  • Fea, API惯例扩充
    • SetWindowsHookExW行为对齐Win7,WH_KEYBOARD_LL/WH_MOUSE_LL且dwThreadId为0时,hMod允许为NULL。
    • WriteFile、ReadFile行为对齐Win8,允许LPDWORD与LPOVERLAPPED同时为nullptr
    • 添加 GetHostNameW
    • 添加 CopyFile2(以适配VS2026)
    • 添加 CreateFile3
    • 添加 GetTempPath2W(A)
    • 添加 SystemTimeToTzSpecificLocalTimeEx
  • Fea, 简化GetTimeZoneInformationForYear的实现,减少体积

v1.1.8

Choose a tag to compare

@github-actions github-actions released this 12 Sep 06:48

更新日志

  • Fea,添加GetOverlappedResultEx(PR #155
  • Fea,规避msvcp140_2.dll在低版本系统中加载失败
  • Fea, Qt 6 适配 Windows 7 所需改动
    • 添加 D3D12GetDebugInterface
    • 添加 D3D12SerializeVersionedRootSignature
    • 添加 IsValidDpiAwarenessContext
    • 添加 DnsQueryEx
    • 添加 DnsCancelQuery
  • Fea, 添加WindowFromPhysicalPoint

v1.1.7

Choose a tag to compare

@github-actions github-actions released this 30 Apr 08:40

更新日志

  • Bug, LoadLibraryExW传递LOAD_WITH_ALTERED_SEARCH_PATH时会返回参数错误
  • Fea, 改进Dpi相关函数在跨进程场景的正确性
    • GetDpiForWindow支持其他进程的窗口Dpi
    • GetProcessDpiAwareness支持获取其他进程的DPi感知
    • SetProcessDpiAwareness特定路径返回E_ACCESSDENIED,与Windows保持一致
    • IsProcessDPIAware在XP上始终返回TRUE,与Windows保持一致
    • 新增 PhysicalToLogicalPoint
    • 新增 LogicalToPhysicalPoint
    • 新增 PhysicalToLogicalPointForPerMonitorDPI
    • 新增 LogicalToPhysicalPointForPerMonitorDPI
    • 新增 GetSystemDpiForProcess
  • Fea #153, Windows XP中GetQueuedCompletionStatusEx尝试取出多个项目,改善操作密集型场景的性能
  • Fea,添加一些Appx信息获取函数(PR #154
    • 添加 GetPackageFullName
    • 添加 GetPackageFamilyName
    • 添加 GetPackagePathByFullName
    • 添加 GetPackagesByPackageFamily
    • 添加 FindPackagesByPackageFamily
    • 添加 OpenPackageInfoByFullName
    • 添加 ClosePackageInfo
    • 添加 GetPackageInfo
  • Opt, 保证GetYY_ThunksSharedData不修改LastError,缓解不及时调用GetLastError的代码逻辑异常。

v1.1.6

Choose a tag to compare

@github-actions github-actions released this 03 Mar 12:23

更新日志

  • Bug #129, 解决一些代码歧义以及API引入版本错误
    • ReOpenFile内部ImpersonationLevel相关宏错误
    • SetFilePointerEx引入版本修正,从5.1降低到5.0
    • CryptProtectMemory、CryptUnprotectMemory调整缓存指针命名,以符合语义
  • Bug #149,.NET AOT下无法为dll配置SUBSYSTEM版本,导致XP无法加载
  • Fea #145, 改善跨模块边界安全性
  • Fea, 与VC-LTL联动,统一管理WindowsTargetPlatformMinVersion
  • Fea, 新函数扩充
    • 添加 GetSystemFirmwareTable
    • 添加 GetPhysicallyInstalledSystemMemory
    • 添加 SetDllDirectoryW(A)
    • 添加 GetDllDirectoryW(A)
    • 添加 AddDllDirectory
    • 添加 RemoveDllDirectory
    • 添加 UiaLookupId
    • 添加 CreateRandomAccessStreamOverStream
    • 添加 MFCancelWorkItem
    • 添加 MFLockSharedWorkQueue
    • 添加 MFPutWorkItem
    • 添加 MFPutWorkItem2
    • 添加 MFPutWaitingWorkItem
    • 添加 MFUnlockWorkQueue
    • 添加 ActivateAudioInterfaceAsync
    • 添加 CreateDirect3D11DeviceFromDXGIDevice
    • 添加 CreateRandomAccessStreamOnFile
    • 添加 CreateStreamOverRandomAccessStream
    • 添加 RoFailFastWithErrorContext
    • 添加 RoOriginateLanguageException
    • 添加 RoTransformError
    • 添加 RoTransformErrorW
    • 添加 RoGetAgileReference
  • Opt,更新一些函数实现行为更贴近Windows
    • 更新 RoOriginateError
    • 更新 RoOriginateErrorW

温馨提示:LoadLibraryEx LOAD_LIBRARY_SEARCH_USER_DIRS标记已经就绪。

v1.1.5

Choose a tag to compare

@github-actions github-actions released this 13 Jan 08:27

更新日志

  • Bug #130, 解决Windows XP下,使用FILE_SKIP_COMPLETION_PORT_ON_SUCCESS可能导致IOCP异步IO模式产生内存损坏
  • Bug #131, 与/guard:ehcont 项目一起链接时可能导致异常无法正常派发
  • Bug #132, GetQueuedCompletionStatusEx模拟可告警状态时发生高CPU占用
  • Fea, YY.Depends.Analyzer添加Windows 10 API Sets支持
  • Fea #134, 添加NotifyIpInterfaceChange、CancelMibChangeNotify2

其他

如果存在某种DLL缺失,也可以从可分发DLL集合中搜索部分文件,这里收集了部分低版本系统可用的DLL文件,欢迎补充。

重要通知

现在开始YY.Depends.Analyzer数据库已经添加了Windows 10 10240 API Set数据库,可正确对10.0.10240平台进行分析其依赖关系。示例:

YY.Depends.Analyzer "C:\Program Files\Google\Chrome\Application\125.0.6422.113" /IgnoreReady /Target:10.0.10240

v1.1.4

Choose a tag to compare

@github-actions github-actions released this 05 Nov 12:39

重要通知

  • 现在压缩包已经提供YY.Depends.Analyzer独立工具,可以快速分析缺失的依赖
; 比如分析Google浏览器 XP系统上缺失的API,帮助大家快速查找缺失API
YY.Depends.Analyzer  "C:\Program Files\Google\Chrome\Application\125.0.6422.113" /IgnoreReady
  • 现在已经为XP系统提供了Tls增强,解决动态加载的DLL使用thread_local 可能崩溃问题,需要修改DLL入口点(NuGet版会自动开启无需干预),更多信息请参考文档
  • 现在特意为LLD-LINK添加LIB库模式,有需要的可以下载YY-Thunks-*-Lib.zip。编译Chromium时将其设置到LIBPATH即可依赖YY-Thunks

    友情提示:GN的增量生成能力很弱,修改LIBPATH将触发大规模重新编译!!!另外LIB文件被替换后GN也无法感知,你需要手工触发重新链接。GN这个渣渣……

更新日志

  • Bug #122, Windows XP使用CV等可能卡死在NtWaitForKeyedEvent
  • Fea #80, rust适配Windows XP
    • WSAIoctl添加SIO_BASE_HANDLE模拟(PR #124
    • 使用APC模拟 NtCancelIoFileEx已更好支持rust(PR #125
    • WSASocketW(A) 添加 WSA_FLAG_NO_HANDLE_INHERIT标记兼容(PR #126
  • Fea, 添加OpenProcess、OpenThread、GetTokenInformation不支持的参数模拟
  • Fea, 提供自定义DLL加载能力(__pfnYY_Thunks_CustomLoadLibrary)
  • Fea, 添加GetThreadDescription、SetThreadDescription

v1.1.3

Choose a tag to compare

@github-actions github-actions released this 30 Sep 02:58

重要通知

  • 现在压缩包已经提供YY.Depends.Analyzer独立工具,可以快速分析缺失的依赖
; 比如分析Google浏览器 XP系统上缺失的API,帮助大家快速查找缺失API
YY.Depends.Analyzer  "C:\Program Files\Google\Chrome\Application\125.0.6422.113" /IgnoreReady
  • 现在已经为XP系统提供了Tls增强,解决动态加载的DLL使用thread_local 可能崩溃问题,需要修改DLL入口点(NuGet版会自动开启无需干预),更多信息请参考文档
  • 现在特意为LLD-LINK添加LIB库模式,有需要的可以下载YY-Thunks-*-Lib.zip。编译Chromium时将其设置到LIBPATH即可依赖YY-Thunks

    友情提示:GN的增量生成能力很弱,修改LIBPATH将触发大规模重新编译!!!另外LIB文件被替换后GN也无法感知,你需要手工触发重新链接。GN这个渣渣……

更新日志

  • Bug #114, CRT DllMain DLL_THREAD_DETACH期间PTD释放逻辑发生Fls野指针(仅影响10.0.26100.0 UCRT或者更高版本下运行的XP系统)
  • Bug, 解决EnterSynchronizationBarrier返回值错误
  • Bug #120, 某些API系统引入版本错误或者IAT符号错误(问题无实质影响,某种程度可以微微减少YY-Thunks体积)
    • 解决一些IAT符号Size参数错误同时增加这方面的单元测试
    • 修正kernel32模块中的几个API函数的系统起始支持版本号错误
  • Fea #71, 添加一些QT缺失的接口
    • 添加 CreateDXGIFactory2
    • 添加 InitializeTouchInjection
    • 添加 InjectTouchInput
    • 添加 GetCurrentPackageFullName
    • 添加 GetProcessDpiAwareness
    • 添加 GetAwarenessFromDpiAwarenessContext
    • 添加 AreDpiAwarenessContextsEqual
    • 添加 EnableNonClientDpiScaling
    • 添加 GetPointerFrameTouchInfo
    • 添加 GetPointerFrameTouchInfoHistory
    • 添加 GetPointerInfo
    • 添加 GetPointerPenInfoHistory
    • 添加 SkipPointerFrameMessages
    • 添加 GetThreadDpiAwarenessContext
    • 添加 GetWindowDpiAwarenessContext
    • 添加 GetDisplayAutoRotationPreferences
    • 添加 SetDisplayAutoRotationPreferences
    • 添加 GetPointerDeviceRects
  • Fea #66, 让.NET 8/9 支持 Windows XP RTM
    • 添加 FindNLSStringEx
    • 添加 GetPointerInfoHistory
    • 添加 GetPointerTouchInfo
    • 添加 GetPointerTouchInfoHistory
    • 添加 IsMouseInPointerEnabled
    • 添加 EnableMouseInPointer
  • Opt, 其他行为调整
    • 废除__YY_Thunks_Process_Terminating弱符号,提高反初始化性能
    • 新增__YY_Thunks_Disable_Rreload_Dlls弱符号,控制预加载状态

v1.1.2

Choose a tag to compare

@github-actions github-actions released this 11 Aug 09:26

重要通知

  • 现在压缩包已经提供YY.Depends.Analyzer独立工具,可以快速分析缺失的依赖
; 比如分析Google浏览器 XP系统上缺失的API,帮助大家快速查找缺失API
YY.Depends.Analyzer  "C:\Program Files\Google\Chrome\Application\125.0.6422.113" /IgnoreReady
  • 现在已经为XP系统提供了Tls增强,解决动态加载的DLL使用thread_local 可能崩溃问题,需要修改DLL入口点(NuGet版会自动开启无需干预),更多信息请参考文档
  • 现在特意为LLD-LINK添加LIB库模式,有需要的可以下载YY-Thunks-*-Lib.zip。编译Chromium时将其设置到LIBPATH即可依赖YY-Thunks

    友情提示:GN的增量生成能力很弱,修改LIBPATH将触发大规模重新编译!!!另外LIB文件被替换后GN也无法感知,你需要手工触发重新链接。GN这个渣渣……

更新日志

  • Bug #97,解决obj模式且SDK低于10时链接失败(v1.1.1引入)
  • Bug #107, 解决VS2010等老编译器找不到threadSafeInit、sizedDealloc相关符号(v1.1.1引入)
  • Bug, XP模式可能任然提示找不到JetGetSystemParameterA(历史遗留)
  • Bug #108, 修复AllocTlsData可能破坏当前线程的Tls内容(仅Windows XP DLL受影响)(v1.1.1引入)
  • Bug, 解决ForDpi相关API行为与系统存在差异
    • AdjustWindowRectExForDpi:解决DPI传递0时不报告失败,且可能返回不正确大小。
    • SystemParametersInfoForDpi:解决DPI传递0时结果异常,且未限制Action类型。
    • GetSystemMetricsForDpi:解决DPI传递0时不报告失败,且可能返回不正确大小。
  • Fea, 改进NET项目对早期Windows SDK版本的识别
  • Fea, 为XP添加CryptBinaryToStringW(A) CRYPT_STRING_NOCRLF支持
  • Fea #90, 为Chrome 125内核补充WinXP/Win7不存在的接口
    • 添加 CompareObjectHandles
    • DWriteCreateFactory 添加 IDWriteFactory3支持(仅Vista以及更高版本可用)
    • 添加 CM_Get_DevNode_Property_ExW
    • 添加 CM_Set_DevNode_Property_ExW
    • 添加 CM_Get_DevNode_PropertyW
    • 添加 CM_Set_DevNode_PropertyW
    • 添加 Wow64GetThreadContext(新增对WinXP 64支持)
    • 添加 SetDefaultDllDirectories
    • 添加 NtOpenKeyEx
    • 添加 InitPropVariantFromCLSID
    • 添加 PSGetPropertyKeyFromName
    • 添加 PSCreateMemoryPropertyStore
    • 添加 VariantCompare
    • 添加 AddMandatoryAce
    • 添加 RegisterPointerDeviceNotifications
    • 添加 GetPointerDevices
    • 添加 GetPointerDevice
    • 添加 GetPointerPenInfo
    • 添加 GetPointerType
    • 添加 UiaRaiseNotificationEvent
    • 添加 MFCreateDeviceSource
    • 添加 MFEnumDeviceSources
    • 添加 MFCreateAlignedMemoryBuffer
    • 添加 MFCreateAsyncResult
    • 添加 MFCreateAttributes
    • 添加 MFCreateEventQueue
    • 添加 MFCreateMediaBufferWrapper
    • 添加 MFCreateMediaEvent
    • 添加 MFCreateMediaType
    • 添加 MFCreateMemoryBuffer
    • 添加 MFCreatePresentationDescriptor
    • 添加 MFCreateSample
    • 添加 MFCreateStreamDescriptor
    • 添加 MFCreateWaveFormatExFromMFMediaType
    • 添加 MFFrameRateToAverageTimePerFrame
    • 添加 MFGetSystemTime
    • 添加 MFInitMediaTypeFromWaveFormatEx
    • 添加 MFShutdown
    • 添加 MFStartup
    • 添加 MFTEnumEx
    • 添加 MFCreateSourceReaderFromMediaSource
    • 添加 NdfCreateWebIncident
    • 添加 NdfCloseIncident
    • 添加 NdfExecuteDiagnosis
    • 添加 WinUsb_Free
    • 添加 WinUsb_GetAssociatedInterface
    • 添加 WinUsb_GetOverlappedResult
    • 添加 WinUsb_Initialize
    • 添加 WinUsb_ReadPipe
    • 添加 WinUsb_ResetPipe
    • 添加 WinUsb_SetCurrentAlternateSetting
    • 添加 WinUsb_WritePipe
    • 添加 D3D12CreateDevice
    • 添加 PowerGetActiveScheme
    • 添加 PowerReadACValue
    • 添加 PowerReadDCValue
    • SystemParametersInfoW(A),适配SPI_GETNONCLIENTMETRICS(Windows XP)
  • Fea #94, 为Windows Runtime String (HSTRING)提供内部实现
    • 补充 WindowsCreateString
    • 补充 WindowsCreateStringReference
    • 补充 WindowsDeleteString
    • 补充 WindowsDuplicateString
    • 补充 WindowsGetStringLen
    • 补充 WindowsGetStringRawBuffer
    • 补充 WindowsIsStringEmpty
    • 补充 WindowsStringHasEmbeddedNull
    • 补充 WindowsCompareStringOrdinal
  • Opt, ntdll.lib可用时尽可能的从lib隐式依赖,减少try_get次数。