Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

尝试消除Chrome 116项目中Windows XP、Windows 7不支持的接口 #29

Closed
100 tasks done
mingkuang-Chuyu opened this issue Jul 1, 2021 · 10 comments · Fixed by #85
Closed
100 tasks done

尝试消除Chrome 116项目中Windows XP、Windows 7不支持的接口 #29

mingkuang-Chuyu opened this issue Jul 1, 2021 · 10 comments · Fixed by #85

Comments

@mingkuang-Chuyu
Copy link
Collaborator

mingkuang-Chuyu commented Jul 1, 2021

截至2023年7月8日,此列表更新为Chrome 116内核API缺失的情况。打勾则表明已经支持。

目前,此任务的优先级比较低,某些API完整的支持投入人力也比较惊人,也欢迎大家提供PR。

API行为修复

  • FindFirstFileEx
    • 针对XP、Vista添加FIND_FIRST_EX_LARGE_FETCH、FindExInfoBasic参数兼容

Windows 7缺失

KERNEL32.DLL

  • DiscardVirtualMemory
  • GetProcessMitigationPolicy
  • PrefetchVirtualMemory
  • SetDefaultDllDirectories
  • SetProcessInformation
  • SetProcessMitigationPolicy
  • SetThreadInformation
  • GetFirmwareType
  • GetThreadInformation

USERENV.DLL

  • CreateAppContainerProfile
  • DeriveAppContainerSidFromAppContainerName
  • GetAppContainerFolderPath
  • GetAppContainerRegistryLocation

ADVAPI32.DLL

  • EventSetInformation

MFPLAT.DLL

  • MFCreateDXGIDeviceManager
  • MFCreateDXGISurfaceBuffer
  • MFLockDXGIDeviceManager
  • MFUnlockDXGIDeviceManager

POWRPROF.DLL

  • PowerDeterminePlatformRoleEx

BLUETOOTHAPIS.DLL

  • BluetoothGATTGetCharacteristicValue
  • BluetoothGATTGetCharacteristics
  • BluetoothGATTGetDescriptors
  • BluetoothGATTGetServices
  • BluetoothGATTRegisterEvent
  • BluetoothGATTSetCharacteristicValue
  • BluetoothGATTSetDescriptorValue
  • BluetoothGATTUnregisterEvent

API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL

  • RoOriginateError

User32.dll

  • RegisterSuspendResumeNotification

NETAPI32.DLL

  • NetFreeAadJoinInformation
  • NetGetAadJoinInformation

WinHttp.dll

  • WinHttpCreateProxyResolver
  • WinHttpFreeProxyResult
  • WinHttpGetProxyForUrlEx
  • WinHttpGetProxyResult

Windows XP缺失

  • AcquireSRWLockExclusive
  • AcquireSRWLockShared
  • InitializeSRWLock
  • ReleaseSRWLockExclusive
  • ReleaseSRWLockShared
  • TryAcquireSRWLockExclusive
  • InitializeConditionVariable
  • SleepConditionVariableCS
  • SleepConditionVariableSRW
  • WakeAllConditionVariable
  • WakeConditionVariable
  • InitOnceBeginInitialize
  • InitOnceComplete
  • InitOnceExecuteOnce
  • InitializeCriticalSectionEx
  • CancelIoEx(仅支持)
  • GetCurrentProcessorNumber
  • QueryThreadCycleTime(仅支持)
  • GetCurrencyFormatEx
  • GetDateFormatEx
  • GetNumberFormatEx
  • GetTimeFormatEx
  • GetLocaleInfoEx
  • GetUserDefaultLocaleName
  • EnumSystemLocalesEx
  • GetThreadPreferredUILanguages
  • GetDynamicTimeZoneInformation
  • GetFinalPathNameByHandleW
  • GetFileInformationByHandleEx
  • SetFileInformationByHandle
  • GetProductInfo
  • GetThreadId
  • QueryFullProcessImageNameW
  • RaiseFailFastException
  • K32EmptyWorkingSet
  • K32EnumProcessModules
  • K32GetMappedFileNameW
  • K32GetModuleFileNameExW
  • K32GetModuleInformation
  • K32GetPerformanceInfo
  • K32GetProcessMemoryInfo
  • K32QueryWorkingSetEx(仅支持)
  • LCIDToLocaleName
  • LocaleNameToLCID
  • ResolveLocaleName
  • DeleteProcThreadAttributeList
  • InitializeProcThreadAttributeList
  • UpdateProcThreadAttribute(仅接口支持,实际不生效)
  • IsThreadAFiber
  • ConvertThreadToFiberEx
  • FlsAlloc
  • FlsSetValue
  • PowerClearRequest
  • PowerCreateRequest
  • PowerSetRequest
  • CloseThreadpool
  • CloseThreadpoolWork
  • CreateThreadpool
  • CreateThreadpoolWork
  • SetThreadpoolThreadMaximum
  • SetThreadpoolThreadMinimum
  • SubmitThreadpoolWork
  • CallbackMayRunLong
  • WaitForThreadpoolWorkCallbacks
@lz5921
Copy link

lz5921 commented Oct 10, 2022

这个还有后续吗😂😂😂

@mingkuang-Chuyu
Copy link
Collaborator Author

这个还有后续吗😂😂😂

@lz5921 有的,可以随时向我联系,提供缺失的API列表。如果有部分实现也可以提供。多谢。

@mingkuang-Chuyu mingkuang-Chuyu changed the title 尝试消除Chrome项目中Windows XP不支持的接口 尝试消除Chrome项目中Windows XP、Windows 7不支持的接口 Mar 10, 2023
@mingkuang-Chuyu mingkuang-Chuyu changed the title 尝试消除Chrome项目中Windows XP、Windows 7不支持的接口 尝试消除Chrome项目中Windows XP不支持的接口 Mar 10, 2023
@mingkuang-Chuyu mingkuang-Chuyu changed the title 尝试消除Chrome项目中Windows XP不支持的接口 尝试消除Chrome项目中Windows XP、Windows 7不支持的接口 Mar 10, 2023
mingkuang-Chuyu added a commit that referenced this issue Mar 12, 2023
mingkuang-Chuyu added a commit that referenced this issue Mar 12, 2023
* EventSetInformation
* BluetoothGATTGetCharacteristicValue
* BluetoothGATTGetCharacteristics
* BluetoothGATTGetDescriptors
* BluetoothGATTGetServices
* BluetoothGATTRegisterEvent
* BluetoothGATTSetCharacteristicValue
* BluetoothGATTSetDescriptorValue
* MFCreateDXGIDeviceManager
* MFCreateDXGISurfaceBuffer
* MFLockDXGIDeviceManager
* MFUnlockDXGIDeviceManager
* NetGetAadJoinInformation
* NetFreeAadJoinInformation
mingkuang-Chuyu added a commit that referenced this issue Mar 16, 2023
* PowerRegisterSuspendResumeNotification
* PowerUnregisterSuspendResumeNotification
* RegisterSuspendResumeNotification
* UnregisterSuspendResumeNotification
mingkuang-Chuyu added a commit that referenced this issue Mar 17, 2023
* PowerRegisterSuspendResumeNotification
* PowerUnregisterSuspendResumeNotification
* RegisterSuspendResumeNotification
* UnregisterSuspendResumeNotification
mingkuang-Chuyu added a commit that referenced this issue Mar 17, 2023
* PowerRegisterSuspendResumeNotification
* PowerUnregisterSuspendResumeNotification
* RegisterSuspendResumeNotification
* UnregisterSuspendResumeNotification
mingkuang-Chuyu added a commit that referenced this issue Mar 17, 2023
* PowerCreateRequest
* PowerSetRequest
* PowerClearRequest
mingkuang-Chuyu added a commit that referenced this issue Mar 17, 2023
* PowerCreateRequest
* PowerSetRequest
* PowerClearRequest
@jsf126
Copy link

jsf126 commented Mar 25, 2023

xp系统的KERNEL32.DLL
CloseThreadpool
CreateThreadpool
SetThreadpoolThreadMaximum
SetThreadpoolThreadMinimum

可以优先支持下吗?目前编译freerdp时,最后剩下这4个不兼容的接口

@mingkuang-Chuyu
Copy link
Collaborator Author

xp系统的KERNEL32.DLL CloseThreadpool CreateThreadpool SetThreadpoolThreadMaximum SetThreadpoolThreadMinimum

可以优先支持下吗?目前编译freerdp时,最后剩下这4个不兼容的接口

你也可以提供PR……😉

@sonyps5201314
Copy link
Contributor

为Chrome 110内核API缺失的情况。打勾则表明已经支持

freerdp有自己的低版本Windows API实现,你cmake时定义-DCMAKE_WINDOWS_VERSION:STRING="WINXP" 就好

@longyixiao
Copy link

longyixiao commented Jun 19, 2023

chromium 116内核暂时发现两个新函数
GetFirmwareType
GetThreadInformation

补充
WinHttpCreateProxyResolver

WinHttpFreeProxyResult

WinHttpGetProxyForUrlEx

WinHttpGetProxyResult

@mingkuang-Chuyu
Copy link
Collaborator Author

chromium 116内核暂时发现两个新函数 GetFirmwareType GetThreadInformation

补充 WinHttpCreateProxyResolver

WinHttpFreeProxyResult

WinHttpGetProxyForUrlEx

WinHttpGetProxyResult

@longyixiao winhttp, 完整的实现改造工作有点大,先看看又没有其他人没有啥PR吧。

@shuax
Copy link

shuax commented Dec 23, 2023

@mingkuang-Chuyu
Copy link
Collaborator Author

https://github.com/google/boringssl/blob/b6e0eba6e62333652290514e51b75b966b27b27c/crypto/rand_extra/windows.c#L63

这个是不是chrome也在用

Win32上用的是BCryptGenRandom,问题不大。

mingkuang-Chuyu added a commit that referenced this issue May 19, 2024
  - 添加 WinHttpCreateProxyResolver
  - 添加 WinHttpGetProxyForUrlEx
  - 添加 WinHttpGetProxyResult
  - 添加 WinHttpFreeProxyResult
mingkuang-Chuyu added a commit that referenced this issue May 20, 2024
  - 添加 WinHttpCreateProxyResolver
  - 添加 WinHttpGetProxyForUrlEx
  - 添加 WinHttpGetProxyResult
  - 添加 WinHttpFreeProxyResult
mingkuang-Chuyu added a commit that referenced this issue May 20, 2024
  - 添加 CreateThreadpool
  - 添加 CloseThreadpool
  - 添加 SetThreadpoolThreadMaximum
  - 添加 SetThreadpoolThreadMinimum
  - 添加 CallbackMayRunLong
mingkuang-Chuyu added a commit that referenced this issue May 20, 2024
  - 添加 CreateThreadpool
  - 添加 CloseThreadpool
  - 添加 SetThreadpoolThreadMaximum
  - 添加 SetThreadpoolThreadMinimum
  - 添加 CallbackMayRunLong
@mingkuang-Chuyu mingkuang-Chuyu changed the title 尝试消除Chrome项目中Windows XP、Windows 7不支持的接口 尝试消除Chrome 116项目中Windows XP、Windows 7不支持的接口 May 25, 2024
@mingkuang-Chuyu
Copy link
Collaborator Author

v1.0.10-Beta8已经发布,已经补充所有Windows XP RTM不支持的接口
https://github.com/Chuyu-Team/YY-Thunks/releases/tag/v1.0.10-Beta8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants