[NTOSKRNL] Drop the useless Timestamp field
[reactos.git] / dll / win32 / setupapi / setupapi_private.h
index 21ff8b6..63c3918 100644 (file)
 
 #include <windef.h>
 #include <winbase.h>
-#include <winreg.h>
+#include <winuser.h>
 #include <wingdi.h>
+#include <winreg.h>
 #include <winspool.h>
 #include <wincon.h>
+
+#include <commdlg.h>
+
 #include <objbase.h>
 #include <cfgmgr32.h>
 #include <regstr.h>
@@ -41,6 +45,7 @@
 #include <setupapi.h>
 #include <softpub.h>
 #include <mscat.h>
+#include <lzexpand.h>
 #include <shlobj.h>
 #include <wine/unicode.h>
 #define NTOS_MODE_USER
@@ -53,6 +58,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
 #undef __WINESRC__
 #endif
 
+#include "resource.h"
+
 #define SETUP_DEVICE_INFO_SET_MAGIC 0xd00ff057
 #define SETUP_CLASS_IMAGE_LIST_MAGIC 0xd00ff058
 
@@ -172,6 +179,10 @@ struct DeviceInfo /* Element of DeviceInfoSet.ListHead */
     /* Used by SetupDiGetClassInstallParamsW/SetupDiSetClassInstallParamsW */
     struct ClassInstallParams ClassInstallParams;
 
+    /* Device property page provider data */
+    HMODULE hmodDevicePropPageProvider;
+    PVOID pDevicePropPageProvider;
+
     /* Variable size array (contains data for instanceId, UniqueId, DeviceDescription) */
     WCHAR Data[ANYSIZE_ARRAY];
 };
@@ -200,6 +211,10 @@ struct DeviceInfoSet /* HDEVINFO */
     /* Used by SetupDiGetClassInstallParamsW/SetupDiSetClassInstallParamsW */
     struct ClassInstallParams ClassInstallParams;
 
+    /* Class property page provider data */
+    HMODULE hmodClassPropPageProvider;
+    PVOID pClassPropPageProvider;
+
     /* Contains the name of the remote computer ('\\COMPUTERNAME' for example),
      * or NULL if related to local machine. Points into szData field at the
      * end of the structure */
@@ -231,6 +246,16 @@ struct FileLog /* HSPFILELOG */
 };
 
 extern HINSTANCE hInstance;
+extern OSVERSIONINFOEXW OsVersionInfo;
+
+/*
+ * See: https://msdn.microsoft.com/en-us/library/bb432397(v=vs.85).aspx
+ * for more information.
+ */
+extern DWORD GlobalSetupFlags;
+#define PSPGF_NO_BACKUP         0x0002
+#define PSPGF_NONINTERACTIVE    0x0004
+
 #define RC_STRING_MAX_SIZE 256
 
 #define REG_INSTALLEDFILES "System\\CurrentControlSet\\Control\\InstalledFiles"
@@ -253,13 +278,9 @@ inline static WCHAR *strdupAtoW( const char *str )
 
 struct inf_file;
 extern const WCHAR *DIRID_get_string( int dirid );
-extern unsigned int PARSER_string_substA( const struct inf_file *file, const WCHAR *text,
-                                          char *buffer, unsigned int size );
-extern unsigned int PARSER_string_substW( const struct inf_file *file, const WCHAR *text,
-                                          WCHAR *buffer, unsigned int size );
-extern const WCHAR *PARSER_get_inf_filename( HINF hinf );
-extern WCHAR *PARSER_get_src_root( HINF hinf );
-extern WCHAR *PARSER_get_dest_dir( INFCONTEXT *context );
+extern const WCHAR *PARSER_get_inf_filename( HINF hinf ) DECLSPEC_HIDDEN;
+extern WCHAR *PARSER_get_src_root( HINF hinf ) DECLSPEC_HIDDEN;
+extern WCHAR *PARSER_get_dest_dir( INFCONTEXT *context ) DECLSPEC_HIDDEN;
 
 /* support for Ascii queue callback functions */
 
@@ -275,9 +296,6 @@ UINT CALLBACK QUEUE_callback_WtoA( void *context, UINT notification, UINT_PTR, U
 #define _S_IWRITE 0x0080
 #define _S_IREAD  0x0100
 
-extern HINSTANCE hInstance;
-extern OSVERSIONINFOW OsVersionInfo;
-
 /* devinst.c */
 
 BOOL
@@ -294,6 +312,11 @@ SETUP_CreateDevicesList(
     IN CONST GUID *Class OPTIONAL,
     IN PCWSTR Enumerator OPTIONAL);
 
+HKEY SETUPDI_CreateDevKey(HKEY RootKey, struct DeviceInfo *devInfo, REGSAM samDesired);
+HKEY SETUPDI_CreateDrvKey(HKEY RootKey, struct DeviceInfo *devInfo, UUID *ClassGuid, REGSAM samDesired);
+HKEY SETUPDI_OpenDevKey(HKEY RootKey, struct DeviceInfo *devInfo, REGSAM samDesired);
+HKEY SETUPDI_OpenDrvKey(HKEY RootKey, struct DeviceInfo *devInfo, REGSAM samDesired);
+
 /* driver.c */
 
 struct InfFileDetails *