Ignore:
Timestamp:
Sep 27, 2012, 4:08:58 PM (13 years ago)
Author:
dmik
Message:

kernel32: Fix inverted return values in dummy HMDeviceHandler implementations.

This in particular affected GetFileInformationByHandle and other APIs. Some applications
(like Flash 10.1+) could be completely confused by the fact that the unimplemented API
returns success.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/hmdevice.cpp

    r21302 r22024  
    118118           ulRequestCode));
    119119
    120   return(ERROR_INVALID_FUNCTION);
     120  SetLastError(ERROR_INVALID_FUNCTION);
     121  return FALSE;
    121122}
    122123
     
    146147           lpHMDeviceName, pHMHandleData, srcprocess, pHMSrcHandle, destprocess));
    147148
     149  SetLastError(ERROR_INVALID_FUNCTION);
    148150  return FALSE;
    149151}
     
    178180           pHMHandleDataTemplate));
    179181
    180   return(ERROR_INVALID_FUNCTION);
     182  SetLastError(ERROR_INVALID_FUNCTION);
     183  return NULL;
    181184}
    182185
     
    322325           pHMHandleData));
    323326
     327  SetLastError(ERROR_INVALID_FUNCTION);
    324328  return FILE_TYPE_UNKNOWN;
    325329}
     
    327331
    328332/*****************************************************************************
    329  * Name      : DWORD HMDeviceHandler::GetFileInformationByHandle
     333 * Name      : BOOL HMDeviceHandler::GetFileInformationByHandle
    330334 * Purpose   : determine the handle type
    331335 * Parameters: PHMHANDLEDATA               pHMHandleData
    332336 *             BY_HANDLE_FILE_INFORMATION* pHFI
    333337 * Variables :
    334  * Result    : API returncode
     338 * Result    : Success indicator
    335339 * Remark    :
    336340 * Status    :
     
    339343 *****************************************************************************/
    340344
    341 DWORD HMDeviceHandler::GetFileInformationByHandle(PHMHANDLEDATA               pHMHandleData,
    342                                                       BY_HANDLE_FILE_INFORMATION* pHFI)
     345BOOL HMDeviceHandler::GetFileInformationByHandle(PHMHANDLEDATA               pHMHandleData,
     346                                                 BY_HANDLE_FILE_INFORMATION* pHFI)
    343347{
    344348  dprintf(("KERNEL32: HandleManager::DeviceHandler::GetFileInformationByHandle %s(%08xh,%08xh)\n",
     
    347351           pHFI));
    348352
    349   return(ERROR_INVALID_FUNCTION);
     353  SetLastError(ERROR_INVALID_FUNCTION);
     354  return FALSE;
    350355}
    351356
     
    369374           pHMHandleData));
    370375
    371   return(ERROR_INVALID_FUNCTION);
     376  SetLastError(ERROR_INVALID_FUNCTION);
     377  return FALSE;
    372378}
    373379
     
    400406           pFT3));
    401407
    402   return(ERROR_INVALID_FUNCTION);
     408  SetLastError(ERROR_INVALID_FUNCTION);
     409  return FALSE;
    403410}
    404411
     
    424431{
    425432  DebugInt3();
    426   return(ERROR_INVALID_FUNCTION);
     433  SetLastError(ERROR_INVALID_FUNCTION);
     434  return FALSE;
    427435}
    428436
     
    449457           pSize));
    450458
    451   return -1; //INVALID_SET_FILE_POINTER
     459  SetLastError(ERROR_INVALID_FUNCTION);
     460  return INVALID_SET_FILE_POINTER;
    452461}
    453462
     
    480489           dwMoveMethod));
    481490
    482   return(ERROR_INVALID_FUNCTION);
     491  SetLastError(ERROR_INVALID_FUNCTION);
     492  return INVALID_SET_FILE_POINTER;
    483493}
    484494
     
    645655 *****************************************************************************/
    646656
    647 DWORD HMDeviceHandler::UnlockFileEx(PHMHANDLEDATA pHMHandleData,
     657BOOL HMDeviceHandler::UnlockFileEx(PHMHANDLEDATA pHMHandleData,
    648658                                        DWORD         dwReserved,
    649659                                        DWORD         nNumberOfBytesToLockLow,
     
    659669           lpOverlapped));
    660670
    661   return(ERROR_INVALID_FUNCTION);
     671  SetLastError(ERROR_INVALID_FUNCTION);
     672  return FALSE;
    662673}
    663674
     
    689700           lpszSemaphoreName));
    690701
    691   return (ERROR_INVALID_FUNCTION);
     702  SetLastError(ERROR_INVALID_FUNCTION);
     703  return NULL;
    692704}
    693705
     
    714726           lpszSemaphoreName));
    715727
    716  return (ERROR_INVALID_FUNCTION);
     728  SetLastError(ERROR_INVALID_FUNCTION);
     729  return NULL;
    717730}
    718731
     
    739752           lpPreviousCount));
    740753
    741   return (ERROR_INVALID_FUNCTION);
     754  SetLastError(ERROR_INVALID_FUNCTION);
     755  return FALSE;
    742756}
    743757
     
    767781           lpszMutexName));
    768782
    769   return (ERROR_INVALID_FUNCTION);
     783  SetLastError(ERROR_INVALID_FUNCTION);
     784  return NULL;
    770785}
    771786
     
    792807           lpszMutexName));
    793808
    794   return (ERROR_INVALID_FUNCTION);
     809  SetLastError(ERROR_INVALID_FUNCTION);
     810  return NULL;
    795811}
    796812
     
    813829           pHMHandleData->hHMHandle));
    814830
    815   return (ERROR_INVALID_FUNCTION);
     831  SetLastError(ERROR_INVALID_FUNCTION);
     832  return FALSE;
    816833}
    817834
     
    842859           lpszEventName));
    843860
    844   return (ERROR_INVALID_FUNCTION);
     861  SetLastError(ERROR_INVALID_FUNCTION);
     862  return NULL;
    845863}
    846864
     
    867885           lpszEventName));
    868886
    869   return (ERROR_INVALID_FUNCTION);
     887  SetLastError(ERROR_INVALID_FUNCTION);
     888  return NULL;
    870889}
    871890
     
    888907           pHMHandleData->hHMHandle));
    889908
    890   return (ERROR_INVALID_FUNCTION);
     909  SetLastError(ERROR_INVALID_FUNCTION);
     910  return FALSE;
    891911}
    892912
     
    930950           pHMHandleData->hHMHandle));
    931951
    932   return (ERROR_INVALID_FUNCTION);
     952  SetLastError(ERROR_INVALID_FUNCTION);
     953  return FALSE;
    933954}
    934955
     
    953974           pHMHandleData->hHMHandle));
    954975
    955   return(ERROR_INVALID_FUNCTION);
     976  SetLastError(ERROR_INVALID_FUNCTION);
     977  return FALSE;
    956978}
    957979
     
    9831005           arg4));
    9841006
    985   return(ERROR_INVALID_FUNCTION);
     1007  SetLastError(ERROR_INVALID_FUNCTION);
     1008  return FALSE;
    9861009}
    9871010
     
    10201043           lpName));
    10211044
    1022   return(ERROR_INVALID_FUNCTION);
     1045  SetLastError(ERROR_INVALID_FUNCTION);
     1046  return NULL;
    10231047}
    10241048
     
    10501074           lpName));
    10511075
    1052   return(ERROR_INVALID_FUNCTION);
     1076  SetLastError(ERROR_INVALID_FUNCTION);
     1077  return NULL;
    10531078}
    10541079
     
    10831108           dwNumberOfBytesToMap, lpBaseAddress));
    10841109
    1085   return(NULL);
     1110  SetLastError(ERROR_INVALID_FUNCTION);
     1111  return NULL;
    10861112}
    10871113
     
    11091135           lpOutBuffer, nOutBufferSize));
    11101136
    1111   return(FALSE);
     1137  SetLastError(ERROR_INVALID_FUNCTION);
     1138  return FALSE;
    11121139}
    11131140
     
    13751402           ThreadHandle));
    13761403
    1377   return ERROR_INVALID_HANDLE;
     1404  SetLastError(ERROR_INVALID_FUNCTION);
     1405  return NULL;
    13781406}
    13791407
     
    13971425           ProcessHandle));
    13981426
    1399   return ERROR_INVALID_HANDLE;
     1427  SetLastError(ERROR_INVALID_FUNCTION);
     1428  return NULL;
    14001429}
    14011430/*****************************************************************************
     
    14211450           pHMHandleData->hHMHandle));
    14221451
    1423   return ERROR_INVALID_HANDLE;
     1452  SetLastError(ERROR_INVALID_FUNCTION);
     1453  return NULL;
    14241454}
    14251455/*****************************************************************************
     
    14381468           pHMHandleData->hHMHandle));
    14391469
     1470  SetLastError(ERROR_INVALID_FUNCTION);
    14401471  return THREAD_PRIORITY_ERROR_RETURN;
    14411472}
     
    14551486           pHMHandleData->hHMHandle));
    14561487
     1488  SetLastError(ERROR_INVALID_FUNCTION);
    14571489  return -1;
    14581490}
     
    14721504           pHMHandleData->hHMHandle));
    14731505
     1506  SetLastError(ERROR_INVALID_FUNCTION);
    14741507  return FALSE;
    14751508}
     
    14891522           pHMHandleData->hHMHandle));
    14901523
     1524  SetLastError(ERROR_INVALID_FUNCTION);
    14911525  return FALSE;
    14921526}
     
    15061540           pHMHandleData->hHMHandle));
    15071541
     1542  SetLastError(ERROR_INVALID_FUNCTION);
    15081543  return FALSE;
    15091544}
     
    15321567           lpUserTime));
    15331568
     1569  SetLastError(ERROR_INVALID_FUNCTION);
    15341570  return FALSE;
    15351571}
     
    15501586           pHMHandleData->hHMHandle));
    15511587
     1588  SetLastError(ERROR_INVALID_FUNCTION);
    15521589  return FALSE;
    15531590}
     
    15671604           pHMHandleData->hHMHandle));
    15681605
     1606  SetLastError(ERROR_INVALID_FUNCTION);
    15691607  return -1;
    15701608}
     
    15841622           pHMHandleData->hHMHandle));
    15851623
     1624  SetLastError(ERROR_INVALID_FUNCTION);
    15861625  return FALSE;
    15871626}
     
    15981637BOOL HMDeviceHandler::SetThreadTerminated(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
    15991638{
     1639    SetLastError(ERROR_INVALID_FUNCTION);
    16001640    return FALSE;
    16011641}
     
    16211661           pHMHandleData->hHMHandle));
    16221662
     1663  SetLastError(ERROR_INVALID_FUNCTION);
    16231664  return (FALSE);
    16241665}
     
    16471688           lpName));
    16481689
    1649   return ERROR_INVALID_HANDLE;
     1690  SetLastError(ERROR_INVALID_FUNCTION);
     1691  return NULL;
    16501692}
    16511693
     
    16661708           pHMHandleData->hHMHandle));
    16671709
     1710  SetLastError(ERROR_INVALID_FUNCTION);
    16681711  return FALSE;
    16691712}
     
    16841727           pHMHandleData->hHMHandle));
    16851728
     1729  SetLastError(ERROR_INVALID_FUNCTION);
    16861730  return FALSE;
    16871731}
     
    17081752           pHMHandleData->hHMHandle));
    17091753
     1754  SetLastError(ERROR_INVALID_FUNCTION);
    17101755  return FALSE;
    17111756}
     
    17301775           pHMHandleData->hHMHandle));
    17311776
     1777  SetLastError(ERROR_INVALID_FUNCTION);
    17321778  return FALSE;
    17331779}
     
    17431789 * Author    : Przemyslaw Dobrowolski
    17441790 *****************************************************************************/
    1745 DWORD HMDeviceHandler::TransactNamedPipe(PHMHANDLEDATA pHMHandleData,
     1791BOOL HMDeviceHandler::TransactNamedPipe(PHMHANDLEDATA pHMHandleData,
    17461792                                           LPVOID        lpvWriteBuf,
    17471793                                           DWORD         cbWriteBuf,
     
    17541800           pHMHandleData->hHMHandle));
    17551801
     1802  SetLastError(ERROR_INVALID_FUNCTION);
    17561803  return FALSE;
    17571804}
     
    17751822           pHMHandleData->hHMHandle));
    17761823
     1824  SetLastError(ERROR_INVALID_FUNCTION);
    17771825  return FALSE;
    17781826}
     
    17971845              pHMHandleData->hHMHandle));
    17981846
     1847    SetLastError(ERROR_INVALID_FUNCTION);
    17991848    return(FALSE);
    18001849}
     
    18151864              pHMHandleData->hHMHandle, dwReadTimeout));
    18161865
     1866    SetLastError(ERROR_INVALID_FUNCTION);
    18171867    return(FALSE);
    18181868}
     
    18331883              pHMHandleData->hHMHandle, dwTimeout));
    18341884
     1885    SetLastError(ERROR_INVALID_FUNCTION);
    18351886    return WAIT_FAILED;
    18361887}
     
    18521903              pHMHandleData->hHMHandle, dwTimeout, fAlertable));
    18531904
     1905    SetLastError(ERROR_INVALID_FUNCTION);
    18541906    return WAIT_FAILED;
    18551907}
     
    18741926              pHMHandleData->hHMHandle, nCount, pHandles, fWaitAll, dwMilliseconds, dwWakeMask));
    18751927
     1928    SetLastError(ERROR_INVALID_FUNCTION);
    18761929    return WAIT_FAILED;
    18771930}
     
    18951948              pHMHandleData->hHMHandle, cObjects, lphObjects, fWaitAll, dwTimeout));
    18961949
     1950    SetLastError(ERROR_INVALID_FUNCTION);
    18971951    return WAIT_FAILED;
    18981952}
     
    19141968              pHMHandleData->hHMHandle, lpszFileName, cbFileName));
    19151969
     1970    SetLastError(ERROR_INVALID_FUNCTION);
    19161971    return FALSE;
    19171972}
Note: See TracChangeset for help on using the changeset viewer.