📄 setupapi.pas
字号:
ProgressNotifyParam: Pointer;
end;
{$EXTERNALSYM SP_DETECTDEVICE_PARAMS}
TSPDetectDeviceParams = SP_DETECTDEVICE_PARAMS;
//
// 'Add New Device' installation wizard structure (backward-compatibility
// only--respond to DIF_NEWDEVICEWIZARD_* requests instead).
//
// Structure corresponding to a DIF_INSTALLWIZARD install function.
// (NOTE: This structure is also applicable for DIF_DESTROYWIZARDDATA,
// but DIF_INSTALLWIZARD is the associated function code in the class
// installation parameter structure in both cases.)
//
// Define maximum number of dynamic wizard pages that can be added to
// hardware install wizard.
//
const
MAX_INSTALLWIZARD_DYNAPAGES = 20;
{$EXTERNALSYM MAX_INSTALLWIZARD_DYNAPAGES}
type
PSPInstallWizardData = ^TSPInstallWizardData;
SP_INSTALLWIZARD_DATA = packed record
ClassInstallHeader: TSPClassInstallHeader;
Flags: DWORD;
DynamicPages: array [0..MAX_INSTALLWIZARD_DYNAPAGES - 1] of HPROPSHEETPAGE;
NumDynamicPages: DWORD;
DynamicPageFlags: DWORD;
PrivateFlags: DWORD;
PrivateData: LPARAM;
hwndWizardDlg: HWND;
end;
{$EXTERNALSYM SP_INSTALLWIZARD_DATA}
TSPInstallWizardData = SP_INSTALLWIZARD_DATA;
//
// SP_INSTALLWIZARD_DATA.Flags values
//
const
NDW_INSTALLFLAG_DIDFACTDEFS = $00000001;
{$EXTERNALSYM NDW_INSTALLFLAG_DIDFACTDEFS}
NDW_INSTALLFLAG_HARDWAREALLREADYIN = $00000002;
{$EXTERNALSYM NDW_INSTALLFLAG_HARDWAREALLREADYIN}
NDW_INSTALLFLAG_NEEDRESTART = DI_NEEDRESTART;
{$EXTERNALSYM NDW_INSTALLFLAG_NEEDRESTART}
NDW_INSTALLFLAG_NEEDREBOOT = DI_NEEDREBOOT;
{$EXTERNALSYM NDW_INSTALLFLAG_NEEDREBOOT}
NDW_INSTALLFLAG_NEEDSHUTDOWN = $00000200;
{$EXTERNALSYM NDW_INSTALLFLAG_NEEDSHUTDOWN}
NDW_INSTALLFLAG_EXPRESSINTRO = $00000400;
{$EXTERNALSYM NDW_INSTALLFLAG_EXPRESSINTRO}
NDW_INSTALLFLAG_SKIPISDEVINSTALLED = $00000800;
{$EXTERNALSYM NDW_INSTALLFLAG_SKIPISDEVINSTALLED}
NDW_INSTALLFLAG_NODETECTEDDEVS = $00001000;
{$EXTERNALSYM NDW_INSTALLFLAG_NODETECTEDDEVS}
NDW_INSTALLFLAG_INSTALLSPECIFIC = $00002000;
{$EXTERNALSYM NDW_INSTALLFLAG_INSTALLSPECIFIC}
NDW_INSTALLFLAG_SKIPCLASSLIST = $00004000;
{$EXTERNALSYM NDW_INSTALLFLAG_SKIPCLASSLIST}
NDW_INSTALLFLAG_CI_PICKED_OEM = $00008000;
{$EXTERNALSYM NDW_INSTALLFLAG_CI_PICKED_OEM}
NDW_INSTALLFLAG_PCMCIAMODE = $00010000;
{$EXTERNALSYM NDW_INSTALLFLAG_PCMCIAMODE}
NDW_INSTALLFLAG_PCMCIADEVICE = $00020000;
{$EXTERNALSYM NDW_INSTALLFLAG_PCMCIADEVICE}
NDW_INSTALLFLAG_USERCANCEL = $00040000;
{$EXTERNALSYM NDW_INSTALLFLAG_USERCANCEL}
NDW_INSTALLFLAG_KNOWNCLASS = $00080000;
{$EXTERNALSYM NDW_INSTALLFLAG_KNOWNCLASS}
//
// SP_INSTALLWIZARD_DATA.DynamicPageFlags values
//
// This flag is set if a Class installer has added pages to the install wizard.
//
DYNAWIZ_FLAG_PAGESADDED = $00000001;
{$EXTERNALSYM DYNAWIZ_FLAG_PAGESADDED}
//
// Set this flag if you jump to the analyze page, and want it to
// handle conflicts for you. NOTE. You will not get control back
// in the event of a conflict if you set this flag.
//
DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT = $00000008;
{$EXTERNALSYM DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT}
//
// The following flags are not used by the Windows NT hardware wizard.
//
DYNAWIZ_FLAG_INSTALLDET_NEXT = $00000002;
{$EXTERNALSYM DYNAWIZ_FLAG_INSTALLDET_NEXT}
DYNAWIZ_FLAG_INSTALLDET_PREV = $00000004;
{$EXTERNALSYM DYNAWIZ_FLAG_INSTALLDET_PREV}
//
// Reserve a range of wizard page resource IDs for internal use. Some of
// these IDs are for use by class installers that respond to the obsolete
// DIF_INSTALLWIZARD/DIF_DESTROYWIZARDDATA messages. These IDs are listed
// below.
//
MIN_IDD_DYNAWIZ_RESOURCE_ID = 10000;
{$EXTERNALSYM MIN_IDD_DYNAWIZ_RESOURCE_ID}
MAX_IDD_DYNAWIZ_RESOURCE_ID = 11000;
{$EXTERNALSYM MAX_IDD_DYNAWIZ_RESOURCE_ID}
//
// Define wizard page resource IDs to be used when adding custom pages to the
// hardware install wizard via DIF_INSTALLWIZARD. Pages marked with
// (CLASS INSTALLER PROVIDED) _must_ be supplied by the class installer if it
// responds to the DIF_INSTALLWIZARD request.
//
//
// Resource ID for the first page that the install wizard will go to after
// adding the class installer pages. (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_FIRSTPAGE = 10000;
{$EXTERNALSYM IDD_DYNAWIZ_FIRSTPAGE}
//
// Resource ID for the page that the Select Device page will go back to.
// (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_SELECT_PREVPAGE = 10001;
{$EXTERNALSYM IDD_DYNAWIZ_SELECT_PREVPAGE}
//
// Resource ID for the page that the Select Device page will go forward to.
// (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_SELECT_NEXTPAGE = 10002;
{$EXTERNALSYM IDD_DYNAWIZ_SELECT_NEXTPAGE}
//
// Resource ID for the page that the Analyze dialog should go back to
// This will only be used in the event that there is a problem, and the user
// selects Back from the analyze proc. (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_ANALYZE_PREVPAGE = 10003;
{$EXTERNALSYM IDD_DYNAWIZ_ANALYZE_PREVPAGE}
//
// Resource ID for the page that the Analyze dialog should go to if it
// continues from the analyze proc. (CLASS INSTALLER PROVIDED)
//
IDD_DYNAWIZ_ANALYZE_NEXTPAGE = 10004;
{$EXTERNALSYM IDD_DYNAWIZ_ANALYZE_NEXTPAGE}
//
// Resource ID of the hardware install wizard's select device page.
// This ID can be used to go directly to the hardware install wizard's select
// device page. (This is the resource ID of the Select Device wizard page
// retrieved via SetupDiGetWizardPage when SPWPT_SELECTDEVICE is the requested
// PageType.)
//
IDD_DYNAWIZ_SELECTDEV_PAGE = 10009;
{$EXTERNALSYM IDD_DYNAWIZ_SELECTDEV_PAGE}
//
// Resource ID of the hardware install wizard's device analysis page.
// This ID can be use to go directly to the hardware install wizard's analysis
// page.
//
IDD_DYNAWIZ_ANALYZEDEV_PAGE = 10010;
{$EXTERNALSYM IDD_DYNAWIZ_ANALYZEDEV_PAGE}
//
// Resource ID of the hardware install wizard's install detected devices page.
// This ID can be use to go directly to the hardware install wizard's install
// detected devices page.
//
IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE = 10011;
{$EXTERNALSYM IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE}
//
// Resource ID of the hardware install wizard's select class page.
// This ID can be use to go directly to the hardware install wizard's select
// class page.
//
IDD_DYNAWIZ_SELECTCLASS_PAGE = 10012;
{$EXTERNALSYM IDD_DYNAWIZ_SELECTCLASS_PAGE}
//
// The following class installer-provided wizard page resource IDs are not used
// by the Windows NT hardware wizard.
//
IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE = 10006;
{$EXTERNALSYM IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE}
IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE = 10007;
{$EXTERNALSYM IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE}
IDD_DYNAWIZ_INSTALLDETECTED_NODEVS = 10008;
{$EXTERNALSYM IDD_DYNAWIZ_INSTALLDETECTED_NODEVS}
//
// Structure corresponding to the following DIF_NEWDEVICEWIZARD_* install
// functions:
//
// DIF_NEWDEVICEWIZARD_PRESELECT
// DIF_NEWDEVICEWIZARD_SELECT
// DIF_NEWDEVICEWIZARD_PREANALYZE
// DIF_NEWDEVICEWIZARD_POSTANALYZE
// DIF_NEWDEVICEWIZARD_FINISHINSTALL
//
type
PSPNewDeviceWizardData = ^TSPNewDeviceWizardData;
SP_NEWDEVICEWIZARD_DATA = packed record
ClassInstallHeader: TSPClassInstallHeader;
Flags: DWORD; // presently unused--must be zero.
DynamicPages: array [0..MAX_INSTALLWIZARD_DYNAPAGES - 1] of HPROPSHEETPAGE;
NumDynamicPages: DWORD;
hwndWizardDlg: HWND;
end;
{$EXTERNALSYM SP_NEWDEVICEWIZARD_DATA}
TSPNewDeviceWizardData = SP_NEWDEVICEWIZARD_DATA;
//
// Structure corresponding to the DIF_TROUBLESHOOTER install function
//
PSPTroubleShooterParamsA = ^TSPTroubleShooterParamsA;
PSPTroubleShooterParamsW = ^TSPTroubleShooterParamsW;
SP_TROUBLESHOOTER_PARAMS_A = packed record
ClassInstallHeader: TSPClassInstallHeader;
ChmFile: array [0..MAX_PATH - 1] of AnsiChar;
HtmlTroubleShooter: array [0..MAX_PATH - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_TROUBLESHOOTER_PARAMS_A}
SP_TROUBLESHOOTER_PARAMS_W = packed record
ClassInstallHeader: TSPClassInstallHeader;
ChmFile: array [0..MAX_PATH - 1] of WideChar;
HtmlTroubleShooter: array [0..MAX_PATH - 1] of WideChar;
end;
{$EXTERNALSYM SP_TROUBLESHOOTER_PARAMS_W}
TSPTroubleShooterParamsA = SP_TROUBLESHOOTER_PARAMS_A;
TSPTroubleShooterParamsW = SP_TROUBLESHOOTER_PARAMS_W;
{$IFDEF UNICODE}
TSPTroubleShooterParams = TSPTroubleShooterParamsW;
PSPTroubleShooterParams = PSPTroubleShooterParamsW;
{$ELSE}
TSPTroubleShooterParams = TSPTroubleShooterParamsA;
PSPTroubleShooterParams = PSPTroubleShooterParamsA;
{$ENDIF UNICODE}
//
// Structure corresponding to the DIF_POWERMESSAGEWAKE install function
//
PSPPowerMessageWakeParamsA = ^TSPPowerMessageWakeParamsA;
PSPPowerMessageWakeParamsW = ^TSPPowerMessageWakeParamsW;
SP_POWERMESSAGEWAKE_PARAMS_A = packed record
ClassInstallHeader: TSPClassInstallHeader;
PowerMessageWake: array [0..(LINE_LEN * 2) - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_POWERMESSAGEWAKE_PARAMS_A}
SP_POWERMESSAGEWAKE_PARAMS_W = packed record
ClassInstallHeader: TSPClassInstallHeader;
PowerMessageWake: array [0..(LINE_LEN * 2) - 1] of WideChar;
end;
{$EXTERNALSYM SP_POWERMESSAGEWAKE_PARAMS_W}
TSPPowerMessageWakeParamsA = SP_POWERMESSAGEWAKE_PARAMS_A;
TSPPowerMessageWakeParamsW = SP_POWERMESSAGEWAKE_PARAMS_W;
{$IFDEF UNICODE}
TSPPowerMessageWakeParams = TSPPowerMessageWakeParamsW;
PSPPowerMessageWakeParams = PSPPowerMessageWakeParamsW;
{$ELSE}
TSPPowerMessageWakeParams = TSPPowerMessageWakeParamsA;
PSPPowerMessageWakeParams = PSPPowerMessageWakeParamsA;
{$ENDIF UNICODE}
//
// Driver information structure (member of a driver info list that may be associated
// with a particular device instance, or (globally) with a device information set)
//
PSPDrvInfoDataV2A = ^TSPDrvInfoDataV2A;
PSPDrvInfoDataV2W = ^TSPDrvInfoDataV2W;
SP_DRVINFO_DATA_V2_A = packed record
cbSize: DWORD;
DriverType: DWORD;
Reserved: ULONG_PTR;
Description: array [0..LINE_LEN - 1] of AnsiChar;
MfgName: array [0..LINE_LEN - 1] of AnsiChar;
ProviderName: array [0..LINE_LEN - 1] of AnsiChar;
DriverDate: TFileTime;
DriverVersion: Int64;
end;
{$EXTERNALSYM SP_DRVINFO_DATA_V2_A}
SP_DRVINFO_DATA_V2_W = packed record
cbSize: DWORD;
DriverType: DWORD;
Reserved: ULONG_PTR;
Description: array [0..LINE_LEN - 1] of WideChar;
MfgName: array [0..LINE_LEN - 1] of WideChar;
ProviderName: array [0..LINE_LEN - 1] of WideChar;
DriverDate: TFileTime;
DriverVersion: Int64;
end;
{$EXTERNALSYM SP_DRVINFO_DATA_V2_W}
TSPDrvInfoDataV2A = SP_DRVINFO_DATA_V2_A;
TSPDrvInfoDataV2W = SP_DRVINFO_DATA_V2_W;
{$IFDEF UNICODE}
TSPDrvInfoDataV2 = TSPDrvInfoDataV2W;
PSPDrvInfoDataV2 = PSPDrvInfoDataV2W;
{$ELSE}
TSPDrvInfoDataV2 = TSPDrvInfoDataV2A;
PSPDrvInfoDataV2 = PSPDrvInfoDataV2A;
{$ENDIF UNICODE}
//
// Version 1 of the SP_DRVINFO_DATA structures, used only for compatibility
// with Windows NT 4.0/Windows 95/98 SETUPAPI.DLL
//
PSPDrvInfoDataV1A = ^TSPDrvInfoDataV1A;
PSPDrvInfoDataV1W = ^TSPDrvInfoDataV1W;
SP_DRVINFO_DATA_V1_A = packed record
cbSize: DWORD;
DriverType: DWORD;
Reserved: ULONG_PTR;
Description: array [0..LINE_LEN - 1] of AnsiChar;
MfgName: array [0..LINE_LEN - 1] of AnsiChar;
ProviderName: array [0..LINE_LEN - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_DRVINFO_DATA_V1_A}
SP_DRVINFO_DATA_V1_W = packed record
cbSize: DWORD;
DriverType: DWORD;
Reserved: ULONG_PTR;
Description: array [0..LINE_LEN - 1] of WideChar;
MfgName: array [0..LINE_LEN - 1] of WideChar;
ProviderName: array [0..LINE_LEN - 1] of WideChar;
end;
{$EXTERNALSYM SP_DRVINFO_DATA_V1_W}
TSPDrvInfoDataV1A = SP_DRVINFO_DATA_V1_A;
TSPDrvInfoDataV1W = SP_DRVINFO_DATA_V1_W;
{$IFDEF UNICODE}
TSPDrvInfoDataV1 = TSPDrvInfoDataV1W;
PSPDrvInfoDataV1 = PSPDrvInfoDataV1W;
{$ELSE}
TSPDrvInfoDataV1 = TSPDrvInfoDataV1A;
PSPDrvInfoDataV1 = PSPDrvInfoDataV1A;
{$ENDIF UNICODE}
{$IFDEF WIN2000_UP}
TSPDrvInfoDataA = TSPDrvInfoDataV2A;
TSPDrvInfoDataW = TSPDrvInfoDataV2W;
PSPDrvInfoDataA = PSPDrvInfoDataV2A;
PSPDrvInfoDataW = PSPDrvInfoDataV2W;
{$IFDEF UNICODE}
TSPDrvInfoData = TSPDrvInfoDataW;
PSPDrvInfoData = PSPDrvInfoDataW;
{$ELSE}
TSPDrvInfoData = TSPDrvInfoDataA;
PSPDrvInfoData = PSPDrvInfoDataA;
{$ENDIF UNICODE}
{$ELSE}
TSPDrvInfoDataA = TSPDrvInfoDataV1A;
TSPDrvInfoDataW = TSPDrvInfoDataV1W;
PSPDrvInfoDataA = PSPDrvInfoDataV1A;
PSPDrvInfoDataW = PSPDrvInfoDataV1W;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -