Releases: Chuyu-Team/YY-Thunks
Releases · Chuyu-Team/YY-Thunks
Release list
v1.2.2
更新日志
- 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 - 累计问题修复
更新日志
- Bug #166,VS工程自定义函数入口点时,自定义入口点未被执行
- Bug #175, GetLogicalProcessorInformationEx产生堆损
- Fea ,新增API支持汇总
- 补充gpui支持(Fea #163)
- 添加 CoIncrementMTAUsage
- 添加 CoDecrementMTAUsage
- 添加 DCompositionCreateDevice
- 添加 DCompositionCreateDevice2
- 添加 DCompositionCreateDevice3
- 补充QT6支持
- 补充flutter支持(PR #174)
- 添加 RtlAddGrowableFunctionTable
- 添加 RtlDeleteGrowableFunctionTable
- 添加 GetCurrentThreadStackLimits
- 其他通用支持(Fea #138)
- 添加 GetTcpTable2
- 添加 BCryptGenerateKeyPair
- 添加 BCryptFinalizeKeyPair
- 添加 BCryptImportKeyPair
- 添加 BCryptSignHash
- 添加 BCryptVerifySignature
- 补充gpui支持(Fea #163)
- Fea #177, 兼容 std::filesystem::equivalent
- GetFileInformationByHandleEx额外兼容FileIdInfo
- OpenFileById额外兼容ExtendedFileIdType
温馨提示
为了解决Bug #166,YY-Thunks的配置方法存在一些变化,与之前版本并未完全兼容,为此小版本特意提升1,请重新阅读readme.md。
使用NuGet包引用的用户不受影响,内部已经自动兼容。
v1.1.9 改善VS2026 C++支持
更新日志
- 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
更新日志
- Fea,添加GetOverlappedResultEx(PR #155)
- Fea,规避msvcp140_2.dll在低版本系统中加载失败
- Fea, Qt 6 适配 Windows 7 所需改动
- 添加 D3D12GetDebugInterface
- 添加 D3D12SerializeVersionedRootSignature
- 添加 IsValidDpiAwarenessContext
- 添加 DnsQueryEx
- 添加 DnsCancelQuery
- Fea, 添加WindowFromPhysicalPoint
v1.1.7
更新日志
- 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
更新日志
- 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
更新日志
- 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
重要通知
- 现在压缩包已经提供
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这个渣渣……
更新日志
v1.1.3
重要通知
- 现在压缩包已经提供
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
重要通知
- 现在压缩包已经提供
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次数。