SpecDiscrepencies

Wine's spec files describe which entry points to export from a given dll. In order to be compatible with Windows they should match the contents of the Windows dlls export tables. Unfortunately this is not always the case. So the goal of this page is to help keep track of these differences, note which ones are benign, which are troublesome, which issues have been fixed, and also allow collaborative work on this issue.

NOTE: entries should be deleted manually as they are fixed (and empty bullets along with them) -- it is important to keep the list up-to-date, otherwise it will become irrelevant.

  • dplayx found on 7 platforms
    • These 1 APIs should not have an ordinal:

        gdwDPlaySPRefCount             (correct 4/6 times, found 2 values)
      
  • kernel32 found on 7 platforms
    • These 33 APIs should have the -noname property:

        AllocMappedBuffer              (38 has other names on api2000 api2003es apint4 apixp)
        Common32ThkLS                  (45 has other names on api2000 api2003es apint4 apixp)
        CommonUnimpStub                (17 has other names on api2000 api2003es apint4 apixp)
        FT_PrologPrime                 (89 has other names on api2000 api2003es apint4 apixp)
        FreeMappedBuffer               (39 has other names on api2000 api2003es apint4 apixp)
        K32RtlConvertLongToLargeInteger (84 has other names on api2000 api2003es apint4 apixp)
        K32RtlConvertUlongToLargeInteger (85 has other names on api2000 api2003es apint4 apixp)
        K32RtlEnlargedIntegerMultiply  (73 has other names on api2000 api2003es apint4 apixp)
        K32RtlEnlargedUnsignedMultiply (74 has other names on api2000 api2003es apint4 apixp)
        K32RtlExtendedIntegerMultiply  (78 has other names on api2000 api2003es apint4 apixp)
        K32RtlExtendedLargeIntegerDivide (76 has other names on api2000 api2003es apint4 apixp)
        K32RtlExtendedMagicDivide      (77 has other names on api2000 api2003es apint4 apixp)
        K32RtlLargeIntegerAdd          (72 has other names on api2000 api2003es apint4 apixp)
        K32RtlLargeIntegerArithmeticShift (81 has other names on api2000 api2003es apint4 apixp)
        K32RtlLargeIntegerNegate       (82 has other names on api2000 api2003es apint4 apixp)
        K32RtlLargeIntegerShiftLeft    (79 has other names on api2000 api2003es apint4 apixp)
        K32RtlLargeIntegerShiftRight   (80 has other names on api2000 api2003es apint4 apixp)
        K32RtlLargeIntegerSubtract     (83 has other names on api2000 api2003es apint4 apixp)
        LogApiThkLSF                   (42 has other names on api2000 api2003es apint4 apixp)
        LogApiThkSL                    (44 has other names on api2000 api2003es apint4 apixp)
        LogCBThkSL                     (47 has other names on api2000 api2003es apint4 apixp)
        OT_32ThkLSF                    (40 has other names on api2000 api2003es apint4 apixp)
        QT_ThunkPrime                  (90 has other names on api2000 api2003es apint4 apixp)
        VxDCall0                       (1 has other names on api2000 api2003es apint4 apixp)
        VxDCall1                       (2 has other names on api2000 api2003es apint4 apixp)
        VxDCall2                       (3 has other names on api2000 api2003es apint4 apixp)
        VxDCall3                       (4 has other names on api2000 api2003es apint4 apixp)
        VxDCall4                       (5 has other names on api2000 api2003es apint4 apixp)
        VxDCall5                       (6 has other names on api2000 api2003es apint4 apixp)
        VxDCall6                       (7 has other names on api2000 api2003es apint4 apixp)
        VxDCall7                       (8 has other names on api2000 api2003es apint4 apixp)
        VxDCall8                       (9 has other names on api2000 api2003es apint4 apixp)
        W32S_BackTo32                  (51 has other names on api2000 api2003es apint4 apixp)
      
  • mapi32 found on 7 platforms
    • These 12 APIs should not have an ordinal:

        MAPIAddress                    (correct 6/7 times, found 2 values)
        MAPIDeleteMail                 (correct 6/7 times, found 2 values)
        MAPIDetails                    (correct 6/7 times, found 2 values)
        MAPIFindNext                   (correct 6/7 times, found 2 values)
        MAPIFreeBuffer                 (correct 6/7 times, found 2 values)
        MAPILogoff                     (correct 6/7 times, found 2 values)
        MAPILogon                      (correct 6/7 times, found 2 values)
        MAPIReadMail                   (correct 6/7 times, found 2 values)
        MAPIResolveName                (correct 6/7 times, found 2 values)
        MAPISaveMail                   (correct 6/7 times, found 2 values)
        MAPISendDocuments              (correct 6/7 times, found 2 values)
        MAPISendMail                   (correct 6/7 times, found 2 values)
      
  • msvcrt found on 7 platforms
    • These 8 APIs are missing:

        __lc_codepage
        __lc_collate_cp
        __lc_handle
        _aexit_rtn
        _dstbias
        _fileinfo
        _mbcasemap
        _pwctype
      
  • msvfw32 found on 7 platforms
    • These 1 APIs are missing:

        ICMThunk32
      
  • odbc32 found on 7 platforms
    • These 4 APIs should not have an ordinal:

        CursorLibLockDbc               (correct 5/7 times, found 2 values)
        CursorLibLockDesc              (correct 5/7 times, found 2 values)
        CursorLibLockStmt              (correct 5/7 times, found 2 values)
        CursorLibTransact              (correct 5/7 times, found 2 values)
      
  • oleaut32 found on 7 platforms
    • These 1 APIs should not have an ordinal:

        OACreateTypeLib2               (correct 3/7 times, found 3 values)
      
  • oledlg found on 7 platforms
    • These 10 APIs should not have an ordinal:

        OleUIAddVerbMenuW              (correct 3/7 times, found 2 values)
        OleUIBusyW                     (correct 3/7 times, found 2 values)
        OleUIChangeIconW               (correct 3/7 times, found 2 values)
        OleUIChangeSourceW             (correct 3/7 times, found 2 values)
        OleUIConvertW                  (correct 3/7 times, found 2 values)
        OleUIEditLinksW                (correct 3/7 times, found 2 values)
        OleUIInsertObjectW             (correct 3/7 times, found 2 values)
        OleUIObjectPropertiesW         (correct 3/7 times, found 2 values)
        OleUIPasteSpecialW             (correct 3/7 times, found 2 values)
        OleUIPromptUserW               (correct 3/7 times, found 2 values)
      
  • rasapi32 found on 7 platforms
    • These 10 APIs should not have an ordinal:

        RnaCloseMac                    (correct 1/3 times, found 3 values)
        RnaComplete                    (correct 1/3 times, found 3 values)
        RnaGetDevicePort               (correct 1/3 times, found 3 values)
        RnaGetUserProfile              (correct 1/3 times, found 3 values)
        RnaOpenMac                     (correct 1/3 times, found 3 values)
        RnaSessInitialize              (correct 1/3 times, found 3 values)
        RnaStartCallback               (correct 1/3 times, found 3 values)
        RnaTerminate                   (correct 1/3 times, found 3 values)
        RnaUICallbackDialog            (correct 1/3 times, found 3 values)
        RnaUIUsernamePassword          (correct 1/3 times, found 3 values)
      
  • rpcrt4 found on 7 platforms
    • These 1 APIs are missing:

        I_RpcBindingInqDynamicEndpoint
      
  • shdocvw found on 7 platforms
    • These 3 APIs should not have an ordinal:

        AddUrlToFavorites              (correct 3/7 times, found 3 values)
        HlinkFindFrame                 (correct 3/7 times, found 3 values)
        SetShellOfflineState           (correct 3/5 times, found 2 values)
      
  • shell32 found on 7 platforms
    • These 1 APIs have the wrong ordinal:

        ReadCabinetState               (is 654 on api2003es)
      

      These 13 APIs don't have a name on Windows:

        DAD_SetDragImageFromListView   (177)
        DoEnvironmentSubst             (53)
        DragQueryInfo                  (76)
        RealDriveTypeFlags             (525)
        SHChangeNotifyReceive          (643)
        SHChangeRegistrationReceive    (646)
        SHCreatePropSheetExtArrayEx    (194)
        SHFindComputer                 (91)
        SHGlobalDefect                 (197)
        SHHandleDiskFull               (185)
        SHIsBadInterfacePtr            (84)
        SHNetConnectionDialog          (160)
        SHWaitOp_Operate               (648)
      

      These 26 APIs should have the -noname property:

        AddCommasW                     (203 has other names on api95 api98 apime)
        Desktop_UpdateBriefcaseOnEvent (139 has other names on api2003es apixp)
        ILGetPseudoNameW               (187 has other names on api95 api98 apint4)
        Int64ToString                  (209 has other names on api95 api98 apime)
        LargeIntegerToString           (210 has other names on api95 api98 apime)
        Link_AddExtraDataSection       (206 has other names on api2003es api95 api98 apime apixp)
        Link_ReadExtraDataSection      (207 has other names on api2003es api95 api98 apime apixp)
        Link_RemoveExtraDataSection    (208 has other names on api2003es api95 api98 apime apixp)
        Printer_LoadIconsW             (205 has other names on api95 api98 apime)
        Printers_AddPrinterPropPages   (212 has other names on api95 api98 apime)
        Printers_GetPidl               (211 has other names on api95 api98 apime)
        Printers_RegisterWindowW       (213 has other names on api95 api98 apime)
        Printers_UnregisterWindow      (214 has other names on api95 api98 apime)
        ReceiveAddToRecentDocs         (647 has no name on api95 api98 apime apint4 api2000)
        SHLocalAlloc                   (200 has other names on api95 api98 apint4)
        SHLocalFree                    (201 has other names on api95 api98 apint4)
        SHLocalReAlloc                 (202 has other names on api95 api98 apint4)
        SHRegCloseKey                  (505 has no name on api95 api98 apint4)
        SHRegDeleteKeyW                (512 has no name on apint4)
        SHRegOpenKeyA                  (506 has no name on api95 api98 apint4)
        SHRegOpenKeyW                  (507 has no name on api95 api98 apint4)
        SHRegQueryValueA               (508 has no name on api95 api98 apint4)
        SHRegQueryValueExA             (509 has no name on api95 api98 apint4)
        SHRegQueryValueExW             (511 has no name on api95 api98 apint4)
        SHRegQueryValueW               (510 has no name on api95 api98 apint4)
        ShortSizeFormatW               (204 has other names on api95 api98 apime)
      
  • shlwapi found on 7 platforms
    • These 1 APIs should not have an ordinal:

        SHCreateThread                 (correct 4/5 times, found 2 values)
      

      These 3 APIs should have the -noname property:

        MLLoadLibraryA                 (377 has other names on api95 apint4)
        MLLoadLibraryW                 (378 has other names on api95 apint4)
        SHCreateThread                 (16 has no name on api95 apint4)
      
  • urlmon found on 7 platforms
    • These 2 APIs should not have an ordinal:

        CDLGetLongPathNameA            (correct 5/7 times, found 2 values)
        CDLGetLongPathNameW            (correct 5/7 times, found 2 values)
      
  • wnaspi32 found on 5 platforms
    • These 1 APIs should not have an ordinal:

        GetASPI32DLLVersion            (correct 3/5 times, found 2 values)
      

      These 2 APIs have the wrong ordinal:

        FreeASPI32Buffer               (is 3 on api2000 apixp)
        GetASPI32Buffer                (is 4 on api2000 apixp)
      
  • wow32 found on 7 platforms
    • These 1 APIs should have the -noname property:

        WOWGetDescriptor               (1 has other names on api2000 api2003es apint4 apixp)
      
  • wsock32 found on 7 platforms
    • These 11 APIs are missing:

        GetNameByTypeA
        GetNameByTypeW
        NPLoadNameSpaces
        TransmitFile
        dn_expand
        rcmd
        rexec
        rresvport
        sethostname
      


CategoryJanitorialProjects

SpecDiscrepencies (last edited 2008-04-27 02:15:59 by nathan.n)