File version 10.0.17763.1
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com --- v2: Simplify registry handling. Remove inconsistent tests. v3: Add a FIXME for unhandled errors in SetupDiGetDevicePropertyW. Thanks to Zeb.
dlls/setupapi/setupapi.spec | 158 +++++++++++++++++++++++++++++++++++- 1 file changed, 157 insertions(+), 1 deletion(-)
diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec index 0b44e184fc..eb2dab204d 100644 --- a/dlls/setupapi/setupapi.spec +++ b/dlls/setupapi/setupapi.spec @@ -3,12 +3,16 @@ @ stub AddTagToGroupOrderListEntry @ stub AppendStringToMultiSz @ stdcall AssertFail(str long str) +@ stub CMP_GetBlockedDriverInfo +@ stub CMP_GetServerSideDeviceInstallFlags @ stub CMP_Init_Detection @ stub CMP_RegisterNotification @ stub CMP_Report_LogOn @ stub CMP_UnregisterNotification @ stdcall CMP_WaitNoPendingInstallEvents(long) @ stub CMP_WaitServices +@ stub CMP_WaitServicesAvailable +@ stub CM_Add_Driver_PackageW @ stub CM_Add_Empty_Log_Conf @ stub CM_Add_Empty_Log_Conf_Ex @ stub CM_Add_IDA @@ -18,6 +22,7 @@ @ stub CM_Add_Range @ stub CM_Add_Res_Des @ stub CM_Add_Res_Des_Ex +@ stub CM_Apply_PowerScheme @ stdcall CM_Connect_MachineA(str ptr) @ stdcall CM_Connect_MachineW(wstr ptr) @ stdcall CM_Create_DevNodeA(ptr str long long) @@ -29,6 +34,12 @@ @ stub CM_Delete_Class_Key_Ex @ stub CM_Delete_DevNode_Key @ stub CM_Delete_DevNode_Key_Ex +@ stub CM_Delete_Device_Interface_KeyA +@ stub CM_Delete_Device_Interface_KeyW +@ stub CM_Delete_Device_Interface_Key_ExA +@ stub CM_Delete_Device_Interface_Key_ExW +@ stub CM_Delete_Driver_PackageW +@ stub CM_Delete_PowerScheme @ stub CM_Delete_Range @ stub CM_Detect_Resource_Conflict @ stub CM_Detect_Resource_Conflict_Ex @@ -36,6 +47,7 @@ @ stub CM_Disable_DevNode_Ex @ stdcall CM_Disconnect_Machine(long) @ stub CM_Dup_Range_List +@ stub CM_Duplicate_PowerScheme @ stub CM_Enable_DevNode @ stub CM_Enable_DevNode_Ex @ stdcall CM_Enumerate_Classes(long ptr long) @@ -53,6 +65,7 @@ @ stub CM_Free_Res_Des @ stub CM_Free_Res_Des_Ex @ stub CM_Free_Res_Des_Handle +@ stub CM_Free_Resource_Conflict_Handle @ stdcall CM_Get_Child(ptr long long) @ stdcall CM_Get_Child_Ex(ptr long long ptr) @ stub CM_Get_Class_Key_NameA @@ -67,6 +80,10 @@ @ stdcall CM_Get_Class_Registry_PropertyW(ptr long ptr ptr long long ptr) @ stub CM_Get_Depth @ stub CM_Get_Depth_Ex +@ stub CM_Get_DevNode_Custom_PropertyA +@ stub CM_Get_DevNode_Custom_PropertyW +@ stub CM_Get_DevNode_Custom_Property_ExA +@ stub CM_Get_DevNode_Custom_Property_ExW @ stdcall CM_Get_DevNode_Registry_PropertyA(long long ptr ptr ptr long) @ stdcall CM_Get_DevNode_Registry_PropertyW(long long ptr ptr ptr long) @ stdcall CM_Get_DevNode_Registry_Property_ExA(long long ptr ptr ptr long ptr) @@ -123,13 +140,22 @@ @ stub CM_Get_Res_Des_Data_Ex @ stub CM_Get_Res_Des_Data_Size @ stub CM_Get_Res_Des_Data_Size_Ex +@ stub CM_Get_Resource_Conflict_Count +@ stub CM_Get_Resource_Conflict_DetailsA +@ stub CM_Get_Resource_Conflict_DetailsW @ stub CM_Get_Sibling @ stdcall CM_Get_Sibling_Ex(ptr long long ptr) @ stdcall CM_Get_Version() @ stub CM_Get_Version_Ex +@ stub CM_Import_PowerScheme +@ stub CM_Install_DevNodeW +@ stub CM_Install_DevNode_ExW @ stub CM_Intersect_Range_List @ stub CM_Invert_Range_List @ stub CM_Is_Dock_Station_Present +@ stub CM_Is_Dock_Station_Present_Ex +@ stub CM_Is_Version_Available +@ stub CM_Is_Version_Available_Ex @ stdcall CM_Locate_DevNodeA(ptr str long) @ stdcall CM_Locate_DevNodeW(ptr wstr long) @ stdcall CM_Locate_DevNode_ExA(ptr str long long) @@ -146,6 +172,10 @@ @ stub CM_Open_Class_Key_ExW @ stdcall CM_Open_DevNode_Key(long long long long ptr long) @ stub CM_Open_DevNode_Key_Ex +@ stub CM_Open_Device_Interface_KeyA +@ stub CM_Open_Device_Interface_KeyW +@ stub CM_Open_Device_Interface_Key_ExA +@ stub CM_Open_Device_Interface_Key_ExW @ stub CM_Query_And_Remove_SubTreeA @ stub CM_Query_And_Remove_SubTreeW @ stub CM_Query_And_Remove_SubTree_ExA @@ -156,6 +186,7 @@ @ stub CM_Query_Arbitrator_Free_Size_Ex @ stub CM_Query_Remove_SubTree @ stub CM_Query_Remove_SubTree_Ex +@ stub CM_Query_Resource_Conflict_List @ stdcall CM_Reenumerate_DevNode(ptr long) @ stdcall CM_Reenumerate_DevNode_Ex(ptr long ptr) @ stub CM_Register_Device_Driver @@ -170,11 +201,17 @@ @ stub CM_Remove_Unmarked_Children_Ex @ stub CM_Request_Device_EjectA @ stub CM_Request_Device_EjectW +@ stub CM_Request_Device_Eject_ExA +@ stub CM_Request_Device_Eject_ExW @ stub CM_Request_Eject_PC +@ stub CM_Request_Eject_PC_Ex @ stub CM_Reset_Children_Marks @ stub CM_Reset_Children_Marks_Ex +@ stub CM_RestoreAll_DefaultPowerSchemes +@ stub CM_Restore_DefaultPowerScheme @ stub CM_Run_Detection @ stub CM_Run_Detection_Ex +@ stub CM_Set_ActiveScheme @ stdcall CM_Set_Class_Registry_PropertyA(ptr long ptr long long ptr) @ stdcall CM_Set_Class_Registry_PropertyW(ptr long ptr long long ptr) @ stub CM_Set_DevNode_Problem @@ -198,8 +235,17 @@ @ stub CM_Unregister_Device_InterfaceW @ stub CM_Unregister_Device_Interface_ExA @ stub CM_Unregister_Device_Interface_ExW +@ stub CM_Write_UserPowerKey @ stdcall CaptureAndConvertAnsiArg(str ptr) @ stdcall CaptureStringArg(wstr ptr) +@ stub DriverStoreAddDriverPackageA +@ stub DriverStoreAddDriverPackageW +@ stub DriverStoreDeleteDriverPackageA +@ stub DriverStoreDeleteDriverPackageW +@ stub DriverStoreEnumDriverPackageA +@ stub DriverStoreEnumDriverPackageW +@ stub DriverStoreFindDriverPackageA +@ stub DriverStoreFindDriverPackageW @ stub CenterWindowRelativeToParent @ stub ConcatenatePaths @ stdcall DelayedMove(wstr wstr) @@ -233,6 +279,11 @@ @ stdcall MyRealloc(ptr long) @ stdcall OpenAndMapFileForRead(wstr ptr ptr ptr ptr) @ stub OutOfMemory +@ stub PnpEnumDrpFile +@ stub PnpIsFileAclIntact +@ stub PnpIsFileContentIntact +@ stub PnpIsFilePnpDriver +@ stub PnpRepairWindowsProtectedDriver @ stub QueryMultiSzValueToArray @ stdcall QueryRegistryValue(long wstr ptr ptr ptr) @ stub ReadAsciiOrUnicodeTextFile @@ -252,6 +303,8 @@ @ stdcall SetupAddToSourceListW(long wstr) @ stub SetupAdjustDiskSpaceListA @ stub SetupAdjustDiskSpaceListW +@ stub SetupBackupErrorA +@ stub SetupBackupErrorW @ stub SetupCancelTemporarySourceList @ stdcall SetupCloseFileQueue(ptr) @ stdcall SetupCloseInfFile(long) @@ -259,6 +312,8 @@ @ stdcall SetupCommitFileQueue(long long ptr ptr) SetupCommitFileQueueW @ stdcall SetupCommitFileQueueA(long long ptr ptr) @ stdcall SetupCommitFileQueueW(long long ptr ptr) +@ stub SetupConfigureWmiFromInfSectionA +@ stub SetupConfigureWmiFromInfSectionW @ stdcall SetupCopyErrorA(long str str str str str long long str long ptr) @ stdcall SetupCopyErrorW(long wstr wstr wstr wstr wstr long long wstr long ptr) @ stdcall SetupCopyOEMInfA(str str long long ptr long ptr ptr) @@ -273,6 +328,7 @@ @ stdcall SetupDeleteErrorA(long str str long long) @ stdcall SetupDeleteErrorW(long wstr wstr long long) @ stdcall SetupDestroyDiskSpaceList(long) +@ stub SetupDiApplyPowerScheme @ stub SetupDiAskForOEMDisk @ stdcall SetupDiBuildClassInfoList(long ptr long ptr) @ stdcall SetupDiBuildClassInfoListExA(long ptr long ptr str ptr) @@ -313,7 +369,11 @@ @ stdcall SetupDiEnumDeviceInterfaces(long ptr ptr long ptr) @ stdcall SetupDiEnumDriverInfoA(ptr ptr long long ptr) @ stdcall SetupDiEnumDriverInfoW(ptr ptr long long ptr) +@ stub SetupDiGetActualModelsSectionA +@ stub SetupDiGetActualModelsSectionW @ stdcall SetupDiGetActualSectionToInstallA(long str str long ptr ptr) +@ stub SetupDiGetActualSectionToInstallExA +@ stub SetupDiGetActualSectionToInstallExW @ stdcall SetupDiGetActualSectionToInstallW(long wstr wstr long ptr ptr) @ stdcall SetupDiGetClassBitmapIndex(ptr ptr) @ stdcall SetupDiGetClassDescriptionA(ptr str long ptr) @@ -332,6 +392,14 @@ @ stub SetupDiGetClassImageListExW @ stub SetupDiGetClassInstallParamsA @ stub SetupDiGetClassInstallParamsW +@ stub SetupDiGetClassPropertyExW +@ stub SetupDiGetClassPropertyKeys +@ stub SetupDiGetClassPropertyKeysExW +@ stub SetupDiGetClassPropertyW +@ stub SetupDiGetClassRegistryPropertyA +@ stub SetupDiGetClassRegistryPropertyW +@ stub SetupDiGetCustomDevicePropertyA +@ stub SetupDiGetCustomDevicePropertyW @ stub SetupDiGetDeviceInfoListClass @ stdcall SetupDiGetDeviceInfoListDetailA(ptr ptr) @ stdcall SetupDiGetDeviceInfoListDetailW(ptr ptr) @@ -342,6 +410,8 @@ @ stub SetupDiGetDeviceInterfaceAlias @ stdcall SetupDiGetDeviceInterfaceDetailA(long ptr ptr long ptr ptr) @ stdcall SetupDiGetDeviceInterfaceDetailW(long ptr ptr long ptr ptr) +@ stub SetupDiGetDeviceInterfacePropertyKeys +@ stub SetupDiGetDevicePropertyKeys @ stdcall SetupDiGetDevicePropertyW(ptr ptr ptr ptr ptr long ptr long) @ stdcall SetupDiGetDeviceRegistryPropertyA(long ptr long ptr ptr long ptr) @ stdcall SetupDiGetDeviceRegistryPropertyW(long ptr long ptr ptr long ptr) @@ -367,8 +437,10 @@ @ stub SetupDiInstallClassExW @ stdcall SetupDiInstallClassW(long wstr long ptr) @ stub SetupDiInstallDevice +@ stub SetupDiInstallDeviceInterfaces @ stub SetupDiInstallDriverFiles @ stdcall SetupDiLoadClassIcon(ptr ptr ptr) +@ stub SetupDiLoadDeviceIcon @ stub SetupDiMoveDuplicateDevice @ stdcall SetupDiOpenClassRegKey(ptr long) @ stdcall SetupDiOpenClassRegKeyExA(ptr long long str ptr) @@ -379,16 +451,31 @@ @ stdcall SetupDiOpenDeviceInterfaceA(ptr str long ptr) @ stub SetupDiOpenDeviceInterfaceRegKey @ stdcall SetupDiOpenDeviceInterfaceW(ptr wstr long ptr) +@ stub SetupDiRegisterCoDeviceInstallers @ stdcall SetupDiRegisterDeviceInfo(ptr ptr long ptr ptr ptr) @ stdcall SetupDiRemoveDevice(ptr ptr) @ stdcall SetupDiRemoveDeviceInterface(ptr ptr) +@ stub SetupDiReportAdditionalSoftwareRequested +@ stub SetupDiReportDeviceInstallError +@ stub SetupDiReportDriverNotFoundError +@ stub SetupDiReportDriverPackageImportationError +@ stub SetupDiReportGenericDriverInstalled +@ stub SetupDiReportPnPDeviceProblem +@ stub SetupDiRestartDevices @ stdcall SetupDiSelectBestCompatDrv(ptr ptr) @ stub SetupDiSelectDevice @ stub SetupDiSelectOEMDrv @ stdcall SetupDiSetClassInstallParamsA(ptr ptr ptr long) @ stdcall SetupDiSetClassInstallParamsW(ptr ptr ptr long) +@ stub SetupDiSetClassPropertyExW +@ stub SetupDiSetClassPropertyW +@ stub SetupDiSetClassRegistryPropertyA +@ stub SetupDiSetClassRegistryPropertyW @ stdcall SetupDiSetDeviceInstallParamsA(ptr ptr ptr) @ stdcall SetupDiSetDeviceInstallParamsW(ptr ptr ptr) +@ stub SetupDiSetDeviceInterfaceDefault +@ stub SetupDiSetDeviceInterfacePropertyW +@ stub SetupDiSetDevicePropertyW @ stdcall SetupDiSetDeviceRegistryPropertyA(ptr ptr long ptr long) @ stdcall SetupDiSetDeviceRegistryPropertyW(ptr ptr long ptr long) @ stub SetupDiSetDriverInstallParamsA @@ -401,6 +488,8 @@ @ stdcall SetupDuplicateDiskSpaceListW(ptr ptr long long) @ stdcall SetupEnumInfSectionsA(long long ptr long ptr) @ stdcall SetupEnumInfSectionsW(long long ptr long ptr) +@ stub SetupEnumPublishedInfA +@ stub SetupEnumPublishedInfW @ stdcall SetupFindFirstLineA(long str str ptr) @ stdcall SetupFindFirstLineW(long wstr wstr ptr) @ stdcall SetupFindNextLine(ptr ptr) @@ -418,10 +507,14 @@ @ stdcall SetupGetFileCompressionInfoW(wstr ptr ptr ptr ptr) @ stdcall SetupGetFileQueueCount(long long ptr) @ stdcall SetupGetFileQueueFlags(long ptr) +@ stub SetupGetInfDriverStoreLocationA +@ stub SetupGetInfDriverStoreLocationW @ stdcall SetupGetInfFileListA(str long ptr long ptr) @ stdcall SetupGetInfFileListW(wstr long ptr long ptr) @ stdcall SetupGetInfInformationA(ptr long ptr long ptr) @ stdcall SetupGetInfInformationW(ptr long ptr long ptr) +@ stub SetupGetInfPublishedNameA +@ stub SetupGetInfPublishedNameW @ stub SetupGetInfSections @ stdcall SetupGetIntField(ptr long ptr) @ stdcall SetupGetLineByIndexA(long str long ptr) @@ -443,6 +536,7 @@ @ stdcall SetupGetStringFieldW(ptr long ptr long ptr) @ stdcall SetupGetTargetPathA(ptr ptr str ptr long ptr) @ stdcall SetupGetTargetPathW(ptr ptr wstr ptr long ptr) +@ stub SetupGetThreadLogToken @ stdcall SetupInitDefaultQueueCallback(long) @ stdcall SetupInitDefaultQueueCallbackEx(long long long long ptr) @ stdcall SetupInitializeFileLogA (str long) @@ -455,6 +549,8 @@ @ stdcall SetupInstallFilesFromInfSectionW(long long long wstr wstr long) @ stdcall SetupInstallFromInfSectionA(long long str long long str long ptr ptr long ptr) @ stdcall SetupInstallFromInfSectionW(long long wstr long long wstr long ptr ptr long ptr) +@ stub SetupInstallLogCloseEventGroup +@ stub SetupInstallLogCreateEventGroup @ stdcall SetupInstallServicesFromInfSectionA(long str long) @ stub SetupInstallServicesFromInfSectionExA @ stub SetupInstallServicesFromInfSectionExW @@ -472,6 +568,8 @@ @ stdcall SetupOpenInfFileW(wstr wstr long ptr) @ stdcall SetupOpenLog(long) @ stdcall SetupOpenMasterInf() +@ stub SetupPrepareQueueForRestoreA +@ stub SetupPrepareQueueForRestoreW @ stdcall SetupPromptForDiskA(ptr str str str str str long ptr long ptr) @ stdcall SetupPromptForDiskW(ptr wstr wstr wstr wstr wstr long ptr long ptr) @ stdcall SetupPromptReboot(ptr ptr long) @@ -532,10 +630,17 @@ @ stub SetupSetPlatformPathOverrideW @ stdcall SetupSetSourceListA(long ptr long) @ stdcall SetupSetSourceListW(long ptr long) +@ stub SetupSetThreadLogToken @ stdcall SetupTermDefaultQueueCallback(ptr) @ stdcall SetupTerminateFileLog(long) +@ stub SetupUninstallNewlyCopiedInfs @ stdcall SetupUninstallOEMInfA(str long ptr) @ stdcall SetupUninstallOEMInfW(wstr long ptr) +@ stub SetupVerifyInfFileA +@ stub SetupVerifyInfFileW +@ stub SetupWriteTextLog +@ stub SetupWriteTextLogError +@ stub SetupWriteTextLogInfLine @ stub ShouldDeviceBeExcluded @ stdcall StampFileSecurity(wstr ptr) @ stdcall StringTableAddString(ptr wstr long) @@ -557,28 +662,71 @@ @ stdcall UnmapAndCloseFile(long long ptr) @ stub VerifyCatalogFile @ stub VerifyFile +@ stub pGetDriverPackageHash @ stub pSetupAccessRunOnceNodeList @ stub pSetupAddMiniIconToList @ stub pSetupAddTagToGroupOrderListEntry +@ stub pSetupAppendPath @ stub pSetupAppendStringToMultiSz +@ stub pSetupCaptureAndConvertAnsiArg +@ stub pSetupCenterWindowRelativeToParent +@ stub pSetupCloseTextLogSection +@ stub pSetupConcatenatePaths +@ stub pSetupCreateTextLogSectionA +@ stub pSetupCreateTextLogSectionW @ stub pSetupDestroyRunOnceNodeList +@ stub pSetupDiBuildInfoDataFromStrongName +@ stub pSetupDiCrimsonLogDeviceInstall +@ stub pSetupDiEnumSelectedDrivers +@ stub pSetupDiGetDriverInfoExtensionId +@ stub pSetupDiGetStrongNameForDriverNode +@ stub pSetupDiInvalidateHelperModules @ stub pSetupDirectoryIdToPath +@ stub pSetupDoLastKnownGoodBackup +@ stub pSetupDoesUserHavePrivilege +@ stub pSetupDuplicateString +@ stub pSetupEnablePrivilege @ stdcall pSetupFree(ptr) MyFree +@ stub pSetupGetCurrentDriverSigningPolicy +@ stub pSetupGetDriverDate +@ stub pSetupGetDriverVersion @ stdcall pSetupGetField(ptr long) +@ stub pSetupGetFileTitle @ stdcall pSetupGetGlobalFlags() +@ stub pSetupGetIndirectStringsFromDriverInfo +@ stub pSetupGetInfSections @ stub pSetupGetOsLoaderDriveAndPath @ stdcall pSetupGetQueueFlags(ptr) +@ stub pSetupGetRealSystemTime @ stub pSetupGetVersionDatum @ stub pSetupGuidFromString -@ stub pSetupIsGuidNull +@ stub pSetupHandleFailedVerification +@ stub pSetupInfGetDigitalSignatureInfo +@ stub pSetupInfIsInbox +@ stub pSetupInfSetDigitalSignatureInfo @ stdcall pSetupInstallCatalog(wstr wstr ptr) +@ stub pSetupIsBiDiLocalizedSystemEx +@ stub pSetupIsGuidNull +@ stub pSetupIsLocalSystem @ stdcall pSetupIsUserAdmin() IsUserAdmin +@ stub pSetupIsUserTrustedInstaller +@ stub pSetupLoadIndirectString @ stub pSetupMakeSurePathExists @ stdcall pSetupMalloc(long) MyMalloc +@ stub pSetupModifyGlobalFlags +@ stub pSetupMultiByteToUnicode +@ stub pSetupOpenAndMapFileForRead +@ stub pSetupOutOfMemory +@ stub pSetupQueryMultiSzValueToArray @ stdcall pSetupRealloc(ptr long) MyRealloc +@ stub pSetupRegistryDelnode +@ stub pSetupRetrieveServiceConfig +@ stub pSetupSetArrayToMultiSzValue +@ stub pSetupSetDriverPackageRestorePoint @ stdcall pSetupSetGlobalFlags(long) @ stdcall pSetupSetQueueFlags(ptr long) @ stub pSetupSetSystemSourceFlags +@ stub pSetupShouldDeviceBeExcluded @ stub pSetupStringFromGuid @ stdcall pSetupStringTableAddString(ptr wstr long) StringTableAddString @ stdcall pSetupStringTableAddStringEx(ptr wstr long ptr long) StringTableAddStringEx @@ -591,5 +739,13 @@ @ stdcall pSetupStringTableLookUpString(ptr wstr long) StringTableLookUpString @ stdcall pSetupStringTableLookUpStringEx(ptr wstr long ptr ptr) StringTableLookUpStringEx @ stdcall pSetupStringTableSetExtraData(ptr long ptr long) StringTableSetExtraData +@ stub pSetupStringTableStringFromId +@ stub pSetupStringTableStringFromIdEx +@ stub pSetupUnicodeToMultiByte +@ stub pSetupUninstallCatalog +@ stub pSetupUnmapAndCloseFile +@ stub pSetupValidateDriverPackage @ stub pSetupVerifyCatalogFile @ stub pSetupVerifyQueuedCatalogs +@ stub pSetupWriteLogEntry +@ stub pSetupWriteLogError