📄 setupapi.pas
字号:
SP_ENABLECLASS_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
ClassGuid: TGUID;
EnableMessage: DWORD;
end;
{$EXTERNALSYM SP_ENABLECLASS_PARAMS}
TSPEnableClassParams = SP_ENABLECLASS_PARAMS;
const
ENABLECLASS_QUERY = 0;
{$EXTERNALSYM ENABLECLASS_QUERY}
ENABLECLASS_SUCCESS = 1;
{$EXTERNALSYM ENABLECLASS_SUCCESS}
ENABLECLASS_FAILURE = 2;
{$EXTERNALSYM ENABLECLASS_FAILURE}
//
// Structure corresponding to a DIF_MOVEDEVICE install function.
//
type
PSPMoveDevParams = ^TSPMoveDevParams;
SP_MOVEDEV_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
SourceDeviceInfoData: TSPDevInfoData;
end;
{$EXTERNALSYM SP_MOVEDEV_PARAMS}
TSPMoveDevParams = SP_MOVEDEV_PARAMS;
//
// Values indicating a change in a device's state
//
const
DICS_ENABLE = $00000001;
{$EXTERNALSYM DICS_ENABLE}
DICS_DISABLE = $00000002;
{$EXTERNALSYM DICS_DISABLE}
DICS_PROPCHANGE = $00000003;
{$EXTERNALSYM DICS_PROPCHANGE}
DICS_START = $00000004;
{$EXTERNALSYM DICS_START}
DICS_STOP = $00000005;
{$EXTERNALSYM DICS_STOP}
//
// Values specifying the scope of a device property change
//
DICS_FLAG_GLOBAL = $00000001; // make change in all hardware profiles
{$EXTERNALSYM DICS_FLAG_GLOBAL}
DICS_FLAG_CONFIGSPECIFIC = $00000002; // make change in specified profile only
{$EXTERNALSYM DICS_FLAG_CONFIGSPECIFIC}
DICS_FLAG_CONFIGGENERAL = $00000004; // 1 or more hardware profile-specific
{$EXTERNALSYM DICS_FLAG_CONFIGGENERAL} // changes to follow.
//
// Structure corresponding to a DIF_PROPERTYCHANGE install function.
//
type
PSPPropChangeParams = ^TSPPropChangeParams;
SP_PROPCHANGE_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
StateChange: DWORD;
Scope: DWORD;
HwProfile: DWORD;
end;
{$EXTERNALSYM SP_PROPCHANGE_PARAMS}
TSPPropChangeParams = SP_PROPCHANGE_PARAMS;
//
// Structure corresponding to a DIF_REMOVE install function.
//
PSPRemoveDeviceParams = ^TSPRemoveDeviceParams;
SP_REMOVEDEVICE_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
Scope: DWORD;
HwProfile: DWORD;
end;
{$EXTERNALSYM SP_REMOVEDEVICE_PARAMS}
TSPRemoveDeviceParams = SP_REMOVEDEVICE_PARAMS;
const
DI_REMOVEDEVICE_GLOBAL = $00000001;
{$EXTERNALSYM DI_REMOVEDEVICE_GLOBAL}
DI_REMOVEDEVICE_CONFIGSPECIFIC = $00000002;
{$EXTERNALSYM DI_REMOVEDEVICE_CONFIGSPECIFIC}
//
// Structure corresponding to a DIF_UNREMOVE install function.
//
type
PSPUnremoveDeviceParams = ^TSPUnremoveDeviceParams;
SP_UNREMOVEDEVICE_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
Scope: DWORD;
HwProfile: DWORD;
end;
{$EXTERNALSYM SP_UNREMOVEDEVICE_PARAMS}
TSPUnremoveDeviceParams = SP_UNREMOVEDEVICE_PARAMS;
const
DI_UNREMOVEDEVICE_CONFIGSPECIFIC = $00000002;
{$EXTERNALSYM DI_UNREMOVEDEVICE_CONFIGSPECIFIC}
//
// Structure corresponding to a DIF_SELECTDEVICE install function.
//
type
PSPSelectDeviceParamsA = ^TSPSelectDeviceParamsA;
PSPSelectDeviceParamsW = ^TSPSelectDeviceParamsW;
PSPSelectDeviceParams = PSPSelectDeviceParamsA;
SP_SELECTDEVICE_PARAMS_A = packed record
ClassInstallHeader: TSPClassInstallHeader;
Title: array [0..MAX_TITLE_LEN - 1] of AnsiChar;
Instructions: array [0..MAX_INSTRUCTION_LEN - 1] of AnsiChar;
ListLabel: array [0..MAX_LABEL_LEN - 1] of AnsiChar;
SubTitle: array [0..MAX_SUBTITLE_LEN - 1] of AnsiChar;
Reserved: array [0..1] of Byte; // DWORD size alignment
end;
{$EXTERNALSYM SP_SELECTDEVICE_PARAMS_A}
SP_SELECTDEVICE_PARAMS_W = packed record
ClassInstallHeader: TSPClassInstallHeader;
Title: array [0..MAX_TITLE_LEN - 1] of WideChar;
Instructions: array [0..MAX_INSTRUCTION_LEN - 1] of WideChar;
ListLabel: array [0..MAX_LABEL_LEN - 1] of WideChar;
SubTitle: array [0..MAX_SUBTITLE_LEN - 1] of WideChar;
Reserved: array [0..1] of Byte; // DWORD size alignment
end;
{$EXTERNALSYM SP_SELECTDEVICE_PARAMS_W}
TSPSelectdeviceParamsA = SP_SELECTDEVICE_PARAMS_A;
TSPSelectdeviceParamsW = SP_SELECTDEVICE_PARAMS_W;
TSPSelectdeviceParams = TSPSelectdeviceParamsA;
//
// Callback routine for giving progress notification during detection
//
PDetectProgressNotify = function(ProgressNotifyParam: Pointer; DetectComplete: DWORD): BOOL; stdcall;
// where:
// ProgressNotifyParam - value supplied by caller requesting detection.
// DetectComplete - Percent completion, to be incremented by class
// installer, as it steps thru its detection.
//
// Return Value - If TRUE, then detection is cancelled. Allows caller
// requesting detection to stop detection asap.
//
//
// Structure corresponding to a DIF_DETECT install function.
//
PSPDetectDeviceParams = ^TSPDetectDeviceParams;
SP_DETECTDEVICE_PARAMS = packed record
ClassInstallHeader: TSPClassInstallHeader;
DetectProgressNotify: PDetectProgressNotify;
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:
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -