2 * KERNEL32.DLL stubs (STUB functions)
3 * Remove from this file, if you implement them.
12 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); \
13 DPRINT1("%s() is UNIMPLEMENTED!\n", __FUNCTION__)
20 BaseAttachCompleteThunk (VOID
)
30 BaseDumpAppcompatCache(VOID
)
39 BaseFlushAppcompatCache(VOID
)
49 BaseCheckAppcompatCache(ULONG Unknown1
,
55 if (Unknown4
) *Unknown4
= 0;
63 BaseUpdateAppcompatCache(ULONG Unknown1
, ULONG Unknown2
, ULONG Unknown3
)
118 ExtendVirtualBuffer (
170 HANDLE hVirtualBuffer
197 GetSystemPowerStatus (
198 LPSYSTEM_POWER_STATUS PowerStatus
202 PowerStatus
->ACLineStatus
= 1;
203 PowerStatus
->BatteryFlag
= 128;
204 PowerStatus
->BatteryLifePercent
= 255;
205 PowerStatus
->Reserved1
= 0;
206 PowerStatus
->BatteryLifeTime
= -1;
207 PowerStatus
->BatteryFullLifeTime
= -1;
217 GetVDMCurrentDirectories (
256 RegisterWowBaseHandlers (
283 SetSystemPowerState (
298 SetVDMCurrentDirectories (
327 VDMConsoleOperation (
342 VDMOperationStarted (
355 VirtualBufferExceptionHandler (
370 AllocateUserPhysicalPages(
372 PULONG_PTR NumberOfPages
,
373 PULONG_PTR UserPfnArray
385 BindIoCompletionCallback (
387 LPOVERLAPPED_COMPLETION_ROUTINE Function
,
400 CancelDeviceWakeupRequest(
415 PJOB_SET_ARRAY UserJobSet
,
440 FindVolumeMountPointClose(
441 HANDLE hFindVolumeMountPoint
453 FreeUserPhysicalPages(
455 PULONG_PTR NumberOfPages
,
483 GetNumaHighestNodeNumber(
484 PULONG HighestNodeNumber
496 GetNumaNodeProcessorMask(
498 PULONGLONG ProcessorMask
510 GetNumaProcessorNode(
529 PULONG_PTR lpdwCount
,
530 PULONG lpdwGranularity
542 HeapQueryInformation (
544 HEAP_INFORMATION_CLASS HeapInformationClass
,
545 PVOID HeapInformation OPTIONAL
,
546 SIZE_T HeapInformationLength OPTIONAL
,
547 PSIZE_T ReturnLength OPTIONAL
561 HEAP_INFORMATION_CLASS HeapInformationClass
,
562 PVOID HeapInformation OPTIONAL
,
563 SIZE_T HeapInformationLength OPTIONAL
575 IsSystemResumeAutomatic(
594 *Wow64Process
= FALSE
;
603 MapUserPhysicalPages(
604 PVOID VirtualAddress
,
605 ULONG_PTR NumberOfPages
,
606 PULONG_PTR PageArray OPTIONAL
618 MapUserPhysicalPagesScatter(
619 PVOID
*VirtualAddresses
,
620 ULONG_PTR NumberOfPages
,
621 PULONG_PTR PageArray OPTIONAL
635 FILE_SEGMENT_ELEMENT aSegmentArray
[],
636 DWORD nNumberOfBytesToRead
,
638 LPOVERLAPPED lpOverlapped
650 RemoveVectoredExceptionHandler(
651 PVOID VectoredHandlerHandle
676 RequestWakeupLatency(
690 LPVOID lpBaseAddress
,
715 SetMessageWaitingIndicator(
716 HANDLE hMsgIndicator
,
729 SetThreadExecutionState(
730 EXECUTION_STATE esFlags
733 static EXECUTION_STATE current
=
734 ES_SYSTEM_REQUIRED
| ES_DISPLAY_REQUIRED
| ES_USER_PRESENT
;
735 EXECUTION_STATE old
= current
;
737 DPRINT1("(0x%x): stub, harmless.\n", esFlags
);
739 if (!(current
& ES_CONTINUOUS
) || (esFlags
& ES_CONTINUOUS
))
749 TzSpecificLocalTimeToSystemTime(
750 CONST TIME_ZONE_INFORMATION
*lpTimeZoneInformation
,
751 CONST SYSTEMTIME
*lpLocalTime
,
752 LPSYSTEMTIME lpUniversalTime
766 FILE_SEGMENT_ELEMENT aSegmentArray
[],
767 DWORD nNumberOfBytesToWrite
,
769 LPOVERLAPPED lpOverlapped
781 DeleteVolumeMountPointW(
782 LPCWSTR lpszVolumeMountPoint
794 DnsHostnameToComputerNameW (
802 DPRINT("(%s, %p, %p): stub\n", hostname
, computername
, size
);
804 if (!hostname
|| !size
) return FALSE
;
805 len
= lstrlenW(hostname
);
807 if (len
> MAX_COMPUTERNAME_LENGTH
)
808 len
= MAX_COMPUTERNAME_LENGTH
;
815 if (!computername
) return FALSE
;
817 memcpy( computername
, hostname
, len
* sizeof(WCHAR
) );
818 computername
[len
+ 1] = 0;
833 HANDLE mgr
= CreateFileW( MOUNTMGR_DOS_DEVICE_NAME
, 0, FILE_SHARE_READ
|FILE_SHARE_WRITE
,
834 NULL
, OPEN_EXISTING
, 0, 0 );
835 if (mgr
== INVALID_HANDLE_VALUE
) return INVALID_HANDLE_VALUE
;
839 MOUNTMGR_MOUNT_POINT input
;
840 MOUNTMGR_MOUNT_POINTS
*output
;
842 if (!(output
= HeapAlloc( GetProcessHeap(), 0, size
)))
844 SetLastError( ERROR_NOT_ENOUGH_MEMORY
);
847 memset( &input
, 0, sizeof(input
) );
849 if (!DeviceIoControl( mgr
, IOCTL_MOUNTMGR_QUERY_POINTS
, &input
, sizeof(input
),
850 output
, size
, NULL
, NULL
))
852 if (GetLastError() != ERROR_MORE_DATA
) break;
854 HeapFree( GetProcessHeap(), 0, output
);
858 /* abuse the Size field to store the current index */
860 if (!FindNextVolumeW( output
, volume
, len
))
862 HeapFree( GetProcessHeap(), 0, output
);
863 return INVALID_HANDLE_VALUE
;
865 return (HANDLE
)output
;
868 return INVALID_HANDLE_VALUE
;
876 FindFirstVolumeMountPointW(
877 LPCWSTR lpszRootPathName
,
878 LPWSTR lpszVolumeMountPoint
,
879 DWORD cchBufferLength
897 MOUNTMGR_MOUNT_POINTS
*data
= handle
;
899 while (data
->Size
< data
->NumberOfMountPoints
)
901 static const WCHAR volumeW
[] = {'\\','?','?','\\','V','o','l','u','m','e','{',};
902 WCHAR
*link
= (WCHAR
*)((char *)data
+ data
->MountPoints
[data
->Size
].SymbolicLinkNameOffset
);
903 DWORD size
= data
->MountPoints
[data
->Size
].SymbolicLinkNameLength
;
905 /* skip non-volumes */
906 if (size
< sizeof(volumeW
) || memcmp( link
, volumeW
, sizeof(volumeW
) )) continue;
907 if (size
+ sizeof(WCHAR
) >= len
* sizeof(WCHAR
))
909 SetLastError( ERROR_FILENAME_EXCED_RANGE
);
912 memcpy( volume
, link
, size
);
913 volume
[1] = '\\'; /* map \??\ to \\?\ */
914 volume
[size
/ sizeof(WCHAR
)] = '\\'; /* Windows appends a backslash */
915 volume
[size
/ sizeof(WCHAR
) + 1] = 0;
916 DPRINT( "returning entry %u %s\n", data
->Size
- 1, volume
);
919 SetLastError( ERROR_NO_MORE_FILES
);
928 FindNextVolumeMountPointW(
929 HANDLE hFindVolumeMountPoint
,
930 LPWSTR lpszVolumeMountPoint
,
931 DWORD cchBufferLength
943 GetFirmwareEnvironmentVariableW(
960 LPCWSTR lpszFileName
,
961 LPWSTR lpszVolumePathName
,
962 DWORD cchBufferLength
966 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
975 GetVolumePathNamesForVolumeNameW(
976 LPCWSTR lpszVolumeName
,
977 LPWSTR lpszVolumePathNames
,
978 DWORD cchBufferLength
,
979 PDWORD lpcchReturnLength
992 LPCWSTR lpReplacedFileName
,
993 LPCWSTR lpReplacementFileName
,
994 LPCWSTR lpBackupFileName
,
995 DWORD dwReplaceFlags
,
1009 SetFirmwareEnvironmentVariableW(
1025 SetVolumeMountPointW(
1026 LPCWSTR lpszVolumeMountPoint
,
1027 LPCWSTR lpszVolumeName
1039 DeleteVolumeMountPointA(
1040 LPCSTR lpszVolumeMountPoint
1052 DnsHostnameToComputerNameA (
1072 WCHAR
*buffer
= HeapAlloc( GetProcessHeap(), 0, len
* sizeof(WCHAR
) );
1073 HANDLE handle
= FindFirstVolumeW( buffer
, len
);
1075 if (handle
!= INVALID_HANDLE_VALUE
)
1077 if (!WideCharToMultiByte( CP_ACP
, 0, buffer
, -1, volume
, len
, NULL
, NULL
))
1079 FindVolumeClose( handle
);
1080 handle
= INVALID_HANDLE_VALUE
;
1083 HeapFree( GetProcessHeap(), 0, buffer
);
1092 FindFirstVolumeMountPointA(
1093 LPCSTR lpszRootPathName
,
1094 LPSTR lpszVolumeMountPoint
,
1095 DWORD cchBufferLength
1113 WCHAR
*buffer
= HeapAlloc( GetProcessHeap(), 0, len
* sizeof(WCHAR
) );
1116 if ((ret
= FindNextVolumeW( handle
, buffer
, len
)))
1118 if (!WideCharToMultiByte( CP_ACP
, 0, buffer
, -1, volume
, len
, NULL
, NULL
)) ret
= FALSE
;
1120 HeapFree( GetProcessHeap(), 0, buffer
);
1129 FindNextVolumeMountPointA(
1130 HANDLE hFindVolumeMountPoint
,
1131 LPSTR lpszVolumeMountPoint
,
1132 DWORD cchBufferLength
1144 GetFirmwareEnvironmentVariableA(
1160 GetVolumeNameForVolumeMountPointA(
1161 LPCSTR lpszVolumeMountPoint
,
1162 LPSTR lpszVolumeName
,
1163 DWORD cchBufferLength
1176 LPCSTR lpszFileName
,
1177 LPSTR lpszVolumePathName
,
1178 DWORD cchBufferLength
1190 GetVolumePathNamesForVolumeNameA(
1191 LPCSTR lpszVolumeName
,
1192 LPSTR lpszVolumePathNames
,
1193 DWORD cchBufferLength
,
1194 PDWORD lpcchReturnLength
1207 LPCSTR lpReplacedFileName
,
1208 LPCSTR lpReplacementFileName
,
1209 LPCSTR lpBackupFileName
,
1210 DWORD dwReplaceFlags
,
1224 SetFirmwareEnvironmentVariableA(
1240 SetVolumeMountPointA(
1241 LPCSTR lpszVolumeMountPoint
,
1242 LPCSTR lpszVolumeName
1252 BOOL STDCALL
GetConsoleKeyboardLayoutNameA(LPSTR name
)
1261 BOOL STDCALL
GetConsoleKeyboardLayoutNameW(LPWSTR name
)
1270 DWORD STDCALL
GetHandleContext(HANDLE hnd
)
1279 HANDLE STDCALL
CreateSocketHandle(VOID
)
1288 BOOL STDCALL
SetHandleContext(HANDLE hnd
,DWORD context
)
1297 BOOL STDCALL
UTRegister( HMODULE hModule
, LPSTR lpsz16BITDLL
,
1298 LPSTR lpszInitName
, LPSTR lpszProcName
,
1299 FARPROC
*ppfn32Thunk
, FARPROC pfnUT32CallBack
,
1309 VOID STDCALL
UTUnRegister( HMODULE hModule
)
1318 FARPROC STDCALL
DelayLoadFailureHook(unsigned int dliNotify
, PDelayLoadInfo pdli
)
1320 FARPROC STDCALL
DelayLoadFailureHook(unsigned int dliNotify
, PVOID pdli
)
1330 NTSTATUS STDCALL
CreateNlsSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor
,ULONG Size
,ULONG AccessMask
)
1339 BOOL STDCALL
IsValidUILanguage(LANGID langid
)
1348 VOID STDCALL
NlsConvertIntegerToString(ULONG Value
,ULONG Base
,ULONG strsize
, LPWSTR str
, ULONG strsize2
)
1356 UINT STDCALL
SetCPGlobal(UINT CodePage
)
1367 SetClientTimeZoneInformation(
1368 CONST TIME_ZONE_INFORMATION
*lpTimeZoneInformation
)
1376 NlsGetCacheUpdateCount(VOID
)
1384 Wow64EnableWow64FsRedirection (BOOL Wow64EnableWow64FsRedirection
)
1392 Wow64DisableWow64FsRedirection (VOID
** pv
)
1400 Wow64RevertWow64FsRedirection (VOID
* pv
)
1408 EnumSystemFirmwareTables(IN DWORD FirmwareTableProviderSignature
,
1409 OUT PVOID pFirmwareTableBuffer
,
1410 IN DWORD BufferSize
)
1418 GetSystemFileCacheSize(OUT PSIZE_T lpMinimumFileCacheSize
,
1419 OUT PSIZE_T lpMaximumFileCacheSize
,
1428 GetSystemFirmwareTable(IN DWORD FirmwareTableProviderSignature
,
1429 IN DWORD FirmwareTableID
,
1430 OUT PVOID pFirmwareTableBuffer
,
1431 IN DWORD BufferSize
)
1439 SetSystemFileCacheSize(IN SIZE_T MinimumFileCacheSize
,
1440 IN SIZE_T MaximumFileCacheSize
,
1449 SetThreadStackGuarantee(IN OUT PULONG StackSizeInBytes
)
1457 ReOpenFile(IN HANDLE hOriginalFile
,
1458 IN DWORD dwDesiredAccess
,
1459 IN DWORD dwShareMode
,
1463 return INVALID_HANDLE_VALUE
;
1468 SetProcessWorkingSetSizeEx(IN HANDLE hProcess
,
1469 IN SIZE_T dwMinimumWorkingSetSize
,
1470 IN SIZE_T dwMaximumWorkingSetSize
,
1480 GetProcessWorkingSetSizeEx(IN HANDLE hProcess
,
1481 OUT PSIZE_T lpMinimumWorkingSetSize
,
1482 OUT PSIZE_T lpMaximumWorkingSetSize
,
1491 GetLogicalProcessorInformation(OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer
,
1492 IN OUT PDWORD ReturnLength
)
1500 GetNumaAvailableMemoryNode(IN UCHAR Node
,
1501 OUT PULONGLONG AvailableBytes
)