From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- public/sdk/inc/syssetup.h | 271 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 public/sdk/inc/syssetup.h (limited to 'public/sdk/inc/syssetup.h') diff --git a/public/sdk/inc/syssetup.h b/public/sdk/inc/syssetup.h new file mode 100644 index 000000000..9789d02c2 --- /dev/null +++ b/public/sdk/inc/syssetup.h @@ -0,0 +1,271 @@ +/*++ + +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_ + -- cgit v1.2.3