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 (
134 HANDLE hVirtualBuffer
161 GetSystemPowerStatus (
162 LPSYSTEM_POWER_STATUS PowerStatus
166 PowerStatus
->ACLineStatus
= 1;
167 PowerStatus
->BatteryFlag
= 128;
168 PowerStatus
->BatteryLifePercent
= 255;
169 PowerStatus
->Reserved1
= 0;
170 PowerStatus
->BatteryLifeTime
= -1;
171 PowerStatus
->BatteryFullLifeTime
= -1;
181 GetVDMCurrentDirectories (
220 RegisterWowBaseHandlers (
247 SetSystemPowerState (
262 SetVDMCurrentDirectories (
291 VDMConsoleOperation (
306 VDMOperationStarted (
319 VirtualBufferExceptionHandler (
334 AllocateUserPhysicalPages(
336 PULONG_PTR NumberOfPages
,
337 PULONG_PTR UserPfnArray
349 BindIoCompletionCallback(HANDLE FileHandle
,
350 LPOVERLAPPED_COMPLETION_ROUTINE Function
,
355 DPRINT("(%p, %p, %d)\n", FileHandle
, Function
, Flags
);
357 Status
= RtlSetIoCompletionCallback(FileHandle
,
358 (PIO_APC_ROUTINE
)Function
,
361 if (!NT_SUCCESS(Status
))
363 SetLastError(RtlNtStatusToDosError(Status
));
375 CancelDeviceWakeupRequest(
390 PJOB_SET_ARRAY UserJobSet
,
402 FindVolumeMountPointClose(
403 HANDLE hFindVolumeMountPoint
415 FreeUserPhysicalPages(
417 PULONG_PTR NumberOfPages
,
445 GetNumaHighestNodeNumber(
446 PULONG HighestNodeNumber
458 GetNumaNodeProcessorMask(
460 PULONGLONG ProcessorMask
472 GetNumaProcessorNode(
491 PULONG_PTR lpdwCount
,
492 PULONG lpdwGranularity
504 HeapQueryInformation (
506 HEAP_INFORMATION_CLASS HeapInformationClass
,
507 PVOID HeapInformation OPTIONAL
,
508 SIZE_T HeapInformationLength OPTIONAL
,
509 PSIZE_T ReturnLength OPTIONAL
523 HEAP_INFORMATION_CLASS HeapInformationClass
,
524 PVOID HeapInformation OPTIONAL
,
525 SIZE_T HeapInformationLength OPTIONAL
537 IsSystemResumeAutomatic(
550 MapUserPhysicalPages(
551 PVOID VirtualAddress
,
552 ULONG_PTR NumberOfPages
,
553 PULONG_PTR PageArray OPTIONAL
565 MapUserPhysicalPagesScatter(
566 PVOID
*VirtualAddresses
,
567 ULONG_PTR NumberOfPages
,
568 PULONG_PTR PageArray OPTIONAL
580 ReadFileScatter(HANDLE hFile
,
581 FILE_SEGMENT_ELEMENT aSegmentArray
[],
582 DWORD nNumberOfBytesToRead
,
584 LPOVERLAPPED lpOverlapped
)
586 PIO_STATUS_BLOCK pIOStatus
;
587 LARGE_INTEGER Offset
;
590 DPRINT("(%p %p %u %p)\n", hFile
, aSegmentArray
, nNumberOfBytesToRead
, lpOverlapped
);
592 Offset
.LowPart
= lpOverlapped
->Offset
;
593 Offset
.HighPart
= lpOverlapped
->OffsetHigh
;
594 pIOStatus
= (PIO_STATUS_BLOCK
) lpOverlapped
;
595 pIOStatus
->Status
= STATUS_PENDING
;
596 pIOStatus
->Information
= 0;
598 Status
= NtReadFileScatter(hFile
,
604 nNumberOfBytesToRead
,
608 if (!NT_SUCCESS(Status
))
610 SetLastError(RtlNtStatusToDosError(Status
));
622 RemoveVectoredExceptionHandler(
623 PVOID VectoredHandlerHandle
648 RequestWakeupLatency(
662 LPVOID lpBaseAddress
,
687 SetMessageWaitingIndicator(
688 HANDLE hMsgIndicator
,
701 SetThreadExecutionState(
702 EXECUTION_STATE esFlags
705 static EXECUTION_STATE current
=
706 ES_SYSTEM_REQUIRED
| ES_DISPLAY_REQUIRED
| ES_USER_PRESENT
;
707 EXECUTION_STATE old
= current
;
709 DPRINT1("(0x%x): stub, harmless.\n", esFlags
);
711 if (!(current
& ES_CONTINUOUS
) || (esFlags
& ES_CONTINUOUS
))
721 WriteFileGather(HANDLE hFile
,
722 FILE_SEGMENT_ELEMENT aSegmentArray
[],
723 DWORD nNumberOfBytesToWrite
,
725 LPOVERLAPPED lpOverlapped
)
727 PIO_STATUS_BLOCK IOStatus
;
728 LARGE_INTEGER Offset
;
731 DPRINT("%p %p %u %p\n", hFile
, aSegmentArray
, nNumberOfBytesToWrite
, lpOverlapped
);
733 Offset
.LowPart
= lpOverlapped
->Offset
;
734 Offset
.HighPart
= lpOverlapped
->OffsetHigh
;
735 IOStatus
= (PIO_STATUS_BLOCK
) lpOverlapped
;
736 IOStatus
->Status
= STATUS_PENDING
;
737 IOStatus
->Information
= 0;
739 Status
= NtWriteFileGather(hFile
,
745 nNumberOfBytesToWrite
,
749 if (!NT_SUCCESS(Status
))
751 SetLastError(RtlNtStatusToDosError(Status
));
763 DeleteVolumeMountPointW(
764 LPCWSTR lpszVolumeMountPoint
776 FindFirstVolumeMountPointW(
777 LPCWSTR lpszRootPathName
,
778 LPWSTR lpszVolumeMountPoint
,
779 DWORD cchBufferLength
797 MOUNTMGR_MOUNT_POINTS
*data
= handle
;
799 while (data
->Size
< data
->NumberOfMountPoints
)
801 static const WCHAR volumeW
[] = {'\\','?','?','\\','V','o','l','u','m','e','{',};
802 WCHAR
*link
= (WCHAR
*)((char *)data
+ data
->MountPoints
[data
->Size
].SymbolicLinkNameOffset
);
803 DWORD size
= data
->MountPoints
[data
->Size
].SymbolicLinkNameLength
;
805 /* skip non-volumes */
806 if (size
< sizeof(volumeW
) || memcmp( link
, volumeW
, sizeof(volumeW
) )) continue;
807 if (size
+ sizeof(WCHAR
) >= len
* sizeof(WCHAR
))
809 SetLastError( ERROR_FILENAME_EXCED_RANGE
);
812 memcpy( volume
, link
, size
);
813 volume
[1] = '\\'; /* map \??\ to \\?\ */
814 volume
[size
/ sizeof(WCHAR
)] = '\\'; /* Windows appends a backslash */
815 volume
[size
/ sizeof(WCHAR
) + 1] = 0;
816 DPRINT( "returning entry %u %s\n", data
->Size
- 1, volume
);
819 SetLastError( ERROR_NO_MORE_FILES
);
828 FindNextVolumeMountPointW(
829 HANDLE hFindVolumeMountPoint
,
830 LPWSTR lpszVolumeMountPoint
,
831 DWORD cchBufferLength
843 GetFirmwareEnvironmentVariableW(
860 LPCWSTR lpszFileName
,
861 LPWSTR lpszVolumePathName
,
862 DWORD cchBufferLength
866 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
875 GetVolumePathNamesForVolumeNameW(
876 LPCWSTR lpszVolumeName
,
877 LPWSTR lpszVolumePathNames
,
878 DWORD cchBufferLength
,
879 PDWORD lpcchReturnLength
891 SetFirmwareEnvironmentVariableW(
907 SetVolumeMountPointW(
908 LPCWSTR lpszVolumeMountPoint
,
909 LPCWSTR lpszVolumeName
921 DeleteVolumeMountPointA(
922 LPCSTR lpszVolumeMountPoint
934 FindFirstVolumeMountPointA(
935 LPCSTR lpszRootPathName
,
936 LPSTR lpszVolumeMountPoint
,
937 DWORD cchBufferLength
949 FindNextVolumeA(HANDLE handle
,
953 WCHAR
*buffer
= HeapAlloc(GetProcessHeap(), 0, len
* sizeof(WCHAR
));
956 if ((ret
= FindNextVolumeW( handle
, buffer
, len
)))
958 if (!WideCharToMultiByte( CP_ACP
, 0, buffer
, -1, volume
, len
, NULL
, NULL
)) ret
= FALSE
;
961 HeapFree( GetProcessHeap(), 0, buffer
);
970 FindNextVolumeMountPointA(
971 HANDLE hFindVolumeMountPoint
,
972 LPSTR lpszVolumeMountPoint
,
973 DWORD cchBufferLength
985 GetFirmwareEnvironmentVariableA(
1002 LPCSTR lpszFileName
,
1003 LPSTR lpszVolumePathName
,
1004 DWORD cchBufferLength
1016 GetVolumePathNamesForVolumeNameA(
1017 LPCSTR lpszVolumeName
,
1018 LPSTR lpszVolumePathNames
,
1019 DWORD cchBufferLength
,
1020 PDWORD lpcchReturnLength
1032 SetFirmwareEnvironmentVariableA(
1048 SetVolumeMountPointA(
1049 LPCSTR lpszVolumeMountPoint
,
1050 LPCSTR lpszVolumeName
1060 BOOL WINAPI
GetConsoleKeyboardLayoutNameA(LPSTR name
)
1069 BOOL WINAPI
GetConsoleKeyboardLayoutNameW(LPWSTR name
)
1078 DWORD WINAPI
GetHandleContext(HANDLE hnd
)
1087 HANDLE WINAPI
CreateSocketHandle(VOID
)
1096 BOOL WINAPI
SetHandleContext(HANDLE hnd
,DWORD context
)
1105 BOOL WINAPI
UTRegister( HMODULE hModule
, LPSTR lpsz16BITDLL
,
1106 LPSTR lpszInitName
, LPSTR lpszProcName
,
1107 FARPROC
*ppfn32Thunk
, FARPROC pfnUT32CallBack
,
1117 VOID WINAPI
UTUnRegister( HMODULE hModule
)
1126 FARPROC WINAPI
DelayLoadFailureHook(unsigned int dliNotify
, PDelayLoadInfo pdli
)
1128 FARPROC WINAPI
DelayLoadFailureHook(unsigned int dliNotify
, PVOID pdli
)
1138 NTSTATUS WINAPI
CreateNlsSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor
,ULONG Size
,ULONG AccessMask
)
1147 BOOL WINAPI
IsValidUILanguage(LANGID langid
)
1156 VOID WINAPI
NlsConvertIntegerToString(ULONG Value
,ULONG Base
,ULONG strsize
, LPWSTR str
, ULONG strsize2
)
1164 UINT WINAPI
SetCPGlobal(UINT CodePage
)
1175 SetClientTimeZoneInformation(
1176 CONST TIME_ZONE_INFORMATION
*lpTimeZoneInformation
)
1184 NlsGetCacheUpdateCount(VOID
)
1192 Wow64EnableWow64FsRedirection (BOOL Wow64EnableWow64FsRedirection
)
1200 Wow64DisableWow64FsRedirection (VOID
** pv
)
1208 Wow64RevertWow64FsRedirection (VOID
* pv
)
1216 EnumSystemFirmwareTables(IN DWORD FirmwareTableProviderSignature
,
1217 OUT PVOID pFirmwareTableBuffer
,
1218 IN DWORD BufferSize
)
1226 GetSystemFileCacheSize(OUT PSIZE_T lpMinimumFileCacheSize
,
1227 OUT PSIZE_T lpMaximumFileCacheSize
,
1236 GetSystemFirmwareTable(IN DWORD FirmwareTableProviderSignature
,
1237 IN DWORD FirmwareTableID
,
1238 OUT PVOID pFirmwareTableBuffer
,
1239 IN DWORD BufferSize
)
1247 SetSystemFileCacheSize(IN SIZE_T MinimumFileCacheSize
,
1248 IN SIZE_T MaximumFileCacheSize
,
1257 SetThreadStackGuarantee(IN OUT PULONG StackSizeInBytes
)
1265 ReOpenFile(IN HANDLE hOriginalFile
,
1266 IN DWORD dwDesiredAccess
,
1267 IN DWORD dwShareMode
,
1271 return INVALID_HANDLE_VALUE
;
1276 SetProcessWorkingSetSizeEx(IN HANDLE hProcess
,
1277 IN SIZE_T dwMinimumWorkingSetSize
,
1278 IN SIZE_T dwMaximumWorkingSetSize
,
1288 GetProcessWorkingSetSizeEx(IN HANDLE hProcess
,
1289 OUT PSIZE_T lpMinimumWorkingSetSize
,
1290 OUT PSIZE_T lpMaximumWorkingSetSize
,
1299 GetLogicalProcessorInformation(OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer
,
1300 IN OUT PDWORD ReturnLength
)
1308 GetNumaAvailableMemoryNode(IN UCHAR Node
,
1309 OUT PULONGLONG AvailableBytes
)