diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index 36261036bd131c25d3a77e15dd4f0636805d635c..800ea229f8e6b4b4ba5792deb5c68682d2c52659 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -22,6 +22,7 @@
 #include "winbase.h"
 #include "setupx16.h"
 #include "wine/debug.h"
+#include "setupapi.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
 
@@ -42,3 +43,86 @@ RETERR16 WINAPI DiGetClassDevs16(LPLPDEVICE_INFO16 lplpdi,
     *lplpdi = lpdi;
     return OK;
 }
+
+BOOL WINAPI SetupDiGetDeviceInterfaceDetailA(
+      HDEVINFO DeviceInfoSet,
+      PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
+      PSP_DEVICE_INTERFACE_DETAIL_DATAA DeviceInterfaceDetailData, 
+      DWORD DeviceInterfaceDetailDataSize,
+      PDWORD RequiredSize, 
+      PSP_DEVINFO_DATA DeviceInfoData )
+{
+    FIXME("\n");
+    return FALSE;
+}
+
+BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(
+      HDEVINFO DeviceInfoSet,
+      PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
+      PSP_DEVICE_INTERFACE_DETAIL_DATAW DeviceInterfaceDetailData, 
+      DWORD DeviceInterfaceDetailDataSize,
+      PDWORD RequiredSize, 
+      PSP_DEVINFO_DATA DeviceInfoData )
+{
+    FIXME("\n");
+    return FALSE;
+}
+
+BOOL WINAPI SetupDiEnumDeviceInterfaces(
+       HDEVINFO DeviceInfoSet,
+       PSP_DEVINFO_DATA DeviceInfoData, 
+       CONST GUID * InterfaceClassGuid,
+       DWORD MemberIndex,
+       PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData)
+{
+    FIXME("\n");
+    return FALSE;
+}
+
+HDEVINFO WINAPI SetupDiGetClassDevsA(
+       CONST GUID *class,
+       LPCSTR enumstr,
+       HWND parent,
+       DWORD flags)
+{
+    FIXME("%s %s %04x %08lx\n",debugstr_guid(class),enumstr,parent,flags);
+
+    return NULL;
+}
+
+BOOL WINAPI SetupDiEnumDeviceInfo(
+        HDEVINFO  devinfo,
+        DWORD  index,
+        PSP_DEVINFO_DATA info)
+{
+    FIXME("%p %ld %p\n", devinfo, index, info );
+
+    if(info==NULL)
+        return FALSE;
+    if(info->cbSize < sizeof *info)
+        return FALSE;
+
+    return FALSE;
+}
+
+BOOL WINAPI SetupDiDestroyDeviceInfoList( HDEVINFO devinfo )
+{
+    FIXME("%04lx\n", (DWORD)devinfo);
+    return FALSE;
+}
+
+BOOL WINAPI SetupDiGetDeviceRegistryPropertyA(
+        HDEVINFO  devinfo,
+        PSP_DEVINFO_DATA  DeviceInfoData,
+        DWORD   Property,
+        PDWORD  PropertyRegDataType,
+        PBYTE   PropertyBuffer,
+        DWORD   PropertyBufferSize,
+        PDWORD  RequiredSize)
+{
+    FIXME("%04lx %p %ld %p %p %ld %p\n", (DWORD)devinfo, DeviceInfoData, 
+        Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize,
+        RequiredSize);
+    return FALSE;
+}
+
diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec
index f332050cfb0b87ddd0aa81c9f26eb2b9966181c7..42234f5b43d3bcc9a5ba5fbb4049dab789f417b5 100644
--- a/dlls/setupapi/setupapi.spec
+++ b/dlls/setupapi/setupapi.spec
@@ -90,10 +90,11 @@ name setupapi
 @ stub SetupDiDeleteDevRegKey
 @ stub SetupDiDeleteDeviceInfo
 @ stub SetupDiDestroyClassImageList
-@ stub SetupDiDestroyDeviceInfoList
+@ stdcall SetupDiDestroyDeviceInfoList(long) SetupDiDestroyDeviceInfoList
 @ stub SetupDiDestroyDriverInfoList
 @ stub SetupDiDrawMiniIcon
-@ stub SetupDiEnumDeviceInfo
+@ stdcall SetupDiEnumDeviceInfo(long long ptr) SetupDiEnumDeviceInfo
+@ stdcall SetupDiEnumDeviceInterfaces(long ptr ptr long ptr) SetupDiEnumDeviceInterfaces
 @ stub SetupDiEnumDriverInfoA
 @ stub SetupDiEnumDriverInfoW
 @ stub SetupDiGetActualSectionToInstallA
@@ -103,7 +104,7 @@ name setupapi
 @ stub SetupDiGetClassDescriptionW
 @ stub SetupDiGetClassDevPropertySheetsA
 @ stub SetupDiGetClassDevPropertySheetsW
-@ stub SetupDiGetClassDevsA
+@ stdcall SetupDiGetClassDevsA(ptr ptr long long) SetupDiGetClassDevsA
 @ stub SetupDiGetClassDevsW
 @ stub SetupDiGetClassImageIndex
 @ stub SetupDiGetClassImageList
@@ -114,12 +115,15 @@ name setupapi
 @ stub SetupDiGetDeviceInstallParamsW
 @ stub SetupDiGetDeviceInstanceIdA
 @ stub SetupDiGetDeviceInstanceIdW
-@ stub SetupDiGetDeviceRegistryPropertyA
+@ stdcall SetupDiGetDeviceRegistryPropertyA(long ptr long ptr ptr long ptr) SetupDiGetDeviceRegistryPropertyA
 @ stub SetupDiGetDeviceRegistryPropertyW
 @ stub SetupDiGetDriverInfoDetailA
 @ stub SetupDiGetDriverInfoDetailW
 @ stub SetupDiGetDriverInstallParamsA
 @ stub SetupDiGetDriverInstallParamsW
+@ stub SetupDiGetDeviceInterfaceAlias
+@ stdcall SetupDiGetDeviceInterfaceDetailA(long ptr ptr long ptr ptr) SetupDiGetDeviceInterfaceDetailA
+@ stdcall SetupDiGetDeviceInterfaceDetailW(long ptr ptr long ptr ptr) SetupDiGetDeviceInterfaceDetailW
 @ stub SetupDiGetHwProfileFriendlyNameA
 @ stub SetupDiGetHwProfileFriendlyNameW
 @ stub SetupDiGetHwProfileList
diff --git a/include/setupapi.h b/include/setupapi.h
index df3de2218a80eb52069a74fd897cbdbe6b4668c0..0d533a42fc5e3c0a93f556a63131c8cfa42a4687 100644
--- a/include/setupapi.h
+++ b/include/setupapi.h
@@ -130,6 +130,29 @@ typedef struct _SP_DEVINFO_DATA
    DWORD Reserved;
 } SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;
 
+typedef struct _SP_DEVICE_INTERFACE_DATA
+{
+   DWORD      cbSize;
+   GUID       InterfaceClassGuid;
+   DWORD      Flags;
+   ULONG_PTR  Reserved;
+} SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA;
+
+typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATAA
+{
+   DWORD      cbSize;
+   CHAR       DevicePath[ANYSIZE_ARRAY];
+} SP_DEVICE_INTERFACE_DETAIL_DATAA, *PSP_DEVICE_INTERFACE_DETAIL_DATAA;
+
+typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATAW
+{
+   DWORD      cbSize;
+   WCHAR      DevicePath[ANYSIZE_ARRAY];
+} SP_DEVICE_INTERFACE_DETAIL_DATAW, *PSP_DEVICE_INTERFACE_DETAIL_DATAW;
+
+DECL_WINELIB_TYPE_AW(SP_DEVICE_INTERFACE_DETAIL_DATA)
+DECL_WINELIB_TYPE_AW(PSP_DEVICE_INTERFACE_DETAIL_DATA)
+
 #define INF_STYLE_NONE           0x00
 #define INF_STYLE_OLDNT          0x01
 #define INF_STYLE_WIN4           0x02