mirror of
https://github.com/HIllya51/LunaHook.git
synced 2024-11-28 00:04:03 +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。
|