272 lines
5.7 KiB
C
272 lines
5.7 KiB
C
/*++
|
|
|
|
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_
|
|
|