mirror of
https://github.com/HIllya51/LunaHook.git
synced 2024-12-27 13:44:11 +08:00
396 lines
30 KiB
Markdown
396 lines
30 KiB
Markdown
|
# YY-Thunks Thunks 清单
|
|||
|
|
|||
|
此表展示了YY-Thunks(鸭船)可以解决的函数不存在问题,欢迎大家扩充!
|
|||
|
|
|||
|
> 开头带`*`的函数并不建议使用,仅用于编译通过处理,如果使用可能导致老版本系统无法充分发挥性能。
|
|||
|
|
|||
|
## api-ms-win-core-path-l1-1-0.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| PathIsUNCEx | 内部实现。
|
|||
|
| PathCchIsRoot | 内部实现。
|
|||
|
| PathCchAddBackslashEx | 内部实现。
|
|||
|
| PathCchAddBackslash | 调用PathCchAddBackslashEx。
|
|||
|
| PathCchRemoveBackslashEx | 内部实现。
|
|||
|
| PathCchRemoveBackslash | 调用PathCchRemoveBackslashEx。
|
|||
|
| PathCchSkipRoot | 内部实现。
|
|||
|
| PathCchStripToRoot | 内部实现。
|
|||
|
| PathCchRemoveFileSpec | 内部实现。
|
|||
|
| PathCchFindExtension | 内部实现。
|
|||
|
| PathCchAddExtension | 调用PathCchFindExtension。
|
|||
|
| PathCchRenameExtension | 调用PathCchFindExtension。
|
|||
|
| PathCchRemoveExtension | 调用PathCchFindExtension。
|
|||
|
| PathCchCanonicalizeEx | 不存在时,内部实现。
|
|||
|
| PathCchCanonicalize | 调用PathCchCanonicalizeEx。
|
|||
|
| PathCchCombineEx | 内部实现。
|
|||
|
| PathCchCombine | 调用PathCchCombineEx。
|
|||
|
| PathCchAppendEx | 调用PathCchCombineEx。
|
|||
|
| PathCchAppend | 调用PathCchAppendEx。
|
|||
|
| PathCchStripPrefix | 内部实现。
|
|||
|
| PathAllocCombine | 不存在时,调用PathCchCombineEx。
|
|||
|
| PathAllocCanonicalize | 不存在时,调用PathCchCanonicalizeEx。
|
|||
|
|
|||
|
## api-ms-win-core-winrt-l1-1-0.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| RoInitialize | 不存在时,调用 CoInitializeEx。
|
|||
|
| RoUninitialize | 不存在时,调用 CoUninitialize。
|
|||
|
| RoActivateInstance | 不存在时,返回 E_NOTIMPL。
|
|||
|
| RoRegisterActivationFactories | 不存在时,返回 E_NOTIMPL。
|
|||
|
| RoRevokeActivationFactories | 不存在时,什么也不做。
|
|||
|
| RoGetActivationFactory | 不存在时,返回 E_NOTIMPL。
|
|||
|
| RoRegisterForApartmentShutdown | 不存在时,返回 E_NOTIMPL。
|
|||
|
| RoUnregisterForApartmentShutdown | 不存在时,返回 E_NOTIMPL。
|
|||
|
| RoGetApartmentIdentifier | 不存在时,返回 E_NOTIMPL。
|
|||
|
|
|||
|
## api-ms-win-core-winrt-error-l1-1-0.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| RoOriginateError | 不存在时,返回 FALSE.
|
|||
|
| RoOriginateErrorW | 不存在时,返回 FALSE.
|
|||
|
|
|||
|
## api-ms-win-core-winrt-string-l1-1-0.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| WindowsCreateString | 不存在时,返回 E_NOTIMPL。
|
|||
|
| WindowsCreateStringReference | 不存在时,返回 E_NOTIMPL。
|
|||
|
| WindowsDeleteString | 不存在时,返回 E_NOTIMPL。
|
|||
|
| WindowsDuplicateString | 不存在时,返回 E_NOTIMPL。
|
|||
|
| WindowsGetStringLen | 不存在时,返回 E_NOTIMPL。
|
|||
|
| WindowsGetStringRawBuffer | 不存在时,返回 E_NOTIMPL。
|
|||
|
| WindowsIsStringEmpty | 不存在时,返回 E_NOTIMPL。
|
|||
|
| WindowsStringHasEmbeddedNull | 不存在时,返回 E_NOTIMPL。
|
|||
|
| WindowsCompareStringOrdinal | 不存在时,返回 E_NOTIMPL。
|
|||
|
|
|||
|
## advapi32.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| RegDeleteKeyExW(A) | 不存在时,调用RegDeleteKeyW(A)。
|
|||
|
| RegSetKeyValueW(A) | 调用RegCreateKeyExW(A)以及RegSetValueExW(A)。
|
|||
|
| RegDeleteKeyValueW(A) | 调用RegOpenKeyExW(A)以及RegDeleteValueW(A)。
|
|||
|
| RegDeleteTreeW(A) | 调用SHDeleteKeyW(A)。
|
|||
|
| RegGetValueW(A) | 不存在时,调用RegQueryValueExW(A)。
|
|||
|
| RegCopyTreeW(A) | 不存在时,调用SHCopyKeyW(A)。
|
|||
|
| EventSetInformation | 不存在时,返回ERROR_NOT_SUPPORTED。
|
|||
|
|
|||
|
## bcrypt.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| BCryptOpenAlgorithmProvider | 内部实现。
|
|||
|
| BCryptCloseAlgorithmProvider | 内部实现。
|
|||
|
| BCryptGenRandom | 不存在时调用,RtlGenRandom。
|
|||
|
|
|||
|
## bluetoothapis.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| BluetoothGATTGetCharacteristicValue | 不存在时,返回ERROR_NOT_SUPPORTED。
|
|||
|
| BluetoothGATTGetCharacteristics | 不存在时,返回ERROR_NOT_SUPPORTED。
|
|||
|
| BluetoothGATTGetDescriptors | 不存在时,返回ERROR_NOT_SUPPORTED。
|
|||
|
| BluetoothGATTGetServices | 不存在时,返回ERROR_NOT_SUPPORTED。
|
|||
|
| BluetoothGATTRegisterEvent | 不存在时,返回ERROR_NOT_SUPPORTED。
|
|||
|
| BluetoothGATTSetCharacteristicValue | 不存在时,返回ERROR_NOT_SUPPORTED。
|
|||
|
| BluetoothGATTSetDescriptorValue | 不存在时,返回ERROR_NOT_SUPPORTED。
|
|||
|
|
|||
|
## iphlpapi.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| GetIfTable2 | 不存在时调用,GetIfTable,并使用HeapAlloc申请内存。
|
|||
|
| GetIfTable2Ex | 不存在时调用,GetIfTable,并使用HeapAlloc申请内存。
|
|||
|
| GetIfEntry2 | 不存在时调用,GetIfEntry。
|
|||
|
| GetIfEntry2Ex | 不存在时调用,GetIfEntry2。
|
|||
|
| FreeMibTable | 不存在时调用,HeapFree。
|
|||
|
|
|||
|
## kernel32.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| DecodePointer | 不存在时,返回指针本身。
|
|||
|
| EncodePointer | 不存在时,返回指针本身。
|
|||
|
| Wow64DisableWow64FsRedirection | 不存在时,返回FALSE,并设置 LastError = ERROR_INVALID_FUNCTION。
|
|||
|
| Wow64RevertWow64FsRedirection | 不存在时,返回FALSE,并设置 LastError = ERROR_INVALID_FUNCTION。
|
|||
|
| Wow64EnableWow64FsRedirection | 不存在时,返回FALSE,并设置 LastError = ERROR_INVALID_FUNCTION。
|
|||
|
| IsWow64Process2 | 不存在时,调用IsWow64Process。
|
|||
|
| IsWow64GuestMachineSupported | 不存在时,调用GetNativeSystemInfo。
|
|||
|
| GetTickCount64 | 不存在时,调用GetTickCount。
|
|||
|
| GetSystemTimePreciseAsFileTime | 不存在时,调用GetSystemTimeAsFileTime。
|
|||
|
| InitializeCriticalSectionEx | 不存在时,调用InitializeCriticalSectionAndSpinCount。
|
|||
|
| InitOnceInitialize | 初始化为 INIT_ONCE_STATIC_INIT。
|
|||
|
| InitOnceBeginInitialize | 不存在时,调用NtWaitForKeyedEvent。
|
|||
|
| InitOnceComplete | 不存在时,调用NtReleaseKeyedEvent。
|
|||
|
| InitOnceExecuteOnce | 不存在时,调用NtWaitForKeyedEvent以及NtReleaseKeyedEvent。
|
|||
|
| LocaleNameToLCID | 不存在时,查LocaleNameToLcidTable。
|
|||
|
| LCIDToLocaleName | 不存在时,查LcidToLocaleNameTable。
|
|||
|
| GetLocaleInfoEx | 不存在时,调用GetLocaleInfoW。
|
|||
|
| GetDateFormatEx | 不存在时,调用GetDateFormatW。
|
|||
|
| GetTimeFormatEx | 不存在时,调用GetTimeFormatW。
|
|||
|
| GetNumberFormatEx | 不存在时,调用GetNumberFormatW。
|
|||
|
| GetCurrencyFormatEx | 不存在时,调用GetCurrencyFormatW。
|
|||
|
| GetUserDefaultLocaleName | 不存在时,调用LCIDToLocaleName。
|
|||
|
| GetSystemDefaultLocaleName | 不存在时,调用LCIDToLocaleName。
|
|||
|
| EnumCalendarInfoExEx | 不存在时,调用EnumCalendarInfoExW。
|
|||
|
| EnumDateFormatsExEx | 不存在时,调用EnumDateFormatsExW。
|
|||
|
| LCMapStringEx | 不存在时,调用LCMapStringW。
|
|||
|
| GetFileInformationByHandleEx | 不存在时,调用NtQueryInformationFile 或者 NtQueryDirectoryFile。
|
|||
|
| SetFileInformationByHandle | 不存在时,调用NtSetInformationFile。
|
|||
|
| GetFinalPathNameByHandleW(A) | 不存在时,调用NtQueryObject以及NtQueryInformationFile。
|
|||
|
| GetLogicalProcessorInformation | 不存在时,返回FALSE,并设置 LastError = ERROR_INVALID_FUNCTION。
|
|||
|
| GetLogicalProcessorInformationEx | 不存在时,调用GetLogicalProcessorInformation。
|
|||
|
| GetNumaHighestNodeNumber | 不存在时,返回0。
|
|||
|
| RaiseFailFastException | 不存在时,调用TerminateProcess。
|
|||
|
| GetThreadId | 不存在时,调用NtQueryInformationThread。
|
|||
|
| GetProcessIdOfThread | 不存在时,调用NtQueryInformationThread。
|
|||
|
| GetProcessId | 不存在时,调用NtQueryInformationProcess。
|
|||
|
| QueryThreadCycleTime | 不存在时,调用GetThreadTimes。
|
|||
|
| QueryProcessCycleTime | 不存在时,调用GetProcessTimes。
|
|||
|
| K32EnumProcessModules | 调用EnumProcessModules。
|
|||
|
| K32EnumProcessModulesEx | 调用EnumProcessModulesEx。
|
|||
|
| K32GetModuleBaseNameW(A) | 调用GetModuleBaseNameW(A)。
|
|||
|
| K32GetModuleFileNameExW(A) | 调用K32GetModuleFileNameExW(A)。
|
|||
|
| K32EmptyWorkingSet | 调用EmptyWorkingSet。
|
|||
|
| K32QueryWorkingSet | 调用QueryWorkingSet。
|
|||
|
| K32QueryWorkingSetEx | 调用QueryWorkingSetEx。
|
|||
|
| K32InitializeProcessForWsWatch | 调用InitializeProcessForWsWatch。
|
|||
|
| K32GetWsChanges | 调用GetWsChanges。
|
|||
|
| K32GetWsChangesEx | 调用GetWsChangesEx。
|
|||
|
| K32GetMappedFileNameW(A) | 调用GetMappedFileNameW(A)。
|
|||
|
| K32EnumDeviceDrivers | 调用EnumDeviceDrivers。
|
|||
|
| K32GetDeviceDriverBaseNameW(A) | 调用GetDeviceDriverBaseNameW(A)。
|
|||
|
| K32GetDeviceDriverFileNameW(A) | 调用GetDeviceDriverFileNameW(A)。
|
|||
|
| K32GetPerformanceInfo | 调用GetPerformanceInfo。
|
|||
|
| K32EnumPageFilesW(A) | 调用EnumPageFilesW(A)。
|
|||
|
| K32GetProcessImageFileNameW(A) | 调用GetProcessImageFileNameW(A)。
|
|||
|
| QueryFullProcessImageNameW(A) | 不存在时,调用GetProcessImageFileNameW(A) 或者 GetModuleFileNameExW(A)。
|
|||
|
| CreateFile2 | 不存在时,调用CreateFileW。
|
|||
|
| CreateEventExW(A) | 不存在时,调用CreateEventW(A)。
|
|||
|
| CreateMutexExW(A) | 不存在时,调用CreateMutexW(A)。
|
|||
|
| CreateSemaphoreExW | 不存在时,调用CreateSemaphoreW。
|
|||
|
| CreateWaitableTimerExW | 不存在时,调用CreateWaitableTimerW。
|
|||
|
| InterlockedCompareExchange64 | 调用内部函数_InterlockedCompareExchange64。
|
|||
|
| SetThreadErrorMode | 不存在时,调用SetErrorMode。
|
|||
|
| GetThreadErrorMode | 不存在时,调用GetErrorMode。
|
|||
|
| GetErrorMode | 不存在时,调用NtQueryInformationProcess。
|
|||
|
| InitializeSRWLock | 初始化为 RTL_SRWLOCK_INIT。
|
|||
|
| AcquireSRWLockExclusive | 不存在时,调用NtWaitForKeyedEvent。
|
|||
|
| TryAcquireSRWLockExclusive | 不存在时,调用InterlockedBitTestAndSet(64)。
|
|||
|
| ReleaseSRWLockExclusive | 不存在时,调用NtReleaseKeyedEvent。
|
|||
|
| AcquireSRWLockShared | 不存在时,调用NtWaitForKeyedEvent。
|
|||
|
| TryAcquireSRWLockShared | 不存在时,调用InterlockedCompareExchange。
|
|||
|
| ReleaseSRWLockShared | 不存在时,调用NtReleaseKeyedEvent。
|
|||
|
| InitializeConditionVariable | 初始化为 CONDITION_VARIABLE_INIT。
|
|||
|
| SleepConditionVariableCS | 不存在时,调用NtWaitForKeyedEvent。
|
|||
|
| SleepConditionVariableSRW | 不存在时,调用NtWaitForKeyedEvent。
|
|||
|
| WakeConditionVariable | 不存在时,调用NtReleaseKeyedEvent。
|
|||
|
| WakeAllConditionVariable | 不存在时,调用NtReleaseKeyedEvent。
|
|||
|
| InitializeSynchronizationBarrier | 不存在时,调用CreateEvent。
|
|||
|
| EnterSynchronizationBarrier | 不存在时,调用WaitForSingleObject。
|
|||
|
| DeleteSynchronizationBarrier | 不存在时,调用CloseHandle。
|
|||
|
| WaitOnAddress | 不存在时,调用NtWaitForKeyedEvent。警告,此函数请勿跨模块使用!!!
|
|||
|
| WakeByAddressSingle | 不存在时,调用NtReleaseKeyedEvent。警告,此函数请勿跨模块使用!!!
|
|||
|
| WakeByAddressAll | 不存在时,调用NtReleaseKeyedEvent。警告,此函数请勿跨模块使用!!!
|
|||
|
| *GetCurrentProcessorNumber | 不存在时,返回0。
|
|||
|
| *GetCurrentProcessorNumberEx | 不存在时,调用GetCurrentProcessorNumber。
|
|||
|
| *GetNumaNodeProcessorMask | 不存在时,假定所有CPU都在当前Numa。
|
|||
|
| *GetNumaNodeProcessorMaskEx | 不存在时,调用GetNumaNodeProcessorMask。
|
|||
|
| *SetThreadGroupAffinity | 不存在时,调用SetThreadAffinityMask。
|
|||
|
| *CancelIoEx | 不存在时,调用CancelIo(会把此句柄的所有IO操作取消掉!)。
|
|||
|
| OpenFileById | 不存在时,调用NtCreateFile。
|
|||
|
| CreateSymbolicLinkW(A) | 不存在时,返回FALSE,并设置 LastError = ERROR_INVALID_FUNCTION。
|
|||
|
| ReOpenFile | 不存在时,调用NtCreateFile。
|
|||
|
| CompareStringEx | 不存在时,调用CompareStringW。
|
|||
|
| CompareStringOrdinal | 不存在时,使用内置UnicodeCaseTableData实现。
|
|||
|
| SetFilePointerEx | 不存在时,调用SetFilePointer。
|
|||
|
| GetModuleHandleExW(A) | 不存在时,调用GetModuleHandleW(A)。
|
|||
|
| WTSGetActiveConsoleSessionId | 不存在时,直接返回 0。
|
|||
|
| GetNativeSystemInfo | 不存在时,调用GetSystemInfo。
|
|||
|
| InitializeSListHead | 直接初始化为 0。
|
|||
|
| InterlockedFlushSList | 不存在时,调用lock cmpxchg8b指令。
|
|||
|
| QueryDepthSList | 不存在时,直接返回Depth。
|
|||
|
| InterlockedPushEntrySList | 不存在时,调用lock cmpxchg8b指令。
|
|||
|
| InterlockedPopEntrySList | 不存在时,调用lock cmpxchg8b指令。
|
|||
|
| GetNumaProximityNodeEx | 不存在时,调用GetNumaProximityNode。
|
|||
|
| GetNumaProcessorNode | 不存在时,假定所有CPU都在节点 0。
|
|||
|
| GetNumaNodeNumberFromHandle | 不存在时,假定所有CPU都在节点 0。
|
|||
|
| GetNumaProcessorNodeEx | 不存在时,调用 GetNumaProcessorNode 。
|
|||
|
| GetNumaAvailableMemoryNode | 不存在时,假定所有内存都属于节点0 。
|
|||
|
| GetNumaAvailableMemoryNodeEx | 不存在时,调用 GetNumaAvailableMemoryNode 。
|
|||
|
| GetNumaProximityNode | 不存在时,假定都是节点0 。
|
|||
|
| AllocateUserPhysicalPagesNuma | 不存在时,调用 AllocateUserPhysicalPages 。
|
|||
|
| MapViewOfFileExNuma | 不存在时,调用 MapViewOfFileEx。
|
|||
|
| VirtualAllocExNuma | 不存在时,调用 VirtualAllocEx 。
|
|||
|
| CreateFileMappingNumaW(A) | 不存在时,调用 CreateFileMappingW(A) 。
|
|||
|
| GetMaximumProcessorCount | 不存在时,调用 GetSystemInfo 。
|
|||
|
| GetActiveProcessorCount | 不存在时,调用 GetSystemInfo 。
|
|||
|
| GetActiveProcessorGroupCount | 不存在时,假定为1 。
|
|||
|
| GetMaximumProcessorGroupCount | 不存在时,假定为1 。
|
|||
|
| GetMemoryErrorHandlingCapabilities | 不存在时,直接报告不支持任何特性。
|
|||
|
| VirtualAllocFromApp | 不存在时,调用 VirtualAlloc 。
|
|||
|
| VirtualAlloc2 | 不存在时,调用 VirtualAllocExNuma 以及 VirtualAllocEx 。
|
|||
|
| VirtualAlloc2FromApp | 不存在时,调用 VirtualAllocExNuma 以及 VirtualAllocEx 。
|
|||
|
| CreateFileMappingFromApp | 不存在时,调用 CreateFileMappingW 。
|
|||
|
| CreateFileMapping2 | 不存在时,调用 CreateFileMappingNumaW 以及 CreateFileMappingW 。
|
|||
|
| MapViewOfFileFromApp | 不存在时,调用 MapViewOfFile 。
|
|||
|
| UnmapViewOfFileEx | 不存在时,调用 UnmapViewOfFile 。
|
|||
|
| VirtualProtectFromApp | 不存在时,调用 VirtualProtect 。
|
|||
|
| OpenFileMappingFromApp | 不存在时,调用 OpenFileMappingW 。
|
|||
|
| CreateThreadpoolWork | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| CloseThreadpoolWork | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| SubmitThreadpoolWork | 不存在时,调用QueueUserWorkItem。警告,此函数请勿跨模块使用!!!
|
|||
|
| WaitForThreadpoolWorkCallbacks | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| CreateThreadpoolTimer | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| CloseThreadpoolTimer | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| SetThreadpoolTimer | 不存在时,调用QueueTimer。警告,此函数请勿跨模块使用!!!
|
|||
|
| SetEventWhenCallbackReturns | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| ReleaseSemaphoreWhenCallbackReturns | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| ReleaseMutexWhenCallbackReturns | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| LeaveCriticalSectionWhenCallbackReturns | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| FreeLibraryWhenCallbackReturns | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| WaitForThreadpoolTimerCallbacks | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| TrySubmitThreadpoolCallback | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| CreateThreadpoolWait | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| CloseThreadpoolWait | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| SetThreadpoolWait | 不存在时,调用RegisterWaitForSingleObject。警告,此函数请勿跨模块使用!!!
|
|||
|
| WaitForThreadpoolWaitCallbacks | 不存在时,内部实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| FlushProcessWriteBuffers | 不存在时,调用VirtualProtect。
|
|||
|
| FlsAlloc | 不存在时,使用Tls实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| FlsFree | 不存在时,使用Tls实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| FlsGetValue | 不存在时,使用Tls实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| FlsSetValue | 不存在时,使用Tls实现。警告,此函数请勿跨模块使用!!!
|
|||
|
| IsThreadAFiber | 不存在时,调用 GetCurrentFiber。
|
|||
|
| ConvertThreadToFiberEx | 不存在时,调用 ConvertThreadToFiber。
|
|||
|
| GetDynamicTimeZoneInformation | 不存在时,调用 GetTimeZoneInformation。
|
|||
|
| SetDynamicTimeZoneInformation | 不存在时,调用 SetTimeZoneInformation。
|
|||
|
| GetProductInfo | 不存在时,调用 GetVersionExW。
|
|||
|
| EnumSystemLocalesEx | 不存在时,调用 EnumSystemLocalesW。
|
|||
|
| GetThreadPreferredUILanguages | 不存在时,调用 GetThreadLocale、GetUserDefaultLangID以及GetSystemDefaultLangID。
|
|||
|
| GetThreadUILanguage | 不存在时,调用 GetThreadLocale。
|
|||
|
| ResolveLocaleName | 不存在时,调用 LocaleNameToLCID以及LCIDToLocaleName。
|
|||
|
| InitializeProcThreadAttributeList | 不存在时,内部实现。
|
|||
|
| DeleteProcThreadAttributeList | 不存在时,内部实现。
|
|||
|
| UpdateProcThreadAttribute | 不存在时,内部实现。PROC_THREAD_ATTRIBUTE_PARENT_PROCESS与PROC_THREAD_ATTRIBUTE_HANDLE_LIST特性会被忽略处理。
|
|||
|
| GetLargePageMinimum | 不存在时,假定为0 。
|
|||
|
| SetThreadStackGuarantee | 不存在时,调用VirtualAlloc。
|
|||
|
| SetCoalescableTimer | 不存在时,调用SetTimer。
|
|||
|
| EnumResourceLanguagesExW(A) | 不存在时,调用EnumResourceLanguagesW(A)。
|
|||
|
| DiscardVirtualMemory | 不存在时,调用VirtualAlloc MEM_RESET。
|
|||
|
| OfferVirtualMemory | 不存在时,返回ERROR_SUCCESS。
|
|||
|
| ReclaimVirtualMemory | 不存在时,返回ERROR_SUCCESS。
|
|||
|
| PrefetchVirtualMemory | 不存在时,返回ERROR_SUCCESS。
|
|||
|
| GetProcessMitigationPolicy | 不存在时,调用NtQueryInformationProcess。
|
|||
|
| SetProcessMitigationPolicy | 不存在时,调用NtSetInformationProcess。
|
|||
|
| SetProcessInformation | 不存在时,调用NtSetInformationProcess。
|
|||
|
| SetThreadInformation | 不存在时,调用NtSetInformationThread。
|
|||
|
| PowerCreateRequest | 不存在时,内部实现。
|
|||
|
| PowerSetRequest | 不存在时,调用 SetThreadExecutionState。
|
|||
|
| PowerClearRequest | 不存在时,调用 SetThreadExecutionState。
|
|||
|
|
|||
|
## mfplat.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| MFCreateDXGIDeviceManager | 不存在时,返回E_NOTIMPL。
|
|||
|
| MFCreateDXGISurfaceBuffer | 不存在时,返回E_NOTIMPL。
|
|||
|
| MFLockDXGIDeviceManager | 不存在时,返回E_NOTIMPL。
|
|||
|
| MFUnlockDXGIDeviceManager | 不存在时,返回E_NOTIMPL。
|
|||
|
|
|||
|
## netapi32.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| NetGetAadJoinInformation | 不存在时,始终认为没有加入 Azure AD 帐户 账号。
|
|||
|
| NetFreeAadJoinInformation | 不存在时,什么也不做。
|
|||
|
|
|||
|
## ole32.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| CoGetApartmentType | 不存在时,调用IComThreadingInfo。
|
|||
|
|
|||
|
## pdh.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| PdhAddEnglishCounterW(A) | 不存在时,调用PdhAddCounterW(A)。
|
|||
|
|
|||
|
## powrprof.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| PowerDeterminePlatformRole | 不存在时,返回PlatformRoleDesktop。
|
|||
|
| PowerDeterminePlatformRoleEx | 不存在时,调用PlatformRoleDesktop。
|
|||
|
| PowerRegisterSuspendResumeNotification | 不存在时,使用窗口模拟。
|
|||
|
| PowerUnregisterSuspendResumeNotification | 内部实现。
|
|||
|
|
|||
|
## psapi.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| EnumProcessModulesEx | 不存在时,调用EnumProcessModules。
|
|||
|
| GetWsChangesEx | 不存在时,调用GetWsChanges。
|
|||
|
| *QueryWorkingSetEx | 不存在时,返回FALSE,并设置 LastError = ERROR_INVALID_FUNCTION。
|
|||
|
|
|||
|
## setupapi.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| SetupDiGetDevicePropertyW | 不存在时,调用SetupDiGetDeviceRegistryPropertyW。
|
|||
|
| SetupDiSetDevicePropertyW | 不存在时,调用SetupDiSetDeviceRegistryPropertyW。
|
|||
|
| SetupDiGetClassPropertyW | 不存在时,调用SetupDiGetClassRegistryPropertyW。
|
|||
|
| SetupDiGetClassPropertyExW | 不存在时,调用SetupDiGetClassRegistryPropertyW。
|
|||
|
| SetupDiSetClassPropertyW | 不存在时,调用SetupDiSetClassRegistryPropertyW。
|
|||
|
| SetupDiSetClassPropertyExW | 不存在时,调用SetupDiSetClassRegistryPropertyW。
|
|||
|
|
|||
|
## shcore.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| GetDpiForMonitor | 不存在时,调用GetDeviceCaps。
|
|||
|
| SetProcessDpiAwareness | 不存在时,调用SetProcessDPIAware。
|
|||
|
| SetProcessDPIAware | 不存在时,直接返回 TRUE。
|
|||
|
|
|||
|
## shell32.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| SHGetKnownFolderPath | 不存在时,调用SHGetFolderPathW。
|
|||
|
| SHSetKnownFolderPath | 不存在时,调用SHSetFolderPathW。
|
|||
|
| SHGetKnownFolderIDList | 不存在时,调用SHGetFolderLocation。
|
|||
|
| SHBindToFolderIDListParent | 不存在时,调用IShellFolder。
|
|||
|
| SHBindToFolderIDListParentEx | 不存在时,调用IShellFolder。
|
|||
|
| SHBindToObject | 不存在时,调用IShellFolder。
|
|||
|
| SHCreateItemFromIDList | 不存在时,调用IShellItem。
|
|||
|
| SHCreateItemWithParent | 不存在时,调用IShellItem。
|
|||
|
| SHCreateItemFromRelativeName | 不存在时,调用IShellItem。
|
|||
|
| SHGetNameFromIDList | 不存在时,调用IShellItem。
|
|||
|
| SHCreateShellItem | 不存在时,调用IShellItem。
|
|||
|
| SHCreateItemFromParsingName | 不存在时,调用SHParseDisplayName。
|
|||
|
|
|||
|
## shlwapi.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| StrToInt64ExW(A) | 不存在时,手工解析字符串。
|
|||
|
|
|||
|
## user32.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| IsWow64Process | 不存在时,返回TRUE,并设置 `*Wow64Process = FALSE`。
|
|||
|
| SetProcessDpiAwarenessContext | 不存在时,调用SetProcessDpiAwareness。
|
|||
|
| GetDpiForSystem | 不存在时,调用GetDeviceCaps。
|
|||
|
| GetDpiForWindow | 不存在时,调用GetDpiForMonitor。
|
|||
|
| GetSystemMetricsForDpi | 不存在时,调用GetSystemMetrics。
|
|||
|
| AdjustWindowRectExForDpi | 不存在时,调用AdjustWindowRectEx。
|
|||
|
| SystemParametersInfoForDpi | 不存在时,调用SystemParametersInfoW。
|
|||
|
| RegisterSuspendResumeNotification | 不存在时,使用窗口模拟。
|
|||
|
| UnregisterSuspendResumeNotification | 不存在时,内部实现。
|
|||
|
|
|||
|
## userenv.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| CreateAppContainerProfile | 不存在时,返回E_NOTIMPL。
|
|||
|
| DeleteAppContainerProfile | 不存在时,返回E_NOTIMPL。
|
|||
|
| DeriveAppContainerSidFromAppContainerName | 不存在时,返回E_NOTIMPL。
|
|||
|
| GetAppContainerFolderPath | 不存在时,返回E_NOTIMPL。
|
|||
|
| GetAppContainerRegistryLocation | 不存在时,返回E_NOTIMPL。
|
|||
|
|
|||
|
## version.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| GetFileVersionInfoExW(A) | 不存在时,调用GetFileVersionInfoW(A)。
|
|||
|
| GetFileVersionInfoSizeExW(A) | 不存在时,调用GetFileVersionInfoSizeW(A)。
|
|||
|
|
|||
|
## ws2_32.dll
|
|||
|
| 函数 | Fallback
|
|||
|
| ---- | -----------
|
|||
|
| InetPtonW(inet_pton) | 不存在时,类似于sscanf手工分析字符串。
|
|||
|
| InetNtopW(inet_ntop) | 不存在时,类似于sprintf手工生成字符串。
|
|||
|
| WSAPoll | 不存在时,调用select。
|