[NTOSKRNL] Drop the useless Timestamp field
[reactos.git] / dll / win32 / setupapi / setupapi_private.h
index a8aa591..63c3918 100644 (file)
 #ifndef __SETUPAPI_PRIVATE_H
 #define __SETUPAPI_PRIVATE_H
 
-#include <assert.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <share.h>
 #include <wchar.h>
 
 #define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
 #define COBJMACROS
-#include <windows.h>
-#include <aclapi.h>
+
+#include <windef.h>
+#include <winbase.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 <fdi.h>
-#include <reason.h>
 #include <regstr.h>
 #include <sddl.h>
 #include <setupapi.h>
+#include <softpub.h>
+#include <mscat.h>
+#include <lzexpand.h>
 #include <shlobj.h>
-#include <wine/debug.h>
 #include <wine/unicode.h>
 #define NTOS_MODE_USER
-#include <ndk/cmfuncs.h>
-#include <ndk/obfuncs.h>
 #include <ndk/rtlfuncs.h>
 
-#include <pseh/pseh2.h>
-
-#include <pnp_c.h>
-#include "rpc_private.h"
-#include "resource.h"
+#include <wine/debug.h>
+WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
 
 #ifdef __REACTOS__
 #undef __WINESRC__
 #endif
 
+#include "resource.h"
+
 #define SETUP_DEVICE_INFO_SET_MAGIC 0xd00ff057
 #define SETUP_CLASS_IMAGE_LIST_MAGIC 0xd00ff058
 
@@ -174,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];
 };
@@ -202,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 */
@@ -233,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"
@@ -255,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 */
 
@@ -277,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
@@ -296,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 *