- If MSDN says "BOOLEAN", let it be "BOOLEAN". Fixes build.
[reactos.git] / reactos / dll / win32 / kernel32 / misc / stubs.c
index 6b85d31..c852f34 100644 (file)
@@ -16,7 +16,7 @@
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 BaseAttachCompleteThunk (VOID)
 {
     STUB;
@@ -26,7 +26,7 @@ BaseAttachCompleteThunk (VOID)
 /*
  * @unimplemented
  */
-VOID STDCALL
+VOID WINAPI
 BaseDumpAppcompatCache(VOID)
 {
     STUB;
@@ -35,7 +35,7 @@ BaseDumpAppcompatCache(VOID)
 /*
  * @unimplemented
  */
-VOID STDCALL
+VOID WINAPI
 BaseFlushAppcompatCache(VOID)
 {
     STUB;
@@ -59,7 +59,7 @@ BaseCheckAppcompatCache(ULONG Unknown1,
 /*
  * @unimplemented
  */
-VOID STDCALL
+VOID WINAPI
 BaseUpdateAppcompatCache(ULONG Unknown1, ULONG Unknown2, ULONG Unknown3)
 {
     STUB;
@@ -69,7 +69,7 @@ BaseUpdateAppcompatCache(ULONG Unknown1, ULONG Unknown2, ULONG Unknown3)
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 CmdBatNotification (
     DWORD   Unknown
     )
@@ -83,7 +83,7 @@ CmdBatNotification (
  * @unimplemented
  */
 DWORD
-STDCALL
+WINAPI
 CreateVirtualBuffer (
     DWORD   Unknown0,
     DWORD   Unknown1,
@@ -99,7 +99,7 @@ CreateVirtualBuffer (
  * @unimplemented
  */
 DWORD
-STDCALL
+WINAPI
 ExitVDM (
     DWORD   Unknown0,
     DWORD   Unknown1
@@ -114,7 +114,7 @@ ExitVDM (
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 ExtendVirtualBuffer (
     DWORD   Unknown0,
     DWORD   Unknown1
@@ -125,47 +125,11 @@ ExtendVirtualBuffer (
 }
 
 
-/*
- * @unimplemented
- */
-int
-STDCALL
-FoldStringW (
-    DWORD   dwMapFlags,
-    LPCWSTR lpSrcStr,
-    int cchSrc,
-    LPWSTR  lpDestStr,
-    int cchDest
-    )
-{
-    STUB;
-    return 0;
-}
-
-
-/*
- * @unimplemented
- */
-int
-STDCALL
-FoldStringA (
-    DWORD   dwMapFlags,
-    LPCSTR  lpSrcStr,
-    int cchSrc,
-    LPSTR   lpDestStr,
-    int cchDest
-    )
-{
-    STUB;
-    return 0;
-}
-
-
 /*
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 FreeVirtualBuffer (
     HANDLE  hVirtualBuffer
     )
@@ -179,7 +143,7 @@ FreeVirtualBuffer (
  * @unimplemented
  */
 DWORD
-STDCALL
+WINAPI
 GetNextVDMCommand (
     DWORD   Unknown0
     )
@@ -189,31 +153,11 @@ GetNextVDMCommand (
 }
 
 
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-GetSystemPowerStatus (
-    LPSYSTEM_POWER_STATUS PowerStatus
-    )
-{
-    STUB;
-    PowerStatus->ACLineStatus = 1;
-    PowerStatus->BatteryFlag = 128;
-    PowerStatus->BatteryLifePercent = 255;
-    PowerStatus->Reserved1 = 0;
-    PowerStatus->BatteryLifeTime = -1;
-    PowerStatus->BatteryFullLifeTime = -1;
-    return TRUE;
-}
-
-
 /*
  * @unimplemented
  */
 DWORD
-STDCALL
+WINAPI
 GetVDMCurrentDirectories (
     DWORD   Unknown0,
     DWORD   Unknown1
@@ -228,7 +172,7 @@ GetVDMCurrentDirectories (
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 RegisterConsoleVDM (
     DWORD   Unknown0,
     DWORD   Unknown1,
@@ -252,7 +196,7 @@ RegisterConsoleVDM (
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 RegisterWowBaseHandlers (
     DWORD   Unknown0
     )
@@ -266,7 +210,7 @@ RegisterWowBaseHandlers (
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 RegisterWowExec (
     DWORD   Unknown0
     )
@@ -276,25 +220,11 @@ RegisterWowExec (
 }
 
 
-/*
- * @unimplemented
- */
-BOOL STDCALL
-SetSystemPowerState (
-    BOOL fSuspend,
-    BOOL fForce
-    )
-{
-    STUB;
-    return FALSE;
-}
-
-
 /*
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 SetVDMCurrentDirectories (
     DWORD   Unknown0,
     DWORD   Unknown1
@@ -309,7 +239,7 @@ SetVDMCurrentDirectories (
  * @unimplemented
  */
 DWORD
-STDCALL
+WINAPI
 TrimVirtualBuffer (
     DWORD   Unknown0
     )
@@ -323,7 +253,7 @@ TrimVirtualBuffer (
  * @unimplemented
  */
 DWORD
-STDCALL
+WINAPI
 VDMConsoleOperation (
     DWORD   Unknown0,
     DWORD   Unknown1
@@ -338,7 +268,7 @@ VDMConsoleOperation (
  * @unimplemented
  */
 DWORD
-STDCALL
+WINAPI
 VDMOperationStarted (
     DWORD   Unknown0
     )
@@ -351,7 +281,7 @@ VDMOperationStarted (
  * @unimplemented
  */
 DWORD
-STDCALL
+WINAPI
 VirtualBufferExceptionHandler (
     DWORD   Unknown0,
     DWORD   Unknown1,
@@ -363,53 +293,36 @@ VirtualBufferExceptionHandler (
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL
-STDCALL
-AllocateUserPhysicalPages(
-    HANDLE hProcess,
-    PULONG_PTR NumberOfPages,
-    PULONG_PTR UserPfnArray
-    )
+WINAPI
+BindIoCompletionCallback(HANDLE FileHandle,
+                         LPOVERLAPPED_COMPLETION_ROUTINE Function,
+                         ULONG Flags)
 {
-    STUB;
-    return 0;
-}
+    NTSTATUS Status = 0;
 
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-BindIoCompletionCallback (
-    HANDLE FileHandle,
-    LPOVERLAPPED_COMPLETION_ROUTINE Function,
-    ULONG Flags
-    )
-{
-    STUB;
-    return 0;
-}
+    DPRINT("(%p, %p, %d)\n", FileHandle, Function, Flags);
 
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-CancelDeviceWakeupRequest(
-    HANDLE hDevice
-    )
-{
-    STUB;
-    return 0;
+    Status = RtlSetIoCompletionCallback(FileHandle,
+                                        (PIO_APC_ROUTINE)Function,
+                                        Flags);
+
+    if (!NT_SUCCESS(Status))
+    {
+        SetLastError(RtlNtStatusToDosError(Status));
+        return FALSE;
+    }
+
+    return TRUE;
 }
 
 /*
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 CreateJobSet (
     ULONG NumJob,
     PJOB_SET_ARRAY UserJobSet,
@@ -423,7 +336,7 @@ CreateJobSet (
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 FindVolumeMountPointClose(
     HANDLE hFindVolumeMountPoint
     )
@@ -436,37 +349,7 @@ FindVolumeMountPointClose(
  * @unimplemented
  */
 BOOL
-STDCALL
-FreeUserPhysicalPages(
-    HANDLE hProcess,
-    PULONG_PTR NumberOfPages,
-    PULONG_PTR PageArray
-    )
-{
-    STUB;
-    return 0;
-}
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-GetDevicePowerState(
-    HANDLE hDevice,
-    BOOL *pfOn
-    )
-{
-    STUB;
-    return 0;
-}
-
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
+WINAPI
 GetNumaHighestNodeNumber(
     PULONG HighestNodeNumber
     )
@@ -479,7 +362,7 @@ GetNumaHighestNodeNumber(
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 GetNumaNodeProcessorMask(
     UCHAR Node,
     PULONGLONG ProcessorMask
@@ -493,7 +376,7 @@ GetNumaNodeProcessorMask(
  * @unimplemented
  */
 BOOL
-STDCALL
+WINAPI
 GetNumaProcessorNode(
     UCHAR Processor,
     PUCHAR NodeNumber
@@ -503,51 +386,109 @@ GetNumaProcessorNode(
     return 0;
 }
 
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+ReadFileScatter(HANDLE hFile,
+                FILE_SEGMENT_ELEMENT aSegmentArray[],
+                DWORD nNumberOfBytesToRead,
+                LPDWORD lpReserved,
+                LPOVERLAPPED lpOverlapped)
+{
+    PIO_STATUS_BLOCK pIOStatus;
+    LARGE_INTEGER Offset;
+    NTSTATUS Status;
+
+    DPRINT("(%p %p %u %p)\n", hFile, aSegmentArray, nNumberOfBytesToRead, lpOverlapped);
+
+    Offset.LowPart  = lpOverlapped->Offset;
+    Offset.HighPart = lpOverlapped->OffsetHigh;
+    pIOStatus = (PIO_STATUS_BLOCK) lpOverlapped;
+    pIOStatus->Status = STATUS_PENDING;
+    pIOStatus->Information = 0;
+
+    Status = NtReadFileScatter(hFile,
+                               NULL,
+                               NULL,
+                               NULL,
+                               pIOStatus,
+                               aSegmentArray,
+                               nNumberOfBytesToRead,
+                               &Offset,
+                               NULL);
+
+    if (!NT_SUCCESS(Status))
+    {
+        SetLastError(RtlNtStatusToDosError(Status));
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
 /*
  * @unimplemented
  */
-UINT
-STDCALL
-GetWriteWatch(
-    DWORD  dwFlags,
-    PVOID  lpBaseAddress,
-    SIZE_T dwRegionSize,
-    PVOID *lpAddresses,
-    PULONG_PTR lpdwCount,
-    PULONG lpdwGranularity
+VOID
+WINAPI
+RestoreLastError(
+    DWORD dwErrCode
     )
 {
     STUB;
-    return 0;
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL
-STDCALL
-HeapQueryInformation (
-    HANDLE HeapHandle,
-    HEAP_INFORMATION_CLASS HeapInformationClass,
-    PVOID HeapInformation OPTIONAL,
-    SIZE_T HeapInformationLength OPTIONAL,
-    PSIZE_T ReturnLength OPTIONAL
-    )
-{
-    STUB;
-    return 0;
+WINAPI
+WriteFileGather(HANDLE hFile,
+                FILE_SEGMENT_ELEMENT aSegmentArray[],
+                DWORD nNumberOfBytesToWrite,
+                LPDWORD lpReserved,
+                LPOVERLAPPED lpOverlapped)
+{
+    PIO_STATUS_BLOCK IOStatus;
+    LARGE_INTEGER Offset;
+    NTSTATUS Status;
+
+    DPRINT("%p %p %u %p\n", hFile, aSegmentArray, nNumberOfBytesToWrite, lpOverlapped);
+
+    Offset.LowPart = lpOverlapped->Offset;
+    Offset.HighPart = lpOverlapped->OffsetHigh;
+    IOStatus = (PIO_STATUS_BLOCK) lpOverlapped;
+    IOStatus->Status = STATUS_PENDING;
+    IOStatus->Information = 0;
+
+    Status = NtWriteFileGather(hFile,
+                               NULL,
+                               NULL,
+                               NULL,
+                               IOStatus,
+                               aSegmentArray,
+                               nNumberOfBytesToWrite,
+                               &Offset,
+                               NULL);
+
+    if (!NT_SUCCESS(Status))
+    {
+        SetLastError(RtlNtStatusToDosError(Status));
+        return FALSE;
+    }
+
+    return TRUE;
 }
 
 /*
  * @unimplemented
  */
 BOOL
-STDCALL
-HeapSetInformation (
-    HANDLE HeapHandle,
-    HEAP_INFORMATION_CLASS HeapInformationClass,
-    PVOID HeapInformation OPTIONAL,
-    SIZE_T HeapInformationLength OPTIONAL
+WINAPI
+DeleteVolumeMountPointW(
+    LPCWSTR lpszVolumeMountPoint
     )
 {
     STUB;
@@ -557,10 +498,12 @@ HeapSetInformation (
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-IsSystemResumeAutomatic(
-    VOID
+HANDLE
+WINAPI
+FindFirstVolumeMountPointW(
+    LPCWSTR lpszRootPathName,
+    LPWSTR lpszVolumeMountPoint,
+    DWORD cchBufferLength
     )
 {
     STUB;
@@ -568,29 +511,51 @@ IsSystemResumeAutomatic(
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL
-STDCALL
-IsWow64Process(
-    HANDLE hProcess,
-    PBOOL Wow64Process
+WINAPI
+FindNextVolumeW(
+       HANDLE handle,
+       LPWSTR volume,
+       DWORD len
     )
 {
-    STUB;
-    *Wow64Process = FALSE;
-    return TRUE;
+    MOUNTMGR_MOUNT_POINTS *data = handle;
+
+    while (data->Size < data->NumberOfMountPoints)
+    {
+        static const WCHAR volumeW[] = {'\\','?','?','\\','V','o','l','u','m','e','{',};
+        WCHAR *link = (WCHAR *)((char *)data + data->MountPoints[data->Size].SymbolicLinkNameOffset);
+        DWORD size = data->MountPoints[data->Size].SymbolicLinkNameLength;
+        data->Size++;
+        /* skip non-volumes */
+        if (size < sizeof(volumeW) || memcmp( link, volumeW, sizeof(volumeW) )) continue;
+        if (size + sizeof(WCHAR) >= len * sizeof(WCHAR))
+        {
+            SetLastError( ERROR_FILENAME_EXCED_RANGE );
+            return FALSE;
+        }
+        memcpy( volume, link, size );
+        volume[1] = '\\';  /* map \??\ to \\?\ */
+        volume[size / sizeof(WCHAR)] = '\\';  /* Windows appends a backslash */
+        volume[size / sizeof(WCHAR) + 1] = 0;
+        DPRINT( "returning entry %u %s\n", data->Size - 1, volume );
+        return TRUE;
+    }
+    SetLastError( ERROR_NO_MORE_FILES );
+    return FALSE;
 }
 
 /*
  * @unimplemented
  */
 BOOL
-STDCALL
-MapUserPhysicalPages(
-    PVOID VirtualAddress,
-    ULONG_PTR NumberOfPages,
-    PULONG_PTR PageArray  OPTIONAL
+WINAPI
+FindNextVolumeMountPointW(
+    HANDLE hFindVolumeMountPoint,
+    LPWSTR lpszVolumeMountPoint,
+    DWORD cchBufferLength
     )
 {
     STUB;
@@ -600,12 +565,13 @@ MapUserPhysicalPages(
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-MapUserPhysicalPagesScatter(
-    PVOID *VirtualAddresses,
-    ULONG_PTR NumberOfPages,
-    PULONG_PTR PageArray  OPTIONAL
+DWORD
+WINAPI
+GetFirmwareEnvironmentVariableW(
+    LPCWSTR lpName,
+    LPCWSTR lpGuid,
+    PVOID   pBuffer,
+    DWORD    nSize
     )
 {
     STUB;
@@ -616,13 +582,12 @@ MapUserPhysicalPagesScatter(
  * @unimplemented
  */
 BOOL
-STDCALL
-ReadFileScatter(
-    HANDLE hFile,
-    FILE_SEGMENT_ELEMENT aSegmentArray[],
-    DWORD nNumberOfBytesToRead,
-    LPDWORD lpReserved,
-    LPOVERLAPPED lpOverlapped
+WINAPI
+GetVolumePathNamesForVolumeNameW(
+    LPCWSTR lpszVolumeName,
+    LPWSTR lpszVolumePathNames,
+    DWORD cchBufferLength,
+    PDWORD lpcchReturnLength
     )
 {
     STUB;
@@ -632,10 +597,13 @@ ReadFileScatter(
 /*
  * @unimplemented
  */
-ULONG
-STDCALL
-RemoveVectoredExceptionHandler(
-    PVOID VectoredHandlerHandle
+BOOL
+WINAPI
+SetFirmwareEnvironmentVariableW(
+    LPCWSTR lpName,
+    LPCWSTR lpGuid,
+    PVOID    pValue,
+    DWORD    nSize
     )
 {
     STUB;
@@ -646,9 +614,10 @@ RemoveVectoredExceptionHandler(
  * @unimplemented
  */
 BOOL
-STDCALL
-RequestDeviceWakeup(
-    HANDLE hDevice
+WINAPI
+SetVolumeMountPointW(
+    LPCWSTR lpszVolumeMountPoint,
+    LPCWSTR lpszVolumeName
     )
 {
     STUB;
@@ -659,9 +628,9 @@ RequestDeviceWakeup(
  * @unimplemented
  */
 BOOL
-STDCALL
-RequestWakeupLatency(
-    LATENCY_TIME latency
+WINAPI
+DeleteVolumeMountPointA(
+    LPCSTR lpszVolumeMountPoint
     )
 {
     STUB;
@@ -671,11 +640,12 @@ RequestWakeupLatency(
 /*
  * @unimplemented
  */
-UINT
-STDCALL
-ResetWriteWatch(
-    LPVOID lpBaseAddress,
-    SIZE_T dwRegionSize
+HANDLE
+WINAPI
+FindFirstVolumeMountPointA(
+    LPCSTR lpszRootPathName,
+    LPSTR lpszVolumeMountPoint,
+    DWORD cchBufferLength
     )
 {
     STUB;
@@ -683,25 +653,41 @@ ResetWriteWatch(
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
-VOID
-STDCALL
-RestoreLastError(
-    DWORD dwErrCode
-    )
+BOOL
+WINAPI
+FindNextVolumeA(HANDLE handle,
+                LPSTR volume,
+                DWORD len)
 {
-    STUB;
+    WCHAR *buffer = RtlAllocateHeap(RtlGetProcessHeap(), 0, len * sizeof(WCHAR));
+    BOOL ret;
+
+    if (!buffer)
+    {
+        SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+        return FALSE;
+    }
+
+    if ((ret = FindNextVolumeW( handle, buffer, len )))
+    {
+        if (!WideCharToMultiByte( CP_ACP, 0, buffer, -1, volume, len, NULL, NULL )) ret = FALSE;
+    }
+
+    HeapFree( GetProcessHeap(), 0, buffer );
+    return ret;
 }
 
 /*
  * @unimplemented
  */
 BOOL
-STDCALL
-SetMessageWaitingIndicator(
-    HANDLE hMsgIndicator,
-    ULONG ulMsgCount
+WINAPI
+FindNextVolumeMountPointA(
+    HANDLE hFindVolumeMountPoint,
+    LPSTR lpszVolumeMountPoint,
+    DWORD cchBufferLength
     )
 {
     STUB;
@@ -711,34 +697,29 @@ SetMessageWaitingIndicator(
 /*
  * @unimplemented
  */
-EXECUTION_STATE
-STDCALL
-SetThreadExecutionState(
-    EXECUTION_STATE esFlags
-    )
-{
-    static EXECUTION_STATE current =
-        ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED | ES_USER_PRESENT;
-    EXECUTION_STATE old = current;
-
-    DPRINT1("(0x%x): stub, harmless.\n", esFlags);
-
-    if (!(current & ES_CONTINUOUS) || (esFlags & ES_CONTINUOUS))
-        current = esFlags;
-    return old;
+DWORD
+WINAPI
+GetFirmwareEnvironmentVariableA(
+    LPCSTR lpName,
+    LPCSTR lpGuid,
+    PVOID   pBuffer,
+    DWORD    nSize
+    )
+{
+    STUB;
+    return 0;
 }
 
 /*
  * @unimplemented
  */
 BOOL
-STDCALL
-WriteFileGather(
-    HANDLE hFile,
-    FILE_SEGMENT_ELEMENT aSegmentArray[],
-    DWORD nNumberOfBytesToWrite,
-    LPDWORD lpReserved,
-    LPOVERLAPPED lpOverlapped
+WINAPI
+GetVolumePathNamesForVolumeNameA(
+    LPCSTR lpszVolumeName,
+    LPSTR lpszVolumePathNames,
+    DWORD cchBufferLength,
+    PDWORD lpcchReturnLength
     )
 {
     STUB;
@@ -749,9 +730,12 @@ WriteFileGather(
  * @unimplemented
  */
 BOOL
-STDCALL
-DeleteVolumeMountPointW(
-    LPCWSTR lpszVolumeMountPoint
+WINAPI
+SetFirmwareEnvironmentVariableA(
+    LPCSTR lpName,
+    LPCSTR lpGuid,
+    PVOID    pValue,
+    DWORD    nSize
     )
 {
     STUB;
@@ -762,97 +746,38 @@ DeleteVolumeMountPointW(
  * @unimplemented
  */
 BOOL
-STDCALL
-DnsHostnameToComputerNameW (
-       LPCWSTR hostname,
-    LPWSTR computername,
-       LPDWORD size
+WINAPI
+SetVolumeMountPointA(
+    LPCSTR lpszVolumeMountPoint,
+    LPCSTR lpszVolumeName
     )
 {
-    DWORD len;
-
-    DPRINT("(%s, %p, %p): stub\n", hostname, computername, size);
-
-    if (!hostname || !size) return FALSE;
-    len = lstrlenW(hostname);
-
-    if (len > MAX_COMPUTERNAME_LENGTH)
-        len = MAX_COMPUTERNAME_LENGTH;
-
-    if (*size < len)
-    {
-        *size = len;
-        return FALSE;
-    }
-    if (!computername) return FALSE;
-
-    memcpy( computername, hostname, len * sizeof(WCHAR) );
-    computername[len + 1] = 0;
-    return TRUE;
+    STUB;
+    return 0;
 }
 
 /*
  * @unimplemented
  */
-HANDLE
-STDCALL
-FindFirstVolumeMountPointW(
-    LPCWSTR lpszRootPathName,
-    LPWSTR lpszVolumeMountPoint,
-    DWORD cchBufferLength
-    )
+BOOL WINAPI GetConsoleKeyboardLayoutNameA(LPSTR name)
 {
     STUB;
     return 0;
 }
 
 /*
- * @implemented
+ * @unimplemented
  */
-BOOL
-STDCALL
-FindNextVolumeW(
-       HANDLE handle,
-       LPWSTR volume,
-       DWORD len
-    )
+BOOL WINAPI GetConsoleKeyboardLayoutNameW(LPWSTR name)
 {
-    MOUNTMGR_MOUNT_POINTS *data = handle;
-
-    while (data->Size < data->NumberOfMountPoints)
-    {
-        static const WCHAR volumeW[] = {'\\','?','?','\\','V','o','l','u','m','e','{',};
-        WCHAR *link = (WCHAR *)((char *)data + data->MountPoints[data->Size].SymbolicLinkNameOffset);
-        DWORD size = data->MountPoints[data->Size].SymbolicLinkNameLength;
-        data->Size++;
-        /* skip non-volumes */
-        if (size < sizeof(volumeW) || memcmp( link, volumeW, sizeof(volumeW) )) continue;
-        if (size + sizeof(WCHAR) >= len * sizeof(WCHAR))
-        {
-            SetLastError( ERROR_FILENAME_EXCED_RANGE );
-            return FALSE;
-        }
-        memcpy( volume, link, size );
-        volume[1] = '\\';  /* map \??\ to \\?\ */
-        volume[size / sizeof(WCHAR)] = '\\';  /* Windows appends a backslash */
-        volume[size / sizeof(WCHAR) + 1] = 0;
-        DPRINT( "returning entry %u %s\n", data->Size - 1, volume );
-        return TRUE;
-    }
-    SetLastError( ERROR_NO_MORE_FILES );
-    return FALSE;
+    STUB;
+    return 0;
 }
 
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-FindNextVolumeMountPointW(
-    HANDLE hFindVolumeMountPoint,
-    LPWSTR lpszVolumeMountPoint,
-    DWORD cchBufferLength
-    )
+DWORD WINAPI GetHandleContext(HANDLE hnd)
 {
     STUB;
     return 0;
@@ -861,46 +786,28 @@ FindNextVolumeMountPointW(
 /*
  * @unimplemented
  */
-DWORD
-STDCALL
-GetFirmwareEnvironmentVariableW(
-    LPCWSTR lpName,
-    LPCWSTR lpGuid,
-    PVOID   pBuffer,
-    DWORD    nSize
-    )
+HANDLE WINAPI CreateSocketHandle(VOID)
 {
     STUB;
-    return 0;
+    return INVALID_HANDLE_VALUE;
 }
 
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-GetVolumePathNameW(
-    LPCWSTR lpszFileName,
-    LPWSTR lpszVolumePathName,
-    DWORD cchBufferLength
-    )
+BOOL WINAPI SetHandleContext(HANDLE hnd,DWORD context)
 {
     STUB;
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return 0;
 }
 
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-GetVolumePathNamesForVolumeNameW(
-    LPCWSTR lpszVolumeName,
-    LPWSTR lpszVolumePathNames,
-    DWORD cchBufferLength,
-    PDWORD lpcchReturnLength
-    )
+BOOL WINAPI UTRegister( HMODULE hModule, LPSTR lpsz16BITDLL,
+                        LPSTR lpszInitName, LPSTR lpszProcName,
+                        FARPROC *ppfn32Thunk, FARPROC pfnUT32CallBack,
+                        LPVOID lpBuff )
 {
     STUB;
     return 0;
@@ -909,46 +816,24 @@ GetVolumePathNamesForVolumeNameW(
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-ReplaceFileW(
-    LPCWSTR lpReplacedFileName,
-    LPCWSTR lpReplacementFileName,
-    LPCWSTR lpBackupFileName,
-    DWORD   dwReplaceFlags,
-    LPVOID  lpExclude,
-    LPVOID  lpReserved
-    )
+VOID WINAPI UTUnRegister( HMODULE hModule )
 {
     STUB;
-    return 0;
 }
 
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-SetFirmwareEnvironmentVariableW(
-    LPCWSTR lpName,
-    LPCWSTR lpGuid,
-    PVOID    pValue,
-    DWORD    nSize
-    )
+FARPROC WINAPI DelayLoadFailureHook(LPCSTR pszDllName, LPCSTR pszProcName)
 {
     STUB;
-    return 0;
+    return NULL;
 }
 
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-SetVolumeMountPointW(
-    LPCWSTR lpszVolumeMountPoint,
-    LPCWSTR lpszVolumeName
-    )
+NTSTATUS WINAPI CreateNlsSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor,ULONG Size,ULONG AccessMask)
 {
     STUB;
     return 0;
@@ -957,11 +842,7 @@ SetVolumeMountPointW(
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-DeleteVolumeMountPointA(
-    LPCSTR lpszVolumeMountPoint
-    )
+BOOL WINAPI IsValidUILanguage(LANGID langid)
 {
     STUB;
     return 0;
@@ -970,28 +851,15 @@ DeleteVolumeMountPointA(
 /*
  * @unimplemented
  */
-BOOL
-STDCALL
-DnsHostnameToComputerNameA (
-    LPCSTR Hostname,
-    LPSTR ComputerName,
-    LPDWORD nSize
-    )
+VOID WINAPI NlsConvertIntegerToString(ULONG Value,ULONG Base,ULONG strsize, LPWSTR str, ULONG strsize2)
 {
     STUB;
-    return 0;
 }
 
 /*
  * @unimplemented
  */
-HANDLE
-STDCALL
-FindFirstVolumeMountPointA(
-    LPCSTR lpszRootPathName,
-    LPSTR lpszVolumeMountPoint,
-    DWORD cchBufferLength
-    )
+UINT WINAPI SetCPGlobal(UINT CodePage)
 {
     STUB;
     return 0;
@@ -1001,327 +869,304 @@ FindFirstVolumeMountPointA(
  * @unimplemented
  */
 BOOL
-STDCALL
-FindNextVolumeA(
-       HANDLE handle,
-       LPSTR volume,
-       DWORD len
-    )
+WINAPI
+SetClientTimeZoneInformation(
+    CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation)
 {
-    WCHAR *buffer = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
-    BOOL ret;
-
-    if ((ret = FindNextVolumeW( handle, buffer, len )))
-    {
-        if (!WideCharToMultiByte( CP_ACP, 0, buffer, -1, volume, len, NULL, NULL )) ret = FALSE;
-    }
-    HeapFree( GetProcessHeap(), 0, buffer );
-    return ret;
+    STUB;
+    return 0;
 }
 
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-FindNextVolumeMountPointA(
-    HANDLE hFindVolumeMountPoint,
-    LPSTR lpszVolumeMountPoint,
-    DWORD cchBufferLength
-    )
+ULONG
+WINAPI
+NlsGetCacheUpdateCount(VOID)
 {
     STUB;
     return 0;
 }
 
-/*
- * @unimplemented
- */
-DWORD
-STDCALL
-GetFirmwareEnvironmentVariableA(
-    LPCSTR lpName,
-    LPCSTR lpGuid,
-    PVOID   pBuffer,
-    DWORD    nSize
-    )
+BOOLEAN
+WINAPI
+Wow64EnableWow64FsRedirection (BOOLEAN Wow64EnableWow64FsRedirection)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
 BOOL
-STDCALL
-GetVolumePathNameA(
-    LPCSTR lpszFileName,
-    LPSTR lpszVolumePathName,
-    DWORD cchBufferLength
-    )
+WINAPI
+Wow64DisableWow64FsRedirection (VOID ** pv)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
 BOOL
-STDCALL
-GetVolumePathNamesForVolumeNameA(
-    LPCSTR lpszVolumeName,
-    LPSTR lpszVolumePathNames,
-    DWORD cchBufferLength,
-    PDWORD lpcchReturnLength
-    )
+WINAPI
+Wow64RevertWow64FsRedirection (VOID * pv)
+{
+    STUB;
+    return FALSE;
+}
+
+UINT
+WINAPI
+EnumSystemFirmwareTables(IN DWORD FirmwareTableProviderSignature,
+                         OUT PVOID pFirmwareTableBuffer,
+                         IN DWORD BufferSize)
 {
     STUB;
     return 0;
 }
 
-/*
- * @unimplemented
- */
 BOOL
-STDCALL
-ReplaceFileA(
-    LPCSTR  lpReplacedFileName,
-    LPCSTR  lpReplacementFileName,
-    LPCSTR  lpBackupFileName,
-    DWORD   dwReplaceFlags,
-    LPVOID  lpExclude,
-    LPVOID  lpReserved
-    )
+WINAPI
+GetSystemFileCacheSize(OUT PSIZE_T lpMinimumFileCacheSize,
+                       OUT PSIZE_T lpMaximumFileCacheSize,
+                       OUT PDWORD lpFlags)
+{
+    STUB;
+    return FALSE;
+}
+
+UINT
+WINAPI
+GetSystemFirmwareTable(IN DWORD FirmwareTableProviderSignature,
+                       IN DWORD FirmwareTableID,
+                       OUT PVOID pFirmwareTableBuffer,
+                       IN DWORD BufferSize)
 {
     STUB;
     return 0;
 }
 
-/*
- * @unimplemented
- */
 BOOL
-STDCALL
-SetFirmwareEnvironmentVariableA(
-    LPCSTR lpName,
-    LPCSTR lpGuid,
-    PVOID    pValue,
-    DWORD    nSize
-    )
+WINAPI
+SetSystemFileCacheSize(IN SIZE_T MinimumFileCacheSize,
+                       IN SIZE_T MaximumFileCacheSize,
+                       IN DWORD Flags)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
 BOOL
-STDCALL
-SetVolumeMountPointA(
-    LPCSTR lpszVolumeMountPoint,
-    LPCSTR lpszVolumeName
-    )
+WINAPI
+SetThreadStackGuarantee(IN OUT PULONG StackSizeInBytes)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
-BOOL STDCALL GetConsoleKeyboardLayoutNameA(LPSTR name)
+HANDLE
+WINAPI
+ReOpenFile(IN HANDLE hOriginalFile,
+           IN DWORD dwDesiredAccess,
+           IN DWORD dwShareMode,
+           IN DWORD dwFlags)
 {
     STUB;
-    return 0;
+    return INVALID_HANDLE_VALUE;
 }
 
-/*
- * @unimplemented
- */
-BOOL STDCALL GetConsoleKeyboardLayoutNameW(LPWSTR name)
+BOOL
+WINAPI
+SetProcessWorkingSetSizeEx(IN HANDLE hProcess,
+                           IN SIZE_T dwMinimumWorkingSetSize,
+                           IN SIZE_T dwMaximumWorkingSetSize,
+                           IN DWORD Flags)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
-DWORD STDCALL GetHandleContext(HANDLE hnd)
+
+BOOL
+WINAPI
+GetProcessWorkingSetSizeEx(IN HANDLE hProcess,
+                           OUT PSIZE_T lpMinimumWorkingSetSize,
+                           OUT PSIZE_T lpMaximumWorkingSetSize,
+                           OUT PDWORD Flags)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
-HANDLE STDCALL CreateSocketHandle(VOID)
+BOOL
+WINAPI
+GetNumaAvailableMemoryNode(IN UCHAR Node,
+                           OUT PULONGLONG AvailableBytes)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
-BOOL STDCALL SetHandleContext(HANDLE hnd,DWORD context)
+BOOL
+WINAPI
+GetNumaAvailableMemory(PVOID lpInfo,
+                       ULONG Length,
+                       PULONG ReturnLength)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
-BOOL STDCALL UTRegister( HMODULE hModule, LPSTR lpsz16BITDLL,
-                        LPSTR lpszInitName, LPSTR lpszProcName,
-                        FARPROC *ppfn32Thunk, FARPROC pfnUT32CallBack,
-                        LPVOID lpBuff )
+BOOL
+WINAPI
+GetNumaProcessorMap(PVOID lpInfo,
+                    ULONG Length,
+                    PULONG ReturnLength)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
-VOID STDCALL UTUnRegister( HMODULE hModule )
+BOOL
+WINAPI
+NlsResetProcessLocale(VOID)
 {
     STUB;
+    return TRUE;
 }
 
-/*
- * @unimplemented
- */
-#if 0
-FARPROC STDCALL DelayLoadFailureHook(unsigned int dliNotify, PDelayLoadInfo pdli)
-#else
-FARPROC STDCALL DelayLoadFailureHook(unsigned int dliNotify, PVOID pdli)
-#endif
+DWORD
+WINAPI
+AddLocalAlternateComputerNameA(LPSTR lpName, PNTSTATUS Status)
 {
     STUB;
     return 0;
 }
 
-/*
- * @unimplemented
- */
-NTSTATUS STDCALL CreateNlsSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor,ULONG Size,ULONG AccessMask)
+DWORD
+WINAPI
+AddLocalAlternateComputerNameW(LPWSTR lpName, PNTSTATUS Status)
 {
     STUB;
     return 0;
 }
 
-/*
- * @unimplemented
- */
-BOOL STDCALL IsValidUILanguage(LANGID langid)
+NTSTATUS
+WINAPI
+BaseCleanupAppcompatCache(VOID)
 {
     STUB;
-    return 0;
+    return STATUS_NOT_IMPLEMENTED;
 }
 
-/*
- * @unimplemented
- */
-VOID STDCALL NlsConvertIntegerToString(ULONG Value,ULONG Base,ULONG strsize, LPWSTR str, ULONG strsize2)
+NTSTATUS
+WINAPI
+BaseCleanupAppcompatCacheSupport(PVOID pUnknown)
 {
     STUB;
+    return STATUS_NOT_IMPLEMENTED;
 }
 
-/*
- * @unimplemented
- */
-UINT STDCALL SetCPGlobal(UINT CodePage)
+BOOL
+WINAPI
+BaseInitAppcompatCache(VOID)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-/*
- * @unimplemented
- */
 BOOL
-STDCALL
-SetClientTimeZoneInformation(
-    CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation)
+WINAPI
+BaseInitAppcompatCacheSupport(VOID)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
-ULONG
+VOID
 WINAPI
-NlsGetCacheUpdateCount(VOID)
+CreateProcessInternalWSecure(VOID)
 {
     STUB;
-    return 0;
+}
+
+DWORD
+WINAPI
+EnumerateLocalComputerNamesA(PVOID pUnknown, DWORD Size, LPSTR lpBuffer, LPDWORD lpnSize)
+{
+    STUB;
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+DWORD
+WINAPI
+EnumerateLocalComputerNamesW(PVOID pUnknown, DWORD Size, LPWSTR lpBuffer, LPDWORD lpnSize)
+{
+    STUB;
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+PVOID
+WINAPI
+GetComPlusPackageInstallStatus(VOID)
+{
+    STUB;
+    return NULL;
 }
 
 BOOL
-STDCALL
-Wow64EnableWow64FsRedirection (BOOL Wow64EnableWow64FsRedirection)
+WINAPI
+GetConsoleCharType(HANDLE hConsole, COORD Coord, PDWORD Type)
 {
     STUB;
     return FALSE;
 }
 
 BOOL
-STDCALL
-Wow64DisableWow64FsRedirection (VOID ** pv)
+WINAPI
+GetConsoleCursorMode(HANDLE hConsole, PBOOL pUnknown1, PBOOL pUnknown2)
 {
     STUB;
     return FALSE;
 }
 
 BOOL
-STDCALL
-Wow64RevertWow64FsRedirection (VOID * pv)
+WINAPI
+GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode)
 {
     STUB;
     return FALSE;
 }
 
-UINT
+VOID
 WINAPI
-EnumSystemFirmwareTables(IN DWORD FirmwareTableProviderSignature,
-                         OUT PVOID pFirmwareTableBuffer,
-                         IN DWORD BufferSize)
+GetDefaultSortkeySize(LPVOID lpUnknown)
 {
     STUB;
-    return 0;
+    lpUnknown = NULL;
+}
+
+VOID
+WINAPI
+GetLinguistLangSize(LPVOID lpUnknown)
+{
+    STUB;
+    lpUnknown = NULL;
 }
 
 BOOL
 WINAPI
-GetSystemFileCacheSize(OUT PSIZE_T lpMinimumFileCacheSize,
-                       OUT PSIZE_T lpMaximumFileCacheSize,
-                       OUT PDWORD lpFlags)
+OpenDataFile(HANDLE hFile, DWORD dwUnused)
 {
     STUB;
     return FALSE;
 }
 
-UINT
+BOOL
 WINAPI
-GetSystemFirmwareTable(IN DWORD FirmwareTableProviderSignature,
-                       IN DWORD FirmwareTableID,
-                       OUT PVOID pFirmwareTableBuffer,
-                       IN DWORD BufferSize)
+PrivMoveFileIdentityW(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3)
 {
     STUB;
-    return 0;
+    return FALSE;
 }
 
 BOOL
 WINAPI
-SetSystemFileCacheSize(IN SIZE_T MinimumFileCacheSize,
-                       IN SIZE_T MaximumFileCacheSize,
-                       IN DWORD Flags)
+ReadConsoleInputExA(HANDLE hConsole, LPVOID lpBuffer, DWORD dwLen, LPDWORD Unknown1, DWORD Unknown2)
 {
     STUB;
     return FALSE;
@@ -1329,41 +1174,47 @@ SetSystemFileCacheSize(IN SIZE_T MinimumFileCacheSize,
 
 BOOL
 WINAPI
-SetThreadStackGuarantee(IN OUT PULONG StackSizeInBytes)
+ReadConsoleInputExW(HANDLE hConsole, LPVOID lpBuffer, DWORD dwLen, LPDWORD Unknown1, DWORD Unknown2)
 {
     STUB;
     return FALSE;
 }
 
-HANDLE
+BOOL
 WINAPI
-ReOpenFile(IN HANDLE hOriginalFile,
-           IN DWORD dwDesiredAccess,
-           IN DWORD dwShareMode,
-           IN DWORD dwFlags)
+RegisterConsoleIME(HWND hWnd, LPDWORD ThreadId)
 {
     STUB;
-    return INVALID_HANDLE_VALUE;
+    return FALSE;
 }
 
 BOOL
 WINAPI
-SetProcessWorkingSetSizeEx(IN HANDLE hProcess,
-                           IN SIZE_T dwMinimumWorkingSetSize,
-                           IN SIZE_T dwMaximumWorkingSetSize,
-                           IN DWORD Flags)
+RegisterConsoleOS2(BOOL bUnknown)
 {
     STUB;
     return FALSE;
 }
 
+DWORD
+WINAPI
+RemoveLocalAlternateComputerNameA(LPSTR lpName, DWORD Unknown)
+{
+    STUB;
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+DWORD
+WINAPI
+RemoveLocalAlternateComputerNameW(LPWSTR lpName, DWORD Unknown)
+{
+    STUB;
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
 
 BOOL
 WINAPI
-GetProcessWorkingSetSizeEx(IN HANDLE hProcess,
-                           OUT PSIZE_T lpMinimumWorkingSetSize,
-                           OUT PSIZE_T lpMaximumWorkingSetSize,
-                           OUT PDWORD Flags)
+SetComPlusPackageInstallStatus(LPVOID lpInfo)
 {
     STUB;
     return FALSE;
@@ -1371,8 +1222,7 @@ GetProcessWorkingSetSizeEx(IN HANDLE hProcess,
 
 BOOL
 WINAPI
-GetLogicalProcessorInformation(OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer,
-                               IN OUT PDWORD ReturnLength)
+SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2)
 {
     STUB;
     return FALSE;
@@ -1380,8 +1230,31 @@ GetLogicalProcessorInformation(OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer,
 
 BOOL
 WINAPI
-GetNumaAvailableMemoryNode(IN UCHAR Node,
-                           OUT PULONGLONG AvailableBytes)
+SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
+{
+    STUB;
+    return FALSE;
+}
+
+BOOL
+WINAPI
+SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode)
+{
+    STUB;
+    return FALSE;
+}
+
+BOOL
+WINAPI
+SetConsoleOS2OemFormat(BOOL bUnknown)
+{
+    STUB;
+    return FALSE;
+}
+
+BOOL
+WINAPI
+UnregisterConsoleIME(VOID)
 {
     STUB;
     return FALSE;