/*++ Copyright (c) 1995 Microsoft Corporation Module Name: syssetup.h Abstract: Header file for internal-use routines exported from syssetup.dll. To use this file your code must #include setupapi.h first. Author: Ted Miller (tedm) 15-Aug-1995 Revision History: --*/ #ifndef _WINNT_SYSSETUP_ #define _WINNT_SYSSETUP_ DWORD SetupChangeLocale( IN HWND Window, IN LCID NewLocale ); DWORD SetupChangeFontSize( IN HWND Window, IN PCWSTR SizeSpec ); DWORD ApplyAcls( IN HWND OwnerWindow, IN PCWSTR PermissionsInfFileName, IN DWORD Flags, IN PVOID Reserved ); BOOL SetupCreateOptionalComponentsPage( IN LPFNADDPROPSHEETPAGE AddPageCallback, IN LPARAM Context ); // // Define structure used by base and net setups to communicate // with each other. // typedef struct _INTERNAL_SETUP_DATA { // // Structure validity test // DWORD dwSizeOf; // // Custom, typical, laptop, minimal // DWORD SetupMode; // // Workstation, pdc, bdc, standalone // DWORD ProductType; // // Upgrade, unattended, etc. // DWORD OperationFlags; // // Title net setup wizard is supposed to use. // PCWSTR WizardTitle; // // Installation source path. // PCWSTR SourcePath; // // If SETUPOPER_BATCH is set, this is the fully qualified // path of the unattend file. // PCWSTR UnattendFile; // // Installation source path to be used by legacy infs, etc. // This path has the platform-specific dir stuck on the end // because that's the way old-style infs and code expected it. // PCWSTR LegacySourcePath; // // The following generic data fields contain information that is // specific to the particular callout being made by Windows NT // Setup. // DWORD CallSpecificData1; DWORD CallSpecificData2; } INTERNAL_SETUP_DATA, *PINTERNAL_SETUP_DATA; typedef CONST INTERNAL_SETUP_DATA *PCINTERNAL_SETUP_DATA; // // Setup mode (custom, typical, laptop, etc) // Do not change these values; the bit values are used with infs. // Used for SetupMode in INTERNAL_SETUP_DATA structure. // #define SETUPMODE_MINIMAL 0 #define SETUPMODE_TYPICAL 1 #define SETUPMODE_LAPTOP 2 #define SETUPMODE_CUSTOM 3 // // Operation flags. These may be or'ed together in some cases. // Used for OperationFlags in INTERNAL_SETUP_DATA structure. // #define SETUPOPER_WIN31UPGRADE 0x00000001 #define SETUPOPER_WIN95UPGRADE 0x00000002 #define SETUPOPER_NTUPGRADE 0x00000004 #define SETUPOPER_BATCH 0x00000008 #define SETUPOPER_POSTSYSINSTALL 0x00000010 #define SETUPOPER_ALLPLATFORM_AVAIL 0x00008000 #define SETUPOPER_NETINSTALLED 0x00010000 #define SETUPOPER_INTERNETSERVER 0x00020000 // // Product type flags. // Used for ProductType in INTERNAL_SETUP_DATA structure. // // Note that the flags are carefully constructed such that // if bit 0 is set, it's a DC. // #define PRODUCT_WORKSTATION 0 #define PRODUCT_SERVER_PRIMARY 1 #define PRODUCT_SERVER_SECONDARY 3 #define PRODUCT_SERVER_STANDALONE 2 #define ISDC(x) ((x) & 1) // // Maximum number of net setup wizard pages. // #define MAX_NETWIZ_PAGES 25 // // API exported by net setup to give its wizard pages. // BOOL NetSetupRequestWizardPages( OUT HPROPSHEETPAGE *Pages, IN OUT PUINT PageCount, IN OUT PINTERNAL_SETUP_DATA SetupData ); #define NETSETUPPAGEREQUESTPROCNAME "NetSetupRequestWizardPages" typedef BOOL (* NETSETUPPAGEREQUESTPROC) ( OUT HPROPSHEETPAGE *Pages, OUT PUINT PageCount, IN OUT PINTERNAL_SETUP_DATA SetupData ); // // API exported by net setup to allow post wizard software install // BOOL NetSetupInstallSoftware( IN HWND Window, IN OUT PINTERNAL_SETUP_DATA SetupData ); #define NETSETUPINSTALLSOFTWAREPROCNAME "NetSetupInstallSoftware" typedef BOOL (* NETSETUPINSTALLSOFTWAREPROC) ( IN HWND Window, IN OUT PINTERNAL_SETUP_DATA SetupData ); // // API exported by net setup to allow final setup operations (BDC replication) // BOOL NetSetupFinishInstall( IN HWND Window, IN OUT PINTERNAL_SETUP_DATA SetupData ); #define NETSETUPFINISHINSTALLPROCNAME "NetSetupFinishInstall" typedef BOOL (* NETSETUPFINISHINSTALLPROC) ( IN HWND Window, IN OUT PINTERNAL_SETUP_DATA SetupData ); // // API exported by printer setup to upgrade printer drivers // DWORD NtPrintUpgradePrinters( IN HWND Window, IN PCINTERNAL_SETUP_DATA SetupData ); #define UPGRADEPRINTERSPROCNAME ((LPCSTR)1) typedef DWORD (* UPGRADEPRINTERSPROC) ( IN HWND Window, IN PCINTERNAL_SETUP_DATA SetupData ); // // Miscellaneous device installation 'helper' routines // DWORD GenerateScsiHwIdList( IN PVOID ScsiPeripheralClassGuid, // this is actually an LPGUID IN LPCWSTR ScsiMfg, IN LPCWSTR ScsiProductId, IN LPCWSTR ScsiRevisionLevel, OUT LPWSTR HwIdList, OPTIONAL IN DWORD HwIdListSize, OUT PDWORD RequiredSize OPTIONAL ); // // Private device installer function codes for SCSI and TAPE // #define SCSIDIF_CREATEDEVICE 0x00010000 #define TAPEDIF_CREATEDEVICE 0x00010000 // // Define structure passed in via ClassInstallReserved field for the above function codes. // typedef struct _SCSIDEV_CREATEDEVICE_DATA { BOOL AlreadyExists; // // Following 3 fields only used for TapeDrive devices. // PCWSTR ScsiMfg; PCWSTR ScsiProductId; PCWSTR ScsiRevisionLevel; } SCSIDEV_CREATEDEVICE_DATA, *PSCSIDEV_CREATEDEVICE_DATA; #endif // def _WINNT_SYSSETUP_