2024-02-07 20:59:24 +08:00

396 lines
30 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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。