On Wed, 16 Jul 2003, Jonathan Wilson wrote:
Basicly, I am going to compare what functions WINE exports from different dlls, say, kernel32.dll or whatever with what Windows XP SP1 exports from the same dll. If there is anything "missing" from the WINE version, then it needs to be added (even if its just a "fixme" stub)
Would such work be any use?
IMHO the more complete our spec files the better. Even if we just add stubs.
Has this work already been dome by someone?
I have some pieces of it. In particular I have a list of all APIs exported by Windows dlls, documented in the latest Win32 SDK and missing from Wine's spec files. It would be nice to declare them as stubs in the spec files and to add them to Wine's headers whenever possible. It's that much less work to do when someone later implements them.
advapi32: CreatePrivateObjectSecurityWithMultipleInheritance CreateWellKnownSid CredDeleteA CredDeleteW CredEnumerateA CredEnumerateW CredFree CredGetSessionTypes CredGetTargetInfoA CredGetTargetInfoW CredIsMarshaledCredentialA CredIsMarshaledCredentialW CredMarshalCredentialA CredMarshalCredentialW CredReadA CredReadDomainCredentialsA CredReadDomainCredentialsW CredReadW CredRenameA CredRenameW CredUnmarshalCredentialA CredUnmarshalCredentialW CredWriteA CredWriteDomainCredentialsA CredWriteDomainCredentialsW CredWriteW EnumerateTraceGuids EqualDomainSid FlushTraceA FlushTraceW FreeInheritedFromArray GetInheritanceSourceA GetInheritanceSourceW GetLocalManagedApplicationData GetManagedApplicationCategories GetWindowsAccountDomainSid IsTokenUntrusted IsWellKnownSid LogonUserExA LogonUserExW LsaLookupNames2 LsaQueryForestTrustInformation LsaSetForestTrustInformation MSChapSrvChangePassword MSChapSrvChangePassword2 QueryTraceA QueryTraceW RegSaveKeyExA RegSaveKeyExW SaferCloseLevel SaferComputeTokenFromLevel SaferCreateLevel SaferGetLevelInformation SaferGetPolicyInformation SaferIdentifyLevel SaferRecordEventLogEntry SaferSetLevelInformation SaferSetPolicyInformation SaferiIsExecutableFileType StopTraceA StopTraceW SystemFunction040 SystemFunction041 TraceMessage TraceMessageVa TreeResetNamedSecurityInfoA TreeResetNamedSecurityInfoW UpdateTraceA UpdateTraceW Wow64Win32ApiEntry
crypt32: CertCreateCTLEntryFromCertificateContextProperties CertIsValidCRLForCertificate CertSetCertificateContextPropertiesFromCTLEntry CryptBinaryToStringA CryptBinaryToStringW CryptSIPRetrieveSubjectGuidForCatalogFile CryptStringToBinaryA CryptStringToBinaryW
dplayx: DllRegisterServer DllUnregisterServer
imagehlp: FindFileInPath SymEnumSourceFiles SymEnumSym SymEnumSymbols SymEnumTypes SymFindFileInPath SymFromAddr SymFromName SymGetTypeFromName SymGetTypeInfo SymMatchString SymSetContext
kernel32: ActivateActCtx AddRefActCtx AddVectoredExceptionHandler AllocateUserPhysicalPages AssignProcessToJobObject AttachConsole BindIoCompletionCallback CancelTimerQueueTimer ConvertFiberToThread CopyLZFile CreateActCtxA CreateActCtxW CreateFiberEx CreateHardLinkA CreateHardLinkW CreateJobObjectA CreateJobObjectW CreateJobSet CreateMemoryResourceNotification CreateTimerQueue CreateTimerQueueTimer DeactivateActCtx DebugActiveProcessStop DebugBreakProcess DebugSetProcessKillOnExit DeleteTimerQueue DeleteTimerQueueEx DeleteTimerQueueTimer DeleteVolumeMountPointA DeleteVolumeMountPointW DnsHostnameToComputerNameA DnsHostnameToComputerNameW FindActCtxSectionGuid FindActCtxSectionStringA FindActCtxSectionStringW GetConsoleProcessList GetConsoleSelectionInfo GetCurrentActCtx GetExpandedNameA GetExpandedNameW GetFirmwareEnvironmentVariableA GetFirmwareEnvironmentVariableW GetModuleHandleExA GetModuleHandleExW GetNativeSystemInfo GetNumaAvailableMemoryNode GetNumaHighestNodeNumber GetNumaNodeProcessorMask GetNumaProcessorNode GetSystemWow64DirectoryA GetSystemWow64DirectoryW GetVolumePathNamesForVolumeNameA GetVolumePathNamesForVolumeNameW HeapQueryInformation HeapSetInformation InitializeSListHead InterlockedFlushSList InterlockedPopEntrySList InterlockedPushEntrySList IsProcessInJob IsWow64Process LZClose LZCopy LZDone LZInit LZOpenFileA LZOpenFileW LZRead LZSeek LZStart QueryActCtxW QueryDepthSList QueryMemoryResourceNotification ReleaseActCtx RemoveVectoredExceptionHandler RestoreLastError RtlCaptureContext SetFileShortNameA SetFileShortNameW SetFileValidData SetFirmwareEnvironmentVariableA SetFirmwareEnvironmentVariableW TzSpecificLocalTimeToSystemTime WTSGetActiveConsoleSessionId ZombifyActCtx
netapi32: DsGetDcCloseW DsGetDcNextA DsGetDcNextW DsGetDcOpenA DsGetDcOpenW DsGetForestTrustInformationW DsMergeForestTrustInformationW NetAddAlternateComputerName NetEnumerateComputerNames NetRemoveAlternateComputerName NetSetPrimaryComputerName
ntdll: RtlApplicationVerifierStop RtlCaptureContext RtlFirstEntrySList RtlInitializeSListHead RtlInterlockedFlushSList RtlInterlockedPopEntrySList RtlInterlockedPushEntrySList RtlQueryDepthSList RtlQueryHeapInformation RtlSetHeapInformation _vsnwprintf
ole32: CoFreeUnusedLibrariesEx CoGetContextToken CoGetInterceptor CoGetInterceptorFromTypeInfo CoInvalidateRemoteMachineBindings
oleaut32: VarBoolFromI8 VarBoolFromUI8 VarBstrFromI8 VarBstrFromUI8 VarCyFromI8 VarCyFromUI8 VarCyMulI8 VarDateFromI8 VarDateFromUI8 VarDecFromI8 VarDecFromUI8 VarI1FromI8 VarI1FromUI8 VarI2FromI8 VarI2FromUI8 VarI4FromI8 VarI4FromUI8 VarI8FromBool VarI8FromCy VarI8FromDate VarI8FromDec VarI8FromDisp VarI8FromI1 VarI8FromI2 VarI8FromR4 VarI8FromR8 VarI8FromStr VarI8FromUI1 VarI8FromUI2 VarI8FromUI4 VarI8FromUI8 VarR4FromI8 VarR4FromUI8 VarR8FromI8 VarR8FromUI8 VarUI1FromI8 VarUI1FromUI8 VarUI2FromI8 VarUI2FromUI8 VarUI4FromI8 VarUI4FromUI8 VarUI8FromBool VarUI8FromCy VarUI8FromDate VarUI8FromDec VarUI8FromDisp VarUI8FromI1 VarUI8FromI2 VarUI8FromI8 VarUI8FromR4 VarUI8FromR8 VarUI8FromStr VarUI8FromUI1 VarUI8FromUI2 VarUI8FromUI4
psapi: EnumPageFilesA EnumPageFilesW GetPerformanceInfo GetProcessImageFileNameA GetProcessImageFileNameW
rasapi32: RasDeleteSubEntryW
rpcrt4: I_RpcBindingHandleToAsyncHandle I_RpcBindingInqLocalClientPID I_RpcExceptionFilter I_RpcNegotiateTransferSyntax I_RpcServerInqLocalConnAddress I_RpcTurnOnEEInfoPropagation NdrCreateServerInterfaceFromStub NdrPartialIgnoreClientBufferSize NdrPartialIgnoreClientMarshall NdrPartialIgnoreServerInitialize NdrPartialIgnoreServerUnmarshall RpcErrorAddRecord RpcErrorClearInformation RpcErrorEndEnumeration RpcErrorGetNextRecord RpcErrorGetNumberOfRecords RpcErrorLoadErrorInfo RpcErrorResetEnumeration RpcErrorSaveErrorInfo RpcErrorStartEnumeration RpcFreeAuthorizationContext RpcGetAuthorizationContextForClient RpcServerInqCallAttributesA RpcServerInqCallAttributesW RpcServerUnregisterIfEx RpcSsContextLockExclusive RpcSsContextLockShared RpcUserFree
setupapi: CM_Get_DevNode_Custom_PropertyA CM_Get_DevNode_Custom_PropertyW CM_Get_DevNode_Custom_Property_ExA CM_Get_DevNode_Custom_Property_ExW CM_Is_Version_Available CM_Is_Version_Available_Ex SetupDiGetActualSectionToInstallExA SetupDiGetActualSectionToInstallExW SetupDiGetClassRegistryPropertyA SetupDiGetClassRegistryPropertyW SetupDiGetCustomDevicePropertyA SetupDiGetCustomDevicePropertyW SetupDiSetClassRegistryPropertyA SetupDiSetClassRegistryPropertyW SetupDiSetDeviceInterfaceDefault SetupEnumInfSectionsA SetupEnumInfSectionsW SetupGetFileCompressionInfoExA SetupGetFileCompressionInfoExW SetupGetFileQueueCount SetupGetFileQueueFlags SetupGetNonInteractiveMode SetupPrepareQueueForRestoreA SetupPrepareQueueForRestoreW SetupSetFileQueueFlags SetupSetNonInteractiveMode SetupUninstallNewlyCopiedInfs SetupUninstallOEMInfA SetupUninstallOEMInfW SetupVerifyInfFileA SetupVerifyInfFileW
shdocvw: DoPrivacyDlg ImportPrivacySettings
shell32: SHCreateQueryCancelAutoPlayMoniker SHCreateShellItem SHEnableServiceObject SHEnumerateUnreadMailAccountsW SHGetFolderPathAndSubDirA SHGetFolderPathAndSubDirW SHGetUnreadMailCountW SHParseDisplayName SHSetLocalizedName SHSetUnreadMailCountW
urlmon: CompareSecurityIds
user32: BroadcastSystemMessageExA BroadcastSystemMessageExW DefRawInputProc DisableProcessWindowsGhosting GetLayeredWindowAttributes GetRawInputBuffer GetRawInputData GetRawInputDeviceInfoA GetRawInputDeviceInfoW GetRawInputDeviceList GetRegisteredRawInputDevices GetWindowRgnBox IsGUIThread IsWinEventHookInstalled PrintWindow RegisterRawInputDevices
wininet: CreateMD5SSOHash InternetClearAllPerSiteCookieDecisions InternetEnumPerSiteCookieDecisionA InternetEnumPerSiteCookieDecisionW InternetGetCookieExA InternetGetCookieExW InternetGetPerSiteCookieDecisionA InternetGetPerSiteCookieDecisionW InternetSetCookieExA InternetSetCookieExW InternetSetPerSiteCookieDecisionA InternetSetPerSiteCookieDecisionW PrivacyGetZonePreferenceW PrivacySetZonePreferenceW
wintrust: CryptCATAdminPauseServiceForBackup CryptCATAdminRemoveCatalog CryptCATAdminResolveCatalogPath
ws2_32: WSANSPIoctl WSCUpdateProvider freeaddrinfo getaddrinfo getnameinfo