1 // Copyright © 2015, skdltmxn 2 // Licensed under the MIT License <LICENSE.md> 3 //! Windows NT Setup and Device Installer services 4 pub const LINE_LEN: usize = 256; 5 pub const MAX_INF_STRING_LENGTH: usize = 4096; 6 pub const MAX_INF_SECTION_NAME_LENGTH: usize = 255; 7 pub const MAX_TITLE_LEN: usize = 60; 8 pub const MAX_INSTRUCTION_LEN: usize = 256; 9 pub const MAX_LABEL_LEN: usize = 30; 10 pub const MAX_SERVICE_NAME_LEN: usize = 256; 11 pub const MAX_SUBTITLE_LEN: usize = 256; 12 pub const SP_MAX_MACHINENAME_LENGTH: usize = ::MAX_PATH + 3; 13 pub type HINF = ::PVOID; 14 STRUCT!{struct INFCONTEXT { 15 Inf: ::PVOID, 16 CurrentInf: ::PVOID, 17 Section: ::UINT, 18 Line: ::UINT, 19 }} 20 pub type PINFCONTEXT = *mut INFCONTEXT; 21 STRUCT!{struct SP_INF_INFORMATION { 22 InfStyle: ::DWORD, 23 InfCount: ::DWORD, 24 VersionData: [::BYTE; ::ANYSIZE_ARRAY], 25 }} 26 pub type PSP_INF_INFORMATION = *mut SP_INF_INFORMATION; 27 STRUCT!{struct SP_ALTPLATFORM_INFO_V2 { 28 cbSize: ::DWORD, 29 Platform: ::DWORD, 30 MajorVersion: ::DWORD, 31 MinorVersion: ::DWORD, 32 ProcessorArchitecture: ::WORD, 33 Reserved: ::WORD, 34 FirstValidatedMajorVersion: ::DWORD, 35 FirstValidatedMinorVersion: ::DWORD, 36 }} 37 UNION!(SP_ALTPLATFORM_INFO_V2, Reserved, Flags, Flags_mut, ::WORD); 38 pub type PSP_ALTPLATFORM_INFO_V2 = *mut SP_ALTPLATFORM_INFO_V2; 39 STRUCT!{struct SP_ALTPLATFORM_INFO_V1 { 40 cbSize: ::DWORD, 41 Platform: ::DWORD, 42 MajorVersion: ::DWORD, 43 MinorVersion: ::DWORD, 44 ProcessorArchitecture: ::WORD, 45 Reserved: ::WORD, 46 }} 47 pub type PSP_ALTPLATFORM_INFO_V1 = *mut SP_ALTPLATFORM_INFO_V1; 48 pub type SP_ALTPLATFORM_INFO = SP_ALTPLATFORM_INFO_V2; 49 pub type PSP_ALTPLATFORM_INFO = PSP_ALTPLATFORM_INFO_V2; 50 pub const SP_ALTPLATFORM_FLAGS_VERSION_RANGE: ::WORD = 0x0001; 51 STRUCT!{nodebug struct SP_ORIGINAL_FILE_INFO_A { 52 cbSize: ::DWORD, 53 OriginalInfName: [::CHAR; ::MAX_PATH], 54 OriginalCatalogName: [::CHAR; ::MAX_PATH], 55 }} 56 pub type PSP_ORIGINAL_FILE_INFO_A = *mut SP_ORIGINAL_FILE_INFO_A; 57 STRUCT!{nodebug struct SP_ORIGINAL_FILE_INFO_W { 58 cbSize: ::DWORD, 59 OriginalInfName: [::WCHAR; ::MAX_PATH], 60 OriginalCatalogName: [::WCHAR; ::MAX_PATH], 61 }} 62 pub type PSP_ORIGINAL_FILE_INFO_W = *mut SP_ORIGINAL_FILE_INFO_W; 63 pub const INF_STYLE_NONE: ::DWORD = 0x00000000; 64 pub const INF_STYLE_OLDNT: ::DWORD = 0x00000001; 65 pub const INF_STYLE_WIN4: ::DWORD = 0x00000002; 66 pub const INF_STYLE_CACHE_ENABLE: ::DWORD = 0x00000010; 67 pub const INF_STYLE_CACHE_DISABLE: ::DWORD = 0x00000020; 68 pub const INF_STYLE_CACHE_IGNORE: ::DWORD = 0x00000040; 69 pub const DIRID_ABSOLUTE: ::DWORD = -1i32 as ::DWORD; 70 pub const DIRID_ABSOLUTE_16BIT: ::DWORD = 0xffff; 71 pub const DIRID_NULL: ::DWORD = 0; 72 pub const DIRID_SRCPATH: ::DWORD = 1; 73 pub const DIRID_WINDOWS: ::DWORD = 10; 74 pub const DIRID_SYSTEM: ::DWORD = 11; 75 pub const DIRID_DRIVERS: ::DWORD = 12; 76 pub const DIRID_IOSUBSYS: ::DWORD = DIRID_DRIVERS; 77 pub const DIRID_DRIVER_STORE: ::DWORD = 13; 78 pub const DIRID_INF: ::DWORD = 17; 79 pub const DIRID_HELP: ::DWORD = 18; 80 pub const DIRID_FONTS: ::DWORD = 20; 81 pub const DIRID_VIEWERS: ::DWORD = 21; 82 pub const DIRID_COLOR: ::DWORD = 23; 83 pub const DIRID_APPS: ::DWORD = 24; 84 pub const DIRID_SHARED: ::DWORD = 25; 85 pub const DIRID_BOOT: ::DWORD = 30; 86 pub const DIRID_SYSTEM16: ::DWORD = 50; 87 pub const DIRID_SPOOL: ::DWORD = 51; 88 pub const DIRID_SPOOLDRIVERS: ::DWORD = 52; 89 pub const DIRID_USERPROFILE: ::DWORD = 53; 90 pub const DIRID_LOADER: ::DWORD = 54; 91 pub const DIRID_PRINTPROCESSOR: ::DWORD = 55; 92 pub const DIRID_DEFAULT: ::DWORD = DIRID_SYSTEM; 93 pub const DIRID_COMMON_STARTMENU: ::DWORD = 16406; 94 pub const DIRID_COMMON_PROGRAMS: ::DWORD = 16407; 95 pub const DIRID_COMMON_STARTUP: ::DWORD = 16408; 96 pub const DIRID_COMMON_DESKTOPDIRECTORY: ::DWORD = 16409; 97 pub const DIRID_COMMON_FAVORITES: ::DWORD = 16415; 98 pub const DIRID_COMMON_APPDATA: ::DWORD = 16419; 99 pub const DIRID_PROGRAM_FILES: ::DWORD = 16422; 100 pub const DIRID_SYSTEM_X86: ::DWORD = 16425; 101 pub const DIRID_PROGRAM_FILES_X86: ::DWORD = 16426; 102 pub const DIRID_PROGRAM_FILES_COMMON: ::DWORD = 16427; 103 pub const DIRID_PROGRAM_FILES_COMMONX86: ::DWORD = 16428; 104 pub const DIRID_COMMON_TEMPLATES: ::DWORD = 16429; 105 pub const DIRID_COMMON_DOCUMENTS: ::DWORD = 16430; 106 pub const DIRID_USER: ::DWORD = 0x8000; 107 pub type PSP_FILE_CALLBACK_A = Option<unsafe extern "system" fn( 108 Context: ::PVOID, Notification: ::UINT, Param1: ::UINT_PTR, Param2: ::UINT_PTR, 109 ) -> ::UINT>; 110 pub type PSP_FILE_CALLBACK_W = Option<unsafe extern "system" fn( 111 Context: ::PVOID, Notification: ::UINT, Param1: ::UINT_PTR, Param2: ::UINT_PTR, 112 ) -> ::UINT>; 113 pub const SPFILENOTIFY_STARTQUEUE: ::UINT = 0x00000001; 114 pub const SPFILENOTIFY_ENDQUEUE: ::UINT = 0x00000002; 115 pub const SPFILENOTIFY_STARTSUBQUEUE: ::UINT = 0x00000003; 116 pub const SPFILENOTIFY_ENDSUBQUEUE: ::UINT = 0x00000004; 117 pub const SPFILENOTIFY_STARTDELETE: ::UINT = 0x00000005; 118 pub const SPFILENOTIFY_ENDDELETE: ::UINT = 0x00000006; 119 pub const SPFILENOTIFY_DELETEERROR: ::UINT = 0x00000007; 120 pub const SPFILENOTIFY_STARTRENAME: ::UINT = 0x00000008; 121 pub const SPFILENOTIFY_ENDRENAME: ::UINT = 0x00000009; 122 pub const SPFILENOTIFY_RENAMEERROR: ::UINT = 0x0000000a; 123 pub const SPFILENOTIFY_STARTCOPY: ::UINT = 0x0000000b; 124 pub const SPFILENOTIFY_ENDCOPY: ::UINT = 0x0000000c; 125 pub const SPFILENOTIFY_COPYERROR: ::UINT = 0x0000000d; 126 pub const SPFILENOTIFY_NEEDMEDIA: ::UINT = 0x0000000e; 127 pub const SPFILENOTIFY_QUEUESCAN: ::UINT = 0x0000000f; 128 pub const SPFILENOTIFY_CABINETINFO: ::UINT = 0x00000010; 129 pub const SPFILENOTIFY_FILEINCABINET: ::UINT = 0x00000011; 130 pub const SPFILENOTIFY_NEEDNEWCABINET: ::UINT = 0x00000012; 131 pub const SPFILENOTIFY_FILEEXTRACTED: ::UINT = 0x00000013; 132 pub const SPFILENOTIFY_FILEOPDELAYED: ::UINT = 0x00000014; 133 pub const SPFILENOTIFY_STARTBACKUP: ::UINT = 0x00000015; 134 pub const SPFILENOTIFY_BACKUPERROR: ::UINT = 0x00000016; 135 pub const SPFILENOTIFY_ENDBACKUP: ::UINT = 0x00000017; 136 pub const SPFILENOTIFY_QUEUESCAN_EX: ::UINT = 0x00000018; 137 pub const SPFILENOTIFY_STARTREGISTRATION: ::UINT = 0x00000019; 138 pub const SPFILENOTIFY_ENDREGISTRATION: ::UINT = 0x00000020; 139 pub const SPFILENOTIFY_QUEUESCAN_SIGNERINFO: ::UINT = 0x00000040; 140 pub const SPFILENOTIFY_LANGMISMATCH: ::UINT = 0x00010000; 141 pub const SPFILENOTIFY_TARGETEXISTS: ::UINT = 0x00020000; 142 pub const SPFILENOTIFY_TARGETNEWER: ::UINT = 0x00040000; 143 pub const FILEOP_COPY: ::UINT = 0; 144 pub const FILEOP_RENAME: ::UINT = 1; 145 pub const FILEOP_DELETE: ::UINT = 2; 146 pub const FILEOP_BACKUP: ::UINT = 3; 147 pub const FILEOP_ABORT: ::UINT = 0; 148 pub const FILEOP_DOIT: ::UINT = 1; 149 pub const FILEOP_SKIP: ::UINT = 2; 150 pub const FILEOP_RETRY: ::UINT = FILEOP_DOIT; 151 pub const FILEOP_NEWPATH: ::UINT = 4; 152 pub const COPYFLG_WARN_IF_SKIP: ::UINT = 0x00000001; 153 pub const COPYFLG_NOSKIP: ::UINT = 0x00000002; 154 pub const COPYFLG_NOVERSIONCHECK: ::UINT = 0x00000004; 155 pub const COPYFLG_FORCE_FILE_IN_USE: ::UINT = 0x00000008; 156 pub const COPYFLG_NO_OVERWRITE: ::UINT = 0x00000010; 157 pub const COPYFLG_NO_VERSION_DIALOG: ::UINT = 0x00000020; 158 pub const COPYFLG_OVERWRITE_OLDER_ONLY: ::UINT = 0x00000040; 159 pub const COPYFLG_PROTECTED_WINDOWS_DRIVER_FILE: ::UINT = 0x00000100; 160 pub const COPYFLG_REPLACEONLY: ::UINT = 0x00000400; 161 pub const COPYFLG_NODECOMP: ::UINT = 0x00000800; 162 pub const COPYFLG_REPLACE_BOOT_FILE: ::UINT = 0x00001000; 163 pub const COPYFLG_NOPRUNE: ::UINT = 0x00002000; 164 pub const COPYFLG_IN_USE_TRY_RENAME: ::UINT = 0x00004000; 165 pub const DELFLG_IN_USE: ::UINT = 0x00000001; 166 pub const DELFLG_IN_USE1: ::UINT = 0x00010000; 167 STRUCT!{struct FILEPATHS_A { 168 Target: ::PCSTR, 169 Source: ::PCSTR, 170 Win32Error: ::UINT, 171 Flags: ::DWORD, 172 }} 173 pub type PFILEPATHS_A = *mut FILEPATHS_A; 174 STRUCT!{struct FILEPATHS_W { 175 Target: ::PCWSTR, 176 Source: ::PCWSTR, 177 Win32Error: ::UINT, 178 Flags: ::DWORD, 179 }} 180 pub type PFILEPATHS_W = *mut FILEPATHS_W; 181 STRUCT!{struct FILEPATHS_SIGNERINFO_A { 182 Target: ::PCSTR, 183 Source: ::PCSTR, 184 Win32Error: ::UINT, 185 Flags: ::DWORD, 186 DigitalSigner: ::PCSTR, 187 Version: ::PCSTR, 188 CatalogFile: ::PCSTR, 189 }} 190 pub type PFILEPATHS_SIGNERINFO_A = *mut FILEPATHS_SIGNERINFO_A; 191 STRUCT!{struct FILEPATHS_SIGNERINFO_W { 192 Target: ::PCWSTR, 193 Source: ::PCWSTR, 194 Win32Error: ::UINT, 195 Flags: ::DWORD, 196 DigitalSigner: ::PCWSTR, 197 Version: ::PCWSTR, 198 CatalogFile: ::PCWSTR, 199 }} 200 pub type PFILEPATHS_SIGNERINFO_W = *mut FILEPATHS_SIGNERINFO_W; 201 STRUCT!{struct SOURCE_MEDIA_A { 202 Reserved: ::PCSTR, 203 Tagfile: ::PCSTR, 204 Description: ::PCSTR, 205 SourcePath: ::PCSTR, 206 SourceFile: ::PCSTR, 207 Flags: ::DWORD, 208 }} 209 pub type PSOURCE_MEDIA_A = *mut SOURCE_MEDIA_A; 210 STRUCT!{struct SOURCE_MEDIA_W { 211 Reserved: ::PCWSTR, 212 Tagfile: ::PCWSTR, 213 Description: ::PCWSTR, 214 SourcePath: ::PCWSTR, 215 SourceFile: ::PCWSTR, 216 Flags: ::DWORD, 217 }} 218 pub type PSOURCE_MEDIA_W = *mut SOURCE_MEDIA_W; 219 STRUCT!{struct CABINET_INFO_A { 220 CabinetPath: ::PCSTR, 221 CabinetFile: ::PCSTR, 222 DiskName: ::PCSTR, 223 SetId: ::USHORT, 224 CabinetNumber: ::USHORT, 225 }} 226 pub type PCABINET_INFO_A = *mut CABINET_INFO_A; 227 STRUCT!{struct CABINET_INFO_W { 228 CabinetPath: ::PCWSTR, 229 CabinetFile: ::PCWSTR, 230 DiskName: ::PCWSTR, 231 SetId: ::USHORT, 232 CabinetNumber: ::USHORT, 233 }} 234 pub type PCABINET_INFO_W = *mut CABINET_INFO_W; 235 STRUCT!{nodebug struct FILE_IN_CABINET_INFO_A { 236 NameInCabinet: ::PCSTR, 237 FileSize: ::DWORD, 238 Win32Error: ::DWORD, 239 DosDate: ::WORD, 240 DosTime: ::WORD, 241 DosAttribs: ::WORD, 242 FullTargetName: [::CHAR; ::MAX_PATH], 243 }} 244 pub type PFILE_IN_CABINET_INFO_A = *mut FILE_IN_CABINET_INFO_A; 245 STRUCT!{nodebug struct FILE_IN_CABINET_INFO_W { 246 NameInCabinet: ::PCWSTR, 247 FileSize: ::DWORD, 248 Win32Error: ::DWORD, 249 DosDate: ::WORD, 250 DosTime: ::WORD, 251 DosAttribs: ::WORD, 252 FullTargetName: [::WCHAR; ::MAX_PATH], 253 }} 254 pub type PFILE_IN_CABINET_INFO_W = *mut FILE_IN_CABINET_INFO_W; 255 STRUCT!{struct SP_REGISTER_CONTROL_STATUSA { 256 cbSize: ::DWORD, 257 FileName: ::PCSTR, 258 Win32Error: ::DWORD, 259 FailureCode: ::DWORD, 260 }} 261 pub type PSP_REGISTER_CONTROL_STATUSA = *mut SP_REGISTER_CONTROL_STATUSA; 262 STRUCT!{struct SP_REGISTER_CONTROL_STATUSW { 263 cbSize: ::DWORD, 264 FileName: ::PCWSTR, 265 Win32Error: ::DWORD, 266 FailureCode: ::DWORD, 267 }} 268 pub type PSP_REGISTER_CONTROL_STATUSW = *mut SP_REGISTER_CONTROL_STATUSW; 269 pub const SPREG_SUCCESS: ::DWORD = 0x00000000; 270 pub const SPREG_LOADLIBRARY: ::DWORD = 0x00000001; 271 pub const SPREG_GETPROCADDR: ::DWORD = 0x00000002; 272 pub const SPREG_REGSVR: ::DWORD = 0x00000003; 273 pub const SPREG_DLLINSTALL: ::DWORD = 0x00000004; 274 pub const SPREG_TIMEOUT: ::DWORD = 0x00000005; 275 pub const SPREG_UNKNOWN: ::DWORD = 0xFFFFFFFF; 276 pub type HSPFILEQ = ::PVOID; 277 STRUCT!{struct SP_FILE_COPY_PARAMS_A { 278 cbSize: ::DWORD, 279 QueueHandle: HSPFILEQ, 280 SourceRootPath: ::PCSTR, 281 SourcePath: ::PCSTR, 282 SourceFilename: ::PCSTR, 283 SourceDescription: ::PCSTR, 284 SourceTagfile: ::PCSTR, 285 TargetDirectory: ::PCSTR, 286 TargetFilename: ::PCSTR, 287 CopyStyle: ::DWORD, 288 LayoutInf: HINF, 289 SecurityDescriptor: ::PCSTR, 290 }} 291 pub type PSP_FILE_COPY_PARAMS_A = *mut SP_FILE_COPY_PARAMS_A; 292 STRUCT!{struct SP_FILE_COPY_PARAMS_W { 293 cbSize: ::DWORD, 294 QueueHandle: HSPFILEQ, 295 SourceRootPath: ::PCWSTR, 296 SourcePath: ::PCWSTR, 297 SourceFilename: ::PCWSTR, 298 SourceDescription: ::PCWSTR, 299 SourceTagfile: ::PCWSTR, 300 TargetDirectory: ::PCWSTR, 301 TargetFilename: ::PCWSTR, 302 CopyStyle: ::DWORD, 303 LayoutInf: HINF, 304 SecurityDescriptor: ::PCWSTR, 305 }} 306 pub type PSP_FILE_COPY_PARAMS_W = *mut SP_FILE_COPY_PARAMS_W; 307 pub type HDSKSPC = ::PVOID; 308 pub type HDEVINFO = ::PVOID; 309 STRUCT!{struct SP_DEVINFO_DATA { 310 cbSize: ::DWORD, 311 ClassGuid: ::GUID, 312 DevInst: ::DWORD, 313 Reserved: ::ULONG_PTR, 314 }} 315 pub type PSP_DEVINFO_DATA = *mut SP_DEVINFO_DATA; 316 STRUCT!{struct SP_DEVICE_INTERFACE_DATA { 317 cbSize: ::DWORD, 318 InterfaceClassGuid: ::GUID, 319 Flags: ::DWORD, 320 Reserved: ::ULONG_PTR, 321 }} 322 pub type PSP_DEVICE_INTERFACE_DATA = *mut SP_DEVICE_INTERFACE_DATA; 323 pub const SPINT_ACTIVE: ::DWORD = 0x00000001; 324 pub const SPINT_DEFAULT: ::DWORD = 0x00000002; 325 pub const SPINT_REMOVED: ::DWORD = 0x00000004; 326 pub type SP_INTERFACE_DEVICE_DATA = SP_DEVICE_INTERFACE_DATA; 327 pub type PSP_INTERFACE_DEVICE_DATA = PSP_DEVICE_INTERFACE_DATA; 328 pub const SPID_ACTIVE: ::DWORD = SPINT_ACTIVE; 329 pub const SPID_DEFAULT: ::DWORD = SPINT_DEFAULT; 330 pub const SPID_REMOVED: ::DWORD = SPINT_REMOVED; 331 STRUCT!{struct SP_DEVICE_INTERFACE_DETAIL_DATA_A { 332 cbSize: ::DWORD, 333 DevicePath: [::CHAR; ::ANYSIZE_ARRAY], 334 }} 335 pub type PSP_DEVICE_INTERFACE_DETAIL_DATA_A = *mut SP_DEVICE_INTERFACE_DETAIL_DATA_A; 336 STRUCT!{struct SP_DEVICE_INTERFACE_DETAIL_DATA_W { 337 cbSize: ::DWORD, 338 DevicePath: [::WCHAR; ::ANYSIZE_ARRAY], 339 }} 340 pub type PSP_DEVICE_INTERFACE_DETAIL_DATA_W = *mut SP_DEVICE_INTERFACE_DETAIL_DATA_W; 341 STRUCT!{nodebug struct SP_DEVINFO_LIST_DETAIL_DATA_A { 342 cbSize: ::DWORD, 343 ClassGuid: ::GUID, 344 RemoteMachineHandle: ::HANDLE, 345 RemoteMachineName: [::CHAR; SP_MAX_MACHINENAME_LENGTH], 346 }} 347 pub type PSP_DEVINFO_LIST_DETAIL_DATA_A = *mut SP_DEVINFO_LIST_DETAIL_DATA_A; 348 STRUCT!{nodebug struct SP_DEVINFO_LIST_DETAIL_DATA_W { 349 cbSize: ::DWORD, 350 ClassGuid: ::GUID, 351 RemoteMachineHandle: ::HANDLE, 352 RemoteMachineName: [::WCHAR; SP_MAX_MACHINENAME_LENGTH], 353 }} 354 pub type PSP_DEVINFO_LIST_DETAIL_DATA_W = *mut SP_DEVINFO_LIST_DETAIL_DATA_W; 355 pub const DIF_SELECTDEVICE: DI_FUNCTION = 0x00000001; 356 pub const DIF_INSTALLDEVICE: DI_FUNCTION = 0x00000002; 357 pub const DIF_ASSIGNRESOURCES: DI_FUNCTION = 0x00000003; 358 pub const DIF_PROPERTIES: DI_FUNCTION = 0x00000004; 359 pub const DIF_REMOVE: DI_FUNCTION = 0x00000005; 360 pub const DIF_FIRSTTIMESETUP: DI_FUNCTION = 0x00000006; 361 pub const DIF_FOUNDDEVICE: DI_FUNCTION = 0x00000007; 362 pub const DIF_SELECTCLASSDRIVERS: DI_FUNCTION = 0x00000008; 363 pub const DIF_VALIDATECLASSDRIVERS: DI_FUNCTION = 0x00000009; 364 pub const DIF_INSTALLCLASSDRIVERS: DI_FUNCTION = 0x0000000A; 365 pub const DIF_CALCDISKSPACE: DI_FUNCTION = 0x0000000B; 366 pub const DIF_DESTROYPRIVATEDATA: DI_FUNCTION = 0x0000000C; 367 pub const DIF_VALIDATEDRIVER: DI_FUNCTION = 0x0000000D; 368 pub const DIF_DETECT: DI_FUNCTION = 0x0000000F; 369 pub const DIF_INSTALLWIZARD: DI_FUNCTION = 0x00000010; 370 pub const DIF_DESTROYWIZARDDATA: DI_FUNCTION = 0x00000011; 371 pub const DIF_PROPERTYCHANGE: DI_FUNCTION = 0x00000012; 372 pub const DIF_ENABLECLASS: DI_FUNCTION = 0x00000013; 373 pub const DIF_DETECTVERIFY: DI_FUNCTION = 0x00000014; 374 pub const DIF_INSTALLDEVICEFILES: DI_FUNCTION = 0x00000015; 375 pub const DIF_UNREMOVE: DI_FUNCTION = 0x00000016; 376 pub const DIF_SELECTBESTCOMPATDRV: DI_FUNCTION = 0x00000017; 377 pub const DIF_ALLOW_INSTALL: DI_FUNCTION = 0x00000018; 378 pub const DIF_REGISTERDEVICE: DI_FUNCTION = 0x00000019; 379 pub const DIF_NEWDEVICEWIZARD_PRESELECT: DI_FUNCTION = 0x0000001A; 380 pub const DIF_NEWDEVICEWIZARD_SELECT: DI_FUNCTION = 0x0000001B; 381 pub const DIF_NEWDEVICEWIZARD_PREANALYZE: DI_FUNCTION = 0x0000001C; 382 pub const DIF_NEWDEVICEWIZARD_POSTANALYZE: DI_FUNCTION = 0x0000001D; 383 pub const DIF_NEWDEVICEWIZARD_FINISHINSTALL: DI_FUNCTION = 0x0000001E; 384 pub const DIF_UNUSED1: DI_FUNCTION = 0x0000001F; 385 pub const DIF_INSTALLINTERFACES: DI_FUNCTION = 0x00000020; 386 pub const DIF_DETECTCANCEL: DI_FUNCTION = 0x00000021; 387 pub const DIF_REGISTER_COINSTALLERS: DI_FUNCTION = 0x00000022; 388 pub const DIF_ADDPROPERTYPAGE_ADVANCED: DI_FUNCTION = 0x00000023; 389 pub const DIF_ADDPROPERTYPAGE_BASIC: DI_FUNCTION = 0x00000024; 390 pub const DIF_RESERVED1: DI_FUNCTION = 0x00000025; 391 pub const DIF_TROUBLESHOOTER: DI_FUNCTION = 0x00000026; 392 pub const DIF_POWERMESSAGEWAKE: DI_FUNCTION = 0x00000027; 393 pub const DIF_ADDREMOTEPROPERTYPAGE_ADVANCED: DI_FUNCTION = 0x00000028; 394 pub const DIF_UPDATEDRIVER_UI: DI_FUNCTION = 0x00000029; 395 pub const DIF_FINISHINSTALL_ACTION: DI_FUNCTION = 0x0000002A; 396 pub const DIF_RESERVED2: DI_FUNCTION = 0x00000030; 397 pub const DIF_MOVEDEVICE: DI_FUNCTION = 0x0000000E; 398 pub type DI_FUNCTION = ::UINT; 399 STRUCT!{nodebug struct SP_DEVINSTALL_PARAMS_A { 400 cbSize: ::DWORD, 401 Flags: ::DWORD, 402 FlagsEx: ::DWORD, 403 hwndParent: ::HWND, 404 InstallMsgHandler: PSP_FILE_CALLBACK_A, 405 InstallMsgHandlerContext: ::PVOID, 406 FileQueue: HSPFILEQ, 407 ClassInstallReserved: ::ULONG_PTR, 408 Reserved: ::DWORD, 409 DriverPath: [::CHAR; ::MAX_PATH], 410 }} 411 pub type PSP_DEVINSTALL_PARAMS_A = *mut SP_DEVINSTALL_PARAMS_A; 412 STRUCT!{nodebug struct SP_DEVINSTALL_PARAMS_W { 413 cbSize: ::DWORD, 414 Flags: ::DWORD, 415 FlagsEx: ::DWORD, 416 hwndParent: ::HWND, 417 InstallMsgHandler: PSP_FILE_CALLBACK_W, 418 InstallMsgHandlerContext: ::PVOID, 419 FileQueue: HSPFILEQ, 420 ClassInstallReserved: ::ULONG_PTR, 421 Reserved: ::DWORD, 422 DriverPath: [::WCHAR; ::MAX_PATH], 423 }} 424 pub type PSP_DEVINSTALL_PARAMS_W = *mut SP_DEVINSTALL_PARAMS_W; 425 pub const DI_SHOWOEM: ::DWORD = 0x00000001; 426 pub const DI_SHOWCOMPAT: ::DWORD = 0x00000002; 427 pub const DI_SHOWCLASS: ::DWORD = 0x00000004; 428 pub const DI_SHOWALL: ::DWORD = 0x00000007; 429 pub const DI_NOVCP: ::DWORD = 0x00000008; 430 pub const DI_DIDCOMPAT: ::DWORD = 0x00000010; 431 pub const DI_DIDCLASS: ::DWORD = 0x00000020; 432 pub const DI_AUTOASSIGNRES: ::DWORD = 0x00000040; 433 pub const DI_NEEDRESTART: ::DWORD = 0x00000080; 434 pub const DI_NEEDREBOOT: ::DWORD = 0x00000100; 435 pub const DI_NOBROWSE: ::DWORD = 0x00000200; 436 pub const DI_MULTMFGS: ::DWORD = 0x00000400; 437 pub const DI_DISABLED: ::DWORD = 0x00000800; 438 pub const DI_GENERALPAGE_ADDED: ::DWORD = 0x00001000; 439 pub const DI_RESOURCEPAGE_ADDED: ::DWORD = 0x00002000; 440 pub const DI_PROPERTIES_CHANGE: ::DWORD = 0x00004000; 441 pub const DI_INF_IS_SORTED: ::DWORD = 0x00008000; 442 pub const DI_ENUMSINGLEINF: ::DWORD = 0x00010000; 443 pub const DI_DONOTCALLCONFIGMG: ::DWORD = 0x00020000; 444 pub const DI_INSTALLDISABLED: ::DWORD = 0x00040000; 445 pub const DI_COMPAT_FROM_CLASS: ::DWORD = 0x00080000; 446 pub const DI_CLASSINSTALLPARAMS: ::DWORD = 0x00100000; 447 pub const DI_NODI_DEFAULTACTION: ::DWORD = 0x00200000; 448 pub const DI_QUIETINSTALL: ::DWORD = 0x00800000; 449 pub const DI_NOFILECOPY: ::DWORD = 0x01000000; 450 pub const DI_FORCECOPY: ::DWORD = 0x02000000; 451 pub const DI_DRIVERPAGE_ADDED: ::DWORD = 0x04000000; 452 pub const DI_USECI_SELECTSTRINGS: ::DWORD = 0x08000000; 453 pub const DI_OVERRIDE_INFFLAGS: ::DWORD = 0x10000000; 454 pub const DI_PROPS_NOCHANGEUSAGE: ::DWORD = 0x20000000; 455 pub const DI_NOSELECTICONS: ::DWORD = 0x40000000; 456 pub const DI_NOWRITE_IDS: ::DWORD = 0x80000000; 457 pub const DI_FLAGSEX_RESERVED2: ::DWORD = 0x00000001; 458 pub const DI_FLAGSEX_RESERVED3: ::DWORD = 0x00000002; 459 pub const DI_FLAGSEX_CI_FAILED: ::DWORD = 0x00000004; 460 pub const DI_FLAGSEX_FINISHINSTALL_ACTION: ::DWORD = 0x00000008; 461 pub const DI_FLAGSEX_DIDINFOLIST: ::DWORD = 0x00000010; 462 pub const DI_FLAGSEX_DIDCOMPATINFO: ::DWORD = 0x00000020; 463 pub const DI_FLAGSEX_FILTERCLASSES: ::DWORD = 0x00000040; 464 pub const DI_FLAGSEX_SETFAILEDINSTALL: ::DWORD = 0x00000080; 465 pub const DI_FLAGSEX_DEVICECHANGE: ::DWORD = 0x00000100; 466 pub const DI_FLAGSEX_ALWAYSWRITEIDS: ::DWORD = 0x00000200; 467 pub const DI_FLAGSEX_PROPCHANGE_PENDING: ::DWORD = 0x00000400; 468 pub const DI_FLAGSEX_ALLOWEXCLUDEDDRVS: ::DWORD = 0x00000800; 469 pub const DI_FLAGSEX_NOUIONQUERYREMOVE: ::DWORD = 0x00001000; 470 pub const DI_FLAGSEX_USECLASSFORCOMPAT: ::DWORD = 0x00002000; 471 pub const DI_FLAGSEX_RESERVED4: ::DWORD = 0x00004000; 472 pub const DI_FLAGSEX_NO_DRVREG_MODIFY: ::DWORD = 0x00008000; 473 pub const DI_FLAGSEX_IN_SYSTEM_SETUP: ::DWORD = 0x00010000; 474 pub const DI_FLAGSEX_INET_DRIVER: ::DWORD = 0x00020000; 475 pub const DI_FLAGSEX_APPENDDRIVERLIST: ::DWORD = 0x00040000; 476 pub const DI_FLAGSEX_PREINSTALLBACKUP: ::DWORD = 0x00080000; 477 pub const DI_FLAGSEX_BACKUPONREPLACE: ::DWORD = 0x00100000; 478 pub const DI_FLAGSEX_DRIVERLIST_FROM_URL: ::DWORD = 0x00200000; 479 pub const DI_FLAGSEX_RESERVED1: ::DWORD = 0x00400000; 480 pub const DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS: ::DWORD = 0x00800000; 481 pub const DI_FLAGSEX_POWERPAGE_ADDED: ::DWORD = 0x01000000; 482 pub const DI_FLAGSEX_FILTERSIMILARDRIVERS: ::DWORD = 0x02000000; 483 pub const DI_FLAGSEX_INSTALLEDDRIVER: ::DWORD = 0x04000000; 484 pub const DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE: ::DWORD = 0x08000000; 485 pub const DI_FLAGSEX_ALTPLATFORM_DRVSEARCH: ::DWORD = 0x10000000; 486 pub const DI_FLAGSEX_RESTART_DEVICE_ONLY: ::DWORD = 0x20000000; 487 pub const DI_FLAGSEX_RECURSIVESEARCH: ::DWORD = 0x40000000; 488 pub const DI_FLAGSEX_SEARCH_PUBLISHED_INFS: ::DWORD = 0x80000000; 489 STRUCT!{struct SP_CLASSINSTALL_HEADER { 490 cbSize: ::DWORD, 491 InstallFunction: DI_FUNCTION, 492 }} 493 pub type PSP_CLASSINSTALL_HEADER = *mut SP_CLASSINSTALL_HEADER; 494 STRUCT!{struct SP_ENABLECLASS_PARAMS { 495 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 496 ClassGuid: ::GUID, 497 EnableMessage: ::DWORD, 498 }} 499 pub type PSP_ENABLECLASS_PARAMS = *mut SP_ENABLECLASS_PARAMS; 500 pub const ENABLECLASS_QUERY: ::DWORD = 0; 501 pub const ENABLECLASS_SUCCESS: ::DWORD = 1; 502 pub const ENABLECLASS_FAILURE: ::DWORD = 2; 503 pub const DICS_ENABLE: ::DWORD = 0x00000001; 504 pub const DICS_DISABLE: ::DWORD = 0x00000002; 505 pub const DICS_PROPCHANGE: ::DWORD = 0x00000003; 506 pub const DICS_START: ::DWORD = 0x00000004; 507 pub const DICS_STOP: ::DWORD = 0x00000005; 508 pub const DICS_FLAG_GLOBAL: ::DWORD = 0x00000001; 509 pub const DICS_FLAG_CONFIGSPECIFIC: ::DWORD = 0x00000002; 510 pub const DICS_FLAG_CONFIGGENERAL: ::DWORD = 0x00000004; 511 STRUCT!{struct SP_PROPCHANGE_PARAMS { 512 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 513 StateChange: ::DWORD, 514 Scope: ::DWORD, 515 HwProfile: ::DWORD, 516 }} 517 pub type PSP_PROPCHANGE_PARAMS = *mut SP_PROPCHANGE_PARAMS; 518 STRUCT!{struct SP_REMOVEDEVICE_PARAMS { 519 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 520 Scope: ::DWORD, 521 HwProfile: ::DWORD, 522 }} 523 pub type PSP_REMOVEDEVICE_PARAMS = *mut SP_REMOVEDEVICE_PARAMS; 524 pub const DI_REMOVEDEVICE_GLOBAL: ::DWORD = 0x00000001; 525 pub const DI_REMOVEDEVICE_CONFIGSPECIFIC: ::DWORD = 0x00000002; 526 STRUCT!{struct SP_UNREMOVEDEVICE_PARAMS { 527 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 528 Scope: ::DWORD, 529 HwProfile: ::DWORD, 530 }} 531 pub type PSP_UNREMOVEDEVICE_PARAMS = *mut SP_UNREMOVEDEVICE_PARAMS; 532 pub const DI_UNREMOVEDEVICE_CONFIGSPECIFIC: ::DWORD = 0x00000002; 533 STRUCT!{nodebug struct SP_SELECTDEVICE_PARAMS_A { 534 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 535 Title: [::CHAR; MAX_TITLE_LEN], 536 Instructions: [::CHAR; MAX_INSTRUCTION_LEN], 537 ListLabel: [::CHAR; MAX_LABEL_LEN], 538 SubTitle: [::CHAR; MAX_SUBTITLE_LEN], 539 Reserved: [::BYTE; 2], 540 }} 541 pub type PSP_SELECTDEVICE_PARAMS_A = *mut SP_SELECTDEVICE_PARAMS_A; 542 STRUCT!{nodebug struct SP_SELECTDEVICE_PARAMS_W { 543 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 544 Title: [::WCHAR; MAX_TITLE_LEN], 545 Instructions: [::WCHAR; MAX_INSTRUCTION_LEN], 546 ListLabel: [::WCHAR; MAX_LABEL_LEN], 547 SubTitle: [::WCHAR; MAX_SUBTITLE_LEN], 548 }} 549 pub type PSP_SELECTDEVICE_PARAMS_W = *mut SP_SELECTDEVICE_PARAMS_W; 550 pub type PDETECT_PROGRESS_NOTIFY = Option<unsafe extern "system" fn( 551 ProgressNotifyParam: ::PVOID, DetectComplete: ::DWORD, 552 ) -> ::BOOL>; 553 STRUCT!{nodebug struct SP_DETECTDEVICE_PARAMS { 554 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 555 DetectProgressNotify: PDETECT_PROGRESS_NOTIFY, 556 ProgressNotifyParam: ::PVOID, 557 }} 558 pub type PSP_DETECTDEVICE_PARAMS = *mut SP_DETECTDEVICE_PARAMS; 559 pub const MAX_INSTALLWIZARD_DYNAPAGES: usize = 20; 560 STRUCT!{struct SP_INSTALLWIZARD_DATA { 561 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 562 Flags: ::DWORD, 563 DynamicPages: [::HPROPSHEETPAGE; MAX_INSTALLWIZARD_DYNAPAGES], 564 NumDynamicPages: ::DWORD, 565 DynamicPageFlags: ::DWORD, 566 PrivateFlags: ::DWORD, 567 PrivateData: ::LPARAM, 568 hwndWizardDlg: ::HWND, 569 }} 570 pub type PSP_INSTALLWIZARD_DATA = *mut SP_INSTALLWIZARD_DATA; 571 pub const NDW_INSTALLFLAG_DIDFACTDEFS: ::DWORD = 0x00000001; 572 pub const NDW_INSTALLFLAG_HARDWAREALLREADYIN: ::DWORD = 0x00000002; 573 pub const NDW_INSTALLFLAG_NEEDRESTART: ::DWORD = DI_NEEDRESTART; 574 pub const NDW_INSTALLFLAG_NEEDREBOOT: ::DWORD = DI_NEEDREBOOT; 575 pub const NDW_INSTALLFLAG_NEEDSHUTDOWN: ::DWORD = 0x00000200; 576 pub const NDW_INSTALLFLAG_EXPRESSINTRO: ::DWORD = 0x00000400; 577 pub const NDW_INSTALLFLAG_SKIPISDEVINSTALLED: ::DWORD = 0x00000800; 578 pub const NDW_INSTALLFLAG_NODETECTEDDEVS: ::DWORD = 0x00001000; 579 pub const NDW_INSTALLFLAG_INSTALLSPECIFIC: ::DWORD = 0x00002000; 580 pub const NDW_INSTALLFLAG_SKIPCLASSLIST: ::DWORD = 0x00004000; 581 pub const NDW_INSTALLFLAG_CI_PICKED_OEM: ::DWORD = 0x00008000; 582 pub const NDW_INSTALLFLAG_PCMCIAMODE: ::DWORD = 0x00010000; 583 pub const NDW_INSTALLFLAG_PCMCIADEVICE: ::DWORD = 0x00020000; 584 pub const NDW_INSTALLFLAG_USERCANCEL: ::DWORD = 0x00040000; 585 pub const NDW_INSTALLFLAG_KNOWNCLASS: ::DWORD = 0x00080000; 586 pub const DYNAWIZ_FLAG_PAGESADDED: ::DWORD = 0x00000001; 587 pub const DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT: ::DWORD = 0x00000008; 588 pub const DYNAWIZ_FLAG_INSTALLDET_NEXT: ::DWORD = 0x00000002; 589 pub const DYNAWIZ_FLAG_INSTALLDET_PREV: ::DWORD = 0x00000004; 590 pub const MIN_IDD_DYNAWIZ_RESOURCE_ID: ::c_int = 10000; 591 pub const MAX_IDD_DYNAWIZ_RESOURCE_ID: ::c_int = 11000; 592 pub const IDD_DYNAWIZ_FIRSTPAGE: ::c_int = 10000; 593 pub const IDD_DYNAWIZ_SELECT_PREVPAGE: ::c_int = 10001; 594 pub const IDD_DYNAWIZ_SELECT_NEXTPAGE: ::c_int = 10002; 595 pub const IDD_DYNAWIZ_ANALYZE_PREVPAGE: ::c_int = 10003; 596 pub const IDD_DYNAWIZ_ANALYZE_NEXTPAGE: ::c_int = 10004; 597 pub const IDD_DYNAWIZ_SELECTDEV_PAGE: ::c_int = 10009; 598 pub const IDD_DYNAWIZ_ANALYZEDEV_PAGE: ::c_int = 10010; 599 pub const IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE: ::c_int = 10011; 600 pub const IDD_DYNAWIZ_SELECTCLASS_PAGE: ::c_int = 10012; 601 pub const IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE: ::c_int = 10006; 602 pub const IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE: ::c_int = 10007; 603 pub const IDD_DYNAWIZ_INSTALLDETECTED_NODEVS: ::c_int = 10008; 604 STRUCT!{struct SP_NEWDEVICEWIZARD_DATA { 605 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 606 Flags: ::DWORD, 607 DynamicPages: [::HPROPSHEETPAGE; MAX_INSTALLWIZARD_DYNAPAGES], 608 NumDynamicPages: ::DWORD, 609 hwndWizardDlg: ::HWND, 610 }} 611 pub type PSP_NEWDEVICEWIZARD_DATA = *mut SP_NEWDEVICEWIZARD_DATA; 612 pub type SP_ADDPROPERTYPAGE_DATA = SP_NEWDEVICEWIZARD_DATA; 613 pub type PSP_ADDPROPERTYPAGE_DATA = PSP_NEWDEVICEWIZARD_DATA; 614 STRUCT!{nodebug struct SP_TROUBLESHOOTER_PARAMS_A { 615 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 616 ChmFile: [::CHAR; ::MAX_PATH], 617 HtmlTroubleShooter: [::CHAR; ::MAX_PATH], 618 }} 619 pub type PSP_TROUBLESHOOTER_PARAMS_A = *mut SP_TROUBLESHOOTER_PARAMS_A; 620 STRUCT!{nodebug struct SP_TROUBLESHOOTER_PARAMS_W { 621 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 622 ChmFile: [::WCHAR; ::MAX_PATH], 623 HtmlTroubleShooter: [::WCHAR; ::MAX_PATH], 624 }} 625 pub type PSP_TROUBLESHOOTER_PARAMS_W = *mut SP_TROUBLESHOOTER_PARAMS_W; 626 STRUCT!{nodebug struct SP_POWERMESSAGEWAKE_PARAMS_A { 627 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 628 PowerMessageWake: [::CHAR; LINE_LEN * 2], 629 }} 630 pub type PSP_POWERMESSAGEWAKE_PARAMS_A = *mut SP_POWERMESSAGEWAKE_PARAMS_A; 631 STRUCT!{nodebug struct SP_POWERMESSAGEWAKE_PARAMS_W { 632 ClassInstallHeader: SP_CLASSINSTALL_HEADER, 633 PowerMessageWake: [::WCHAR; LINE_LEN * 2], 634 }} 635 pub type PSP_POWERMESSAGEWAKE_PARAMS_W = *mut SP_POWERMESSAGEWAKE_PARAMS_W; 636 STRUCT!{nodebug struct SP_DRVINFO_DATA_V2_A { 637 cbSize: ::DWORD, 638 DriverType: ::DWORD, 639 Reserved: ::ULONG_PTR, 640 Description: [::CHAR; LINE_LEN], 641 MfgName: [::CHAR; LINE_LEN], 642 ProviderName: [::CHAR; LINE_LEN], 643 DriverDate: ::FILETIME, 644 DriverVersion: ::DWORDLONG, 645 }} 646 pub type PSP_DRVINFO_DATA_V2_A = *mut SP_DRVINFO_DATA_V2_A; 647 STRUCT!{nodebug struct SP_DRVINFO_DATA_V2_W { 648 cbSize: ::DWORD, 649 DriverType: ::DWORD, 650 Reserved: ::ULONG_PTR, 651 Description: [::WCHAR; LINE_LEN], 652 MfgName: [::WCHAR; LINE_LEN], 653 ProviderName: [::WCHAR; LINE_LEN], 654 DriverDate: ::FILETIME, 655 DriverVersion: ::DWORDLONG, 656 }} 657 pub type PSP_DRVINFO_DATA_V2_W = *mut SP_DRVINFO_DATA_V2_W; 658 STRUCT!{nodebug struct SP_DRVINFO_DATA_V1_A { 659 cbSize: ::DWORD, 660 DriverType: ::DWORD, 661 Reserved: ::ULONG_PTR, 662 Description: [::CHAR; LINE_LEN], 663 MfgName: [::CHAR; LINE_LEN], 664 ProviderName: [::CHAR; LINE_LEN], 665 }} 666 pub type PSP_DRVINFO_DATA_V1_A = *mut SP_DRVINFO_DATA_V1_A; 667 STRUCT!{nodebug struct SP_DRVINFO_DATA_V1_W { 668 cbSize: ::DWORD, 669 DriverType: ::DWORD, 670 Reserved: ::ULONG_PTR, 671 Description: [::WCHAR; LINE_LEN], 672 MfgName: [::WCHAR; LINE_LEN], 673 ProviderName: [::WCHAR; LINE_LEN], 674 }} 675 pub type PSP_DRVINFO_DATA_V1_W = *mut SP_DRVINFO_DATA_V1_W; 676 pub type SP_DRVINFO_DATA_A = SP_DRVINFO_DATA_V2_A; 677 pub type PSP_DRVINFO_DATA_A = PSP_DRVINFO_DATA_V2_A; 678 pub type SP_DRVINFO_DATA_W = SP_DRVINFO_DATA_V2_W; 679 pub type PSP_DRVINFO_DATA_W = PSP_DRVINFO_DATA_V2_W; 680 STRUCT!{nodebug struct SP_DRVINFO_DETAIL_DATA_A { 681 cbSize: ::DWORD, 682 InfDate: ::FILETIME, 683 CompatIDsOffset: ::DWORD, 684 CompatIDsLength: ::DWORD, 685 Reserved: ::ULONG_PTR, 686 SectionName: [::CHAR; LINE_LEN], 687 InfFileName: [::CHAR; ::MAX_PATH], 688 DrvDescription: [::CHAR; LINE_LEN], 689 HardwareID: [::CHAR; ::ANYSIZE_ARRAY], 690 }} 691 pub type PSP_DRVINFO_DETAIL_DATA_A = *mut SP_DRVINFO_DETAIL_DATA_A; 692 STRUCT!{nodebug struct SP_DRVINFO_DETAIL_DATA_W { 693 cbSize: ::DWORD, 694 InfDate: ::FILETIME, 695 CompatIDsOffset: ::DWORD, 696 CompatIDsLength: ::DWORD, 697 Reserved: ::ULONG_PTR, 698 SectionName: [::WCHAR; LINE_LEN], 699 InfFileName: [::WCHAR; ::MAX_PATH], 700 DrvDescription: [::WCHAR; LINE_LEN], 701 HardwareID: [::WCHAR; ::ANYSIZE_ARRAY], 702 }} 703 pub type PSP_DRVINFO_DETAIL_DATA_W = *mut SP_DRVINFO_DETAIL_DATA_W; 704 STRUCT!{struct SP_DRVINSTALL_PARAMS { 705 cbSize: ::DWORD, 706 Rank: ::DWORD, 707 Flags: ::DWORD, 708 PrivateData: ::DWORD_PTR, 709 Reserved: ::DWORD, 710 }} 711 pub type PSP_DRVINSTALL_PARAMS = *mut SP_DRVINSTALL_PARAMS; 712 pub const DNF_DUPDESC: ::DWORD = 0x00000001; 713 pub const DNF_OLDDRIVER: ::DWORD = 0x00000002; 714 pub const DNF_EXCLUDEFROMLIST: ::DWORD = 0x00000004; 715 pub const DNF_NODRIVER: ::DWORD = 0x00000008; 716 pub const DNF_LEGACYINF: ::DWORD = 0x00000010; 717 pub const DNF_CLASS_DRIVER: ::DWORD = 0x00000020; 718 pub const DNF_COMPATIBLE_DRIVER: ::DWORD = 0x00000040; 719 pub const DNF_INET_DRIVER: ::DWORD = 0x00000080; 720 pub const DNF_UNUSED1: ::DWORD = 0x00000100; 721 pub const DNF_UNUSED2: ::DWORD = 0x00000200; 722 pub const DNF_OLD_INET_DRIVER: ::DWORD = 0x00000400; 723 pub const DNF_BAD_DRIVER: ::DWORD = 0x00000800; 724 pub const DNF_DUPPROVIDER: ::DWORD = 0x00001000; 725 pub const DNF_INF_IS_SIGNED: ::DWORD = 0x00002000; 726 pub const DNF_OEM_F6_INF: ::DWORD = 0x00004000; 727 pub const DNF_DUPDRIVERVER: ::DWORD = 0x00008000; 728 pub const DNF_BASIC_DRIVER: ::DWORD = 0x00010000; 729 pub const DNF_AUTHENTICODE_SIGNED: ::DWORD = 0x00020000; 730 pub const DNF_INSTALLEDDRIVER: ::DWORD = 0x00040000; 731 pub const DNF_ALWAYSEXCLUDEFROMLIST: ::DWORD = 0x00080000; 732 pub const DNF_INBOX_DRIVER: ::DWORD = 0x00100000; 733 pub const DNF_REQUESTADDITIONALSOFTWARE: ::DWORD = 0x00200000; 734 pub const DNF_UNUSED_22: ::DWORD = 0x00400000; 735 pub const DNF_UNUSED_23: ::DWORD = 0x00800000; 736 pub const DNF_UNUSED_24: ::DWORD = 0x01000000; 737 pub const DNF_UNUSED_25: ::DWORD = 0x02000000; 738 pub const DNF_UNUSED_26: ::DWORD = 0x04000000; 739 pub const DNF_UNUSED_27: ::DWORD = 0x08000000; 740 pub const DNF_UNUSED_28: ::DWORD = 0x10000000; 741 pub const DNF_UNUSED_29: ::DWORD = 0x20000000; 742 pub const DNF_UNUSED_30: ::DWORD = 0x40000000; 743 pub const DNF_UNUSED_31: ::DWORD = 0x80000000; 744 pub type PSP_DETSIG_CMPPROC = Option<unsafe extern "system" fn( 745 DeviceInfoSet: HDEVINFO, NewDeviceData: PSP_DEVINFO_DATA, ExistingDeviceData: PSP_DEVINFO_DATA, 746 CompareContext: ::PVOID, 747 ) -> ::DWORD>; 748 STRUCT!{struct COINSTALLER_CONTEXT_DATA { 749 PostProcessing: ::BOOL, 750 InstallResult: ::DWORD, 751 PrivateData: ::PVOID, 752 }} 753 pub type PCOINSTALLER_CONTEXT_DATA = *mut COINSTALLER_CONTEXT_DATA; 754 STRUCT!{struct SP_CLASSIMAGELIST_DATA { 755 cbSize: ::DWORD, 756 ImageList: ::HIMAGELIST, 757 Reserved: ::ULONG_PTR, 758 }} 759 pub type PSP_CLASSIMAGELIST_DATA = *mut SP_CLASSIMAGELIST_DATA; 760 STRUCT!{struct SP_PROPSHEETPAGE_REQUEST { 761 cbSize: ::DWORD, 762 PageRequested: ::DWORD, 763 DeviceInfoSet: HDEVINFO, 764 DeviceInfoData: PSP_DEVINFO_DATA, 765 }} 766 pub type PSP_PROPSHEETPAGE_REQUEST = *mut SP_PROPSHEETPAGE_REQUEST; 767 pub const SPPSR_SELECT_DEVICE_RESOURCES: ::DWORD = 1; 768 pub const SPPSR_ENUM_BASIC_DEVICE_PROPERTIES: ::DWORD = 2; 769 pub const SPPSR_ENUM_ADV_DEVICE_PROPERTIES: ::DWORD = 3; 770 STRUCT!{nodebug struct SP_BACKUP_QUEUE_PARAMS_V2_A { 771 cbSize: ::DWORD, 772 FullInfPath: [::CHAR; ::MAX_PATH], 773 FilenameOffset: ::INT, 774 ReinstallInstance: [::CHAR; ::MAX_PATH], 775 }} 776 pub type PSP_BACKUP_QUEUE_PARAMS_V2_A = *mut SP_BACKUP_QUEUE_PARAMS_V2_A; 777 STRUCT!{nodebug struct SP_BACKUP_QUEUE_PARAMS_V2_W { 778 cbSize: ::DWORD, 779 FullInfPath: [::WCHAR; ::MAX_PATH], 780 FilenameOffset: ::INT, 781 ReinstallInstance: [::WCHAR; ::MAX_PATH], 782 }} 783 pub type PSP_BACKUP_QUEUE_PARAMS_V2_W = *mut SP_BACKUP_QUEUE_PARAMS_V2_W; 784 STRUCT!{nodebug struct SP_BACKUP_QUEUE_PARAMS_V1_A { 785 cbSize: ::DWORD, 786 FullInfPath: [::CHAR; ::MAX_PATH], 787 FilenameOffset: ::INT, 788 }} 789 pub type PSP_BACKUP_QUEUE_PARAMS_V1_A = *mut SP_BACKUP_QUEUE_PARAMS_V1_A; 790 STRUCT!{nodebug struct SP_BACKUP_QUEUE_PARAMS_V1_W { 791 cbSize: ::DWORD, 792 FullInfPath: [::WCHAR; ::MAX_PATH], 793 FilenameOffset: ::INT, 794 }} 795 pub type PSP_BACKUP_QUEUE_PARAMS_V1_W = *mut SP_BACKUP_QUEUE_PARAMS_V1_W; 796 pub type SP_BACKUP_QUEUE_PARAMS_A = SP_BACKUP_QUEUE_PARAMS_V2_A; 797 pub type PSP_BACKUP_QUEUE_PARAMS_A = PSP_BACKUP_QUEUE_PARAMS_V2_A; 798 pub type SP_BACKUP_QUEUE_PARAMS_W = SP_BACKUP_QUEUE_PARAMS_V2_W; 799 pub type PSP_BACKUP_QUEUE_PARAMS_W = PSP_BACKUP_QUEUE_PARAMS_V2_W; 800 pub const ERROR_EXPECTED_SECTION_NAME: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 801 | 0; 802 pub const ERROR_BAD_SECTION_NAME_LINE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 803 | 1; 804 pub const ERROR_SECTION_NAME_TOO_LONG: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 805 | 2; 806 pub const ERROR_GENERAL_SYNTAX: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 3; 807 pub const ERROR_WRONG_INF_STYLE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 808 | 0x100; 809 pub const ERROR_SECTION_NOT_FOUND: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 810 | 0x101; 811 pub const ERROR_LINE_NOT_FOUND: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x102; 812 pub const ERROR_NO_BACKUP: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x103; 813 pub const ERROR_NO_ASSOCIATED_CLASS: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 814 | 0x200; 815 pub const ERROR_CLASS_MISMATCH: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x201; 816 pub const ERROR_DUPLICATE_FOUND: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 817 | 0x202; 818 pub const ERROR_NO_DRIVER_SELECTED: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 819 | 0x203; 820 pub const ERROR_KEY_DOES_NOT_EXIST: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 821 | 0x204; 822 pub const ERROR_INVALID_DEVINST_NAME: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 823 | 0x205; 824 pub const ERROR_INVALID_CLASS: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x206; 825 pub const ERROR_DEVINST_ALREADY_EXISTS: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 826 | 0x207; 827 pub const ERROR_DEVINFO_NOT_REGISTERED: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 828 | 0x208; 829 pub const ERROR_INVALID_REG_PROPERTY: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 830 | 0x209; 831 pub const ERROR_NO_INF: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x20A; 832 pub const ERROR_NO_SUCH_DEVINST: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 833 | 0x20B; 834 pub const ERROR_CANT_LOAD_CLASS_ICON: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 835 | 0x20C; 836 pub const ERROR_INVALID_CLASS_INSTALLER: ::DWORD = ::APPLICATION_ERROR_MASK 837 | ::ERROR_SEVERITY_ERROR | 0x20D; 838 pub const ERROR_DI_DO_DEFAULT: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x20E; 839 pub const ERROR_DI_NOFILECOPY: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x20F; 840 pub const ERROR_INVALID_HWPROFILE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 841 | 0x210; 842 pub const ERROR_NO_DEVICE_SELECTED: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 843 | 0x211; 844 pub const ERROR_DEVINFO_LIST_LOCKED: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 845 | 0x212; 846 pub const ERROR_DEVINFO_DATA_LOCKED: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 847 | 0x213; 848 pub const ERROR_DI_BAD_PATH: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x214; 849 pub const ERROR_NO_CLASSINSTALL_PARAMS: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 850 | 0x215; 851 pub const ERROR_FILEQUEUE_LOCKED: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 852 | 0x216; 853 pub const ERROR_BAD_SERVICE_INSTALLSECT: ::DWORD = ::APPLICATION_ERROR_MASK 854 | ::ERROR_SEVERITY_ERROR | 0x217; 855 pub const ERROR_NO_CLASS_DRIVER_LIST: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 856 | 0x218; 857 pub const ERROR_NO_ASSOCIATED_SERVICE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 858 | 0x219; 859 pub const ERROR_NO_DEFAULT_DEVICE_INTERFACE: ::DWORD = ::APPLICATION_ERROR_MASK 860 | ::ERROR_SEVERITY_ERROR | 0x21A; 861 pub const ERROR_DEVICE_INTERFACE_ACTIVE: ::DWORD = ::APPLICATION_ERROR_MASK 862 | ::ERROR_SEVERITY_ERROR | 0x21B; 863 pub const ERROR_DEVICE_INTERFACE_REMOVED: ::DWORD = ::APPLICATION_ERROR_MASK 864 | ::ERROR_SEVERITY_ERROR | 0x21C; 865 pub const ERROR_BAD_INTERFACE_INSTALLSECT: ::DWORD = ::APPLICATION_ERROR_MASK 866 | ::ERROR_SEVERITY_ERROR | 0x21D; 867 pub const ERROR_NO_SUCH_INTERFACE_CLASS: ::DWORD = ::APPLICATION_ERROR_MASK 868 | ::ERROR_SEVERITY_ERROR | 0x21E; 869 pub const ERROR_INVALID_REFERENCE_STRING: ::DWORD = ::APPLICATION_ERROR_MASK 870 | ::ERROR_SEVERITY_ERROR | 0x21F; 871 pub const ERROR_INVALID_MACHINENAME: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 872 | 0x220; 873 pub const ERROR_REMOTE_COMM_FAILURE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 874 | 0x221; 875 pub const ERROR_MACHINE_UNAVAILABLE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 876 | 0x222; 877 pub const ERROR_NO_CONFIGMGR_SERVICES: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 878 | 0x223; 879 pub const ERROR_INVALID_PROPPAGE_PROVIDER: ::DWORD = ::APPLICATION_ERROR_MASK 880 | ::ERROR_SEVERITY_ERROR | 0x224; 881 pub const ERROR_NO_SUCH_DEVICE_INTERFACE: ::DWORD = ::APPLICATION_ERROR_MASK 882 | ::ERROR_SEVERITY_ERROR | 0x225; 883 pub const ERROR_DI_POSTPROCESSING_REQUIRED: ::DWORD = ::APPLICATION_ERROR_MASK 884 | ::ERROR_SEVERITY_ERROR | 0x226; 885 pub const ERROR_INVALID_COINSTALLER: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 886 | 0x227; 887 pub const ERROR_NO_COMPAT_DRIVERS: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 888 | 0x228; 889 pub const ERROR_NO_DEVICE_ICON: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 890 | 0x229; 891 pub const ERROR_INVALID_INF_LOGCONFIG: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 892 | 0x22A; 893 pub const ERROR_DI_DONT_INSTALL: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 894 | 0x22B; 895 pub const ERROR_INVALID_FILTER_DRIVER: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 896 | 0x22C; 897 pub const ERROR_NON_WINDOWS_NT_DRIVER: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 898 | 0x22D; 899 pub const ERROR_NON_WINDOWS_DRIVER: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 900 | 0x22E; 901 pub const ERROR_NO_CATALOG_FOR_OEM_INF: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 902 | 0x22F; 903 pub const ERROR_DEVINSTALL_QUEUE_NONNATIVE: ::DWORD = ::APPLICATION_ERROR_MASK 904 | ::ERROR_SEVERITY_ERROR | 0x230; 905 pub const ERROR_NOT_DISABLEABLE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 906 | 0x231; 907 pub const ERROR_CANT_REMOVE_DEVINST: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 908 | 0x232; 909 pub const ERROR_INVALID_TARGET: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 910 | 0x233; 911 pub const ERROR_DRIVER_NONNATIVE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 912 | 0x234; 913 pub const ERROR_IN_WOW64: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x235; 914 pub const ERROR_SET_SYSTEM_RESTORE_POINT: ::DWORD = ::APPLICATION_ERROR_MASK 915 | ::ERROR_SEVERITY_ERROR | 0x236; 916 pub const ERROR_SCE_DISABLED: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR | 0x238; 917 pub const ERROR_UNKNOWN_EXCEPTION: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 918 | 0x239; 919 pub const ERROR_PNP_REGISTRY_ERROR: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 920 | 0x23A; 921 pub const ERROR_REMOTE_REQUEST_UNSUPPORTED: ::DWORD = ::APPLICATION_ERROR_MASK 922 | ::ERROR_SEVERITY_ERROR | 0x23B; 923 pub const ERROR_NOT_AN_INSTALLED_OEM_INF: ::DWORD = ::APPLICATION_ERROR_MASK 924 | ::ERROR_SEVERITY_ERROR | 0x23C; 925 pub const ERROR_INF_IN_USE_BY_DEVICES: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 926 | 0x23D; 927 pub const ERROR_DI_FUNCTION_OBSOLETE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 928 | 0x23E; 929 pub const ERROR_NO_AUTHENTICODE_CATALOG: ::DWORD = ::APPLICATION_ERROR_MASK 930 | ::ERROR_SEVERITY_ERROR | 0x23F; 931 pub const ERROR_AUTHENTICODE_DISALLOWED: ::DWORD = ::APPLICATION_ERROR_MASK 932 | ::ERROR_SEVERITY_ERROR | 0x240; 933 pub const ERROR_AUTHENTICODE_TRUSTED_PUBLISHER: ::DWORD = ::APPLICATION_ERROR_MASK 934 | ::ERROR_SEVERITY_ERROR | 0x241; 935 pub const ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED: ::DWORD = ::APPLICATION_ERROR_MASK 936 | ::ERROR_SEVERITY_ERROR | 0x242; 937 pub const ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED: ::DWORD = ::APPLICATION_ERROR_MASK 938 | ::ERROR_SEVERITY_ERROR | 0x243; 939 pub const ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH: ::DWORD = ::APPLICATION_ERROR_MASK 940 | ::ERROR_SEVERITY_ERROR | 0x244; 941 pub const ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE: ::DWORD = ::APPLICATION_ERROR_MASK 942 | ::ERROR_SEVERITY_ERROR | 0x245; 943 pub const ERROR_DEVICE_INSTALLER_NOT_READY: ::DWORD = ::APPLICATION_ERROR_MASK 944 | ::ERROR_SEVERITY_ERROR | 0x246; 945 pub const ERROR_DRIVER_STORE_ADD_FAILED: ::DWORD = ::APPLICATION_ERROR_MASK 946 | ::ERROR_SEVERITY_ERROR | 0x247; 947 pub const ERROR_DEVICE_INSTALL_BLOCKED: ::DWORD = ::APPLICATION_ERROR_MASK 948 | ::ERROR_SEVERITY_ERROR | 0x248; 949 pub const ERROR_DRIVER_INSTALL_BLOCKED: ::DWORD = ::APPLICATION_ERROR_MASK 950 | ::ERROR_SEVERITY_ERROR | 0x249; 951 pub const ERROR_WRONG_INF_TYPE: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 952 | 0x24A; 953 pub const ERROR_FILE_HASH_NOT_IN_CATALOG: ::DWORD = ::APPLICATION_ERROR_MASK 954 | ::ERROR_SEVERITY_ERROR | 0x24B; 955 pub const ERROR_DRIVER_STORE_DELETE_FAILED: ::DWORD = ::APPLICATION_ERROR_MASK 956 | ::ERROR_SEVERITY_ERROR | 0x24C; 957 pub const ERROR_UNRECOVERABLE_STACK_OVERFLOW: ::DWORD = ::APPLICATION_ERROR_MASK 958 | ::ERROR_SEVERITY_ERROR | 0x300; 959 pub const EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW: ::DWORD = 960 ERROR_UNRECOVERABLE_STACK_OVERFLOW; 961 pub const ERROR_NO_DEFAULT_INTERFACE_DEVICE: ::DWORD = ERROR_NO_DEFAULT_DEVICE_INTERFACE; 962 pub const ERROR_INTERFACE_DEVICE_ACTIVE: ::DWORD = ERROR_DEVICE_INTERFACE_ACTIVE; 963 pub const ERROR_INTERFACE_DEVICE_REMOVED: ::DWORD = ERROR_DEVICE_INTERFACE_REMOVED; 964 pub const ERROR_NO_SUCH_INTERFACE_DEVICE: ::DWORD = ERROR_NO_SUCH_DEVICE_INTERFACE; 965 pub const ERROR_NOT_INSTALLED: ::DWORD = ::APPLICATION_ERROR_MASK | ::ERROR_SEVERITY_ERROR 966 | 0x1000; 967 pub const INFINFO_INF_SPEC_IS_HINF: ::DWORD = 1; 968 pub const INFINFO_INF_NAME_IS_ABSOLUTE: ::DWORD = 2; 969 pub const INFINFO_DEFAULT_SEARCH: ::DWORD = 3; 970 pub const INFINFO_REVERSE_DEFAULT_SEARCH: ::DWORD = 4; 971 pub const INFINFO_INF_PATH_LIST_SEARCH: ::DWORD = 5; 972 pub const FILE_COMPRESSION_NONE: ::UINT = 0; 973 pub const FILE_COMPRESSION_WINLZA: ::UINT = 1; 974 pub const FILE_COMPRESSION_MSZIP: ::UINT = 2; 975 pub const FILE_COMPRESSION_NTCAB: ::UINT = 3; 976 pub const SRCLIST_TEMPORARY: ::DWORD = 0x00000001; 977 pub const SRCLIST_NOBROWSE: ::DWORD = 0x00000002; 978 pub const SRCLIST_SYSTEM: ::DWORD = 0x00000010; 979 pub const SRCLIST_USER: ::DWORD = 0x00000020; 980 pub const SRCLIST_SYSIFADMIN: ::DWORD = 0x00000040; 981 pub const SRCLIST_SUBDIRS: ::DWORD = 0x00000100; 982 pub const SRCLIST_APPEND: ::DWORD = 0x00000200; 983 pub const SRCLIST_NOSTRIPPLATFORM: ::DWORD = 0x00000400; 984 pub const IDF_NOBROWSE: ::DWORD = 0x00000001; 985 pub const IDF_NOSKIP: ::DWORD = 0x00000002; 986 pub const IDF_NODETAILS: ::DWORD = 0x00000004; 987 pub const IDF_NOCOMPRESSED: ::DWORD = 0x00000008; 988 pub const IDF_CHECKFIRST: ::DWORD = 0x00000100; 989 pub const IDF_NOBEEP: ::DWORD = 0x00000200; 990 pub const IDF_NOFOREGROUND: ::DWORD = 0x00000400; 991 pub const IDF_WARNIFSKIP: ::DWORD = 0x00000800; 992 pub const IDF_NOREMOVABLEMEDIAPROMPT: ::DWORD = 0x00001000; 993 pub const IDF_USEDISKNAMEASPROMPT: ::DWORD = 0x00002000; 994 pub const IDF_OEMDISK: ::DWORD = 0x80000000; 995 pub const DPROMPT_SUCCESS: ::UINT = 0; 996 pub const DPROMPT_CANCEL: ::UINT = 1; 997 pub const DPROMPT_SKIPFILE: ::UINT = 2; 998 pub const DPROMPT_BUFFERTOOSMALL: ::UINT = 3; 999 pub const DPROMPT_OUTOFMEMORY: ::UINT = 4; 1000 pub const SETDIRID_NOT_FULL_PATH: ::DWORD = 0x00000001; 1001 pub const SRCINFO_PATH: ::UINT = 1; 1002 pub const SRCINFO_TAGFILE: ::UINT = 2; 1003 pub const SRCINFO_DESCRIPTION: ::UINT = 3; 1004 pub const SRCINFO_FLAGS: ::UINT = 4; 1005 pub const SRCINFO_TAGFILE2: ::UINT = 4; 1006 pub const SRC_FLAGS_CABFILE: ::UINT = 0x0010; 1007 pub const SP_COPY_DELETESOURCE: ::DWORD = 0x0000001; 1008 pub const SP_COPY_REPLACEONLY: ::DWORD = 0x0000002; 1009 pub const SP_COPY_NEWER: ::DWORD = 0x0000004; 1010 pub const SP_COPY_NEWER_OR_SAME: ::DWORD = SP_COPY_NEWER; 1011 pub const SP_COPY_NOOVERWRITE: ::DWORD = 0x0000008; 1012 pub const SP_COPY_NODECOMP: ::DWORD = 0x0000010; 1013 pub const SP_COPY_LANGUAGEAWARE: ::DWORD = 0x0000020; 1014 pub const SP_COPY_SOURCE_ABSOLUTE: ::DWORD = 0x0000040; 1015 pub const SP_COPY_SOURCEPATH_ABSOLUTE: ::DWORD = 0x0000080; 1016 pub const SP_COPY_IN_USE_NEEDS_REBOOT: ::DWORD = 0x0000100; 1017 pub const SP_COPY_FORCE_IN_USE: ::DWORD = 0x0000200; 1018 pub const SP_COPY_NOSKIP: ::DWORD = 0x0000400; 1019 pub const SP_FLAG_CABINETCONTINUATION: ::DWORD = 0x0000800; 1020 pub const SP_COPY_FORCE_NOOVERWRITE: ::DWORD = 0x0001000; 1021 pub const SP_COPY_FORCE_NEWER: ::DWORD = 0x0002000; 1022 pub const SP_COPY_WARNIFSKIP: ::DWORD = 0x0004000; 1023 pub const SP_COPY_NOBROWSE: ::DWORD = 0x0008000; 1024 pub const SP_COPY_NEWER_ONLY: ::DWORD = 0x0010000; 1025 pub const SP_COPY_RESERVED: ::DWORD = 0x0020000; 1026 pub const SP_COPY_OEMINF_CATALOG_ONLY: ::DWORD = 0x0040000; 1027 pub const SP_COPY_REPLACE_BOOT_FILE: ::DWORD = 0x0080000; 1028 pub const SP_COPY_NOPRUNE: ::DWORD = 0x0100000; 1029 pub const SP_COPY_OEM_F6_INF: ::DWORD = 0x0200000; 1030 pub const SP_COPY_ALREADYDECOMP: ::DWORD = 0x0400000; 1031 pub const SP_COPY_WINDOWS_SIGNED: ::DWORD = 0x1000000; 1032 pub const SP_COPY_PNPLOCKED: ::DWORD = 0x2000000; 1033 pub const SP_COPY_IN_USE_TRY_RENAME: ::DWORD = 0x4000000; 1034 pub const SP_COPY_INBOX_INF: ::DWORD = 0x8000000; 1035 pub const SP_COPY_HARDLINK: ::DWORD = 0x10000000; 1036 pub const SP_BACKUP_BACKUPPASS: ::DWORD = 0x00000001; 1037 pub const SP_BACKUP_DEMANDPASS: ::DWORD = 0x00000002; 1038 pub const SP_BACKUP_SPECIAL: ::DWORD = 0x00000004; 1039 pub const SP_BACKUP_BOOTFILE: ::DWORD = 0x00000008; 1040 pub const SPQ_SCAN_FILE_PRESENCE: ::DWORD = 0x00000001; 1041 pub const SPQ_SCAN_FILE_VALIDITY: ::DWORD = 0x00000002; 1042 pub const SPQ_SCAN_USE_CALLBACK: ::DWORD = 0x00000004; 1043 pub const SPQ_SCAN_USE_CALLBACKEX: ::DWORD = 0x00000008; 1044 pub const SPQ_SCAN_INFORM_USER: ::DWORD = 0x00000010; 1045 pub const SPQ_SCAN_PRUNE_COPY_QUEUE: ::DWORD = 0x00000020; 1046 pub const SPQ_SCAN_USE_CALLBACK_SIGNERINFO: ::DWORD = 0x00000040; 1047 pub const SPQ_SCAN_PRUNE_DELREN: ::DWORD = 0x00000080; 1048 pub const SPQ_SCAN_FILE_PRESENCE_WITHOUT_SOURCE: ::DWORD = 0x00000100; 1049 pub const SPQ_SCAN_FILE_COMPARISON: ::DWORD = 0x00000200; 1050 pub const SPQ_SCAN_ACTIVATE_DRP: ::DWORD = 0x00000400; 1051 pub const SPQ_DELAYED_COPY: ::DWORD = 0x00000001; 1052 pub const SPQ_FLAG_BACKUP_AWARE: ::DWORD = 0x00000001; 1053 pub const SPQ_FLAG_ABORT_IF_UNSIGNED: ::DWORD = 0x00000002; 1054 pub const SPQ_FLAG_FILES_MODIFIED: ::DWORD = 0x00000004; 1055 pub const SPQ_FLAG_DO_SHUFFLEMOVE: ::DWORD = 0x00000008; 1056 pub const SPQ_FLAG_VALID: ::DWORD = 0x0000000F; 1057 pub const SPOST_NONE: ::DWORD = 0; 1058 pub const SPOST_PATH: ::DWORD = 1; 1059 pub const SPOST_URL: ::DWORD = 2; 1060 pub const SPOST_MAX: ::DWORD = 3; 1061 pub const SUOI_FORCEDELETE: ::DWORD = 0x00000001; 1062 pub const SUOI_INTERNAL1: ::DWORD = 0x00000002; 1063 pub const SPDSL_IGNORE_DISK: ::UINT = 0x00000001; 1064 pub const SPDSL_DISALLOW_NEGATIVE_ADJUST: ::UINT = 0x00000002; 1065 pub const SPFILEQ_FILE_IN_USE: ::INT = 0x00000001; 1066 pub const SPFILEQ_REBOOT_RECOMMENDED: ::INT = 0x00000002; 1067 pub const SPFILEQ_REBOOT_IN_PROGRESS: ::INT = 0x00000004; 1068 pub const FLG_ADDREG_DELREG_BIT: ::DWORD = 0x00008000; 1069 pub const FLG_ADDREG_BINVALUETYPE: ::DWORD = 0x00000001; 1070 pub const FLG_ADDREG_NOCLOBBER: ::DWORD = 0x00000002; 1071 pub const FLG_ADDREG_DELVAL: ::DWORD = 0x00000004; 1072 pub const FLG_ADDREG_APPEND: ::DWORD = 0x00000008; 1073 pub const FLG_ADDREG_KEYONLY: ::DWORD = 0x00000010; 1074 pub const FLG_ADDREG_OVERWRITEONLY: ::DWORD = 0x00000020; 1075 pub const FLG_ADDREG_64BITKEY: ::DWORD = 0x00001000; 1076 pub const FLG_ADDREG_KEYONLY_COMMON: ::DWORD = 0x00002000; 1077 pub const FLG_ADDREG_32BITKEY: ::DWORD = 0x00004000; 1078 pub const FLG_ADDREG_TYPE_MASK: ::DWORD = 0xFFFF0000 | FLG_ADDREG_BINVALUETYPE; 1079 pub const FLG_ADDREG_TYPE_SZ: ::DWORD = 0x00000000; 1080 pub const FLG_ADDREG_TYPE_MULTI_SZ: ::DWORD = 0x00010000; 1081 pub const FLG_ADDREG_TYPE_EXPAND_SZ: ::DWORD = 0x00020000; 1082 pub const FLG_ADDREG_TYPE_BINARY: ::DWORD = 0x00000000 | FLG_ADDREG_BINVALUETYPE; 1083 pub const FLG_ADDREG_TYPE_DWORD: ::DWORD = 0x00010000 | FLG_ADDREG_BINVALUETYPE; 1084 pub const FLG_ADDREG_TYPE_NONE: ::DWORD = 0x00020000 | FLG_ADDREG_BINVALUETYPE; 1085 pub const FLG_DELREG_VALUE: ::DWORD = 0x00000000; 1086 pub const FLG_DELREG_TYPE_MASK: ::DWORD = FLG_ADDREG_TYPE_MASK; 1087 pub const FLG_DELREG_TYPE_SZ: ::DWORD = FLG_ADDREG_TYPE_SZ; 1088 pub const FLG_DELREG_TYPE_MULTI_SZ: ::DWORD = FLG_ADDREG_TYPE_MULTI_SZ; 1089 pub const FLG_DELREG_TYPE_EXPAND_SZ: ::DWORD = FLG_ADDREG_TYPE_EXPAND_SZ; 1090 pub const FLG_DELREG_TYPE_BINARY: ::DWORD = FLG_ADDREG_TYPE_BINARY; 1091 pub const FLG_DELREG_TYPE_DWORD: ::DWORD = FLG_ADDREG_TYPE_DWORD; 1092 pub const FLG_DELREG_TYPE_NONE: ::DWORD = FLG_ADDREG_TYPE_NONE; 1093 pub const FLG_DELREG_64BITKEY: ::DWORD = FLG_ADDREG_64BITKEY; 1094 pub const FLG_DELREG_KEYONLY_COMMON: ::DWORD = FLG_ADDREG_KEYONLY_COMMON; 1095 pub const FLG_DELREG_32BITKEY: ::DWORD = FLG_ADDREG_32BITKEY; 1096 pub const FLG_DELREG_OPERATION_MASK: ::DWORD = 0x000000FE; 1097 pub const FLG_DELREG_MULTI_SZ_DELSTRING: ::DWORD = FLG_DELREG_TYPE_MULTI_SZ | FLG_ADDREG_DELREG_BIT 1098 | 0x00000002; 1099 pub const FLG_BITREG_CLEARBITS: ::DWORD = 0x00000000; 1100 pub const FLG_BITREG_SETBITS: ::DWORD = 0x00000001; 1101 pub const FLG_BITREG_64BITKEY: ::DWORD = 0x00001000; 1102 pub const FLG_BITREG_32BITKEY: ::DWORD = 0x00004000; 1103 pub const FLG_INI2REG_64BITKEY: ::DWORD = 0x00001000; 1104 pub const FLG_INI2REG_32BITKEY: ::DWORD = 0x00004000; 1105 pub const FLG_REGSVR_DLLREGISTER: ::DWORD = 0x00000001; 1106 pub const FLG_REGSVR_DLLINSTALL: ::DWORD = 0x00000002; 1107 pub const FLG_PROFITEM_CURRENTUSER: ::DWORD = 0x00000001; 1108 pub const FLG_PROFITEM_DELETE: ::DWORD = 0x00000002; 1109 pub const FLG_PROFITEM_GROUP: ::DWORD = 0x00000004; 1110 pub const FLG_PROFITEM_CSIDL: ::DWORD = 0x00000008; 1111 pub const FLG_ADDPROPERTY_NOCLOBBER: ::DWORD = 0x00000001; 1112 pub const FLG_ADDPROPERTY_OVERWRITEONLY: ::DWORD = 0x00000002; 1113 pub const FLG_ADDPROPERTY_APPEND: ::DWORD = 0x00000004; 1114 pub const FLG_ADDPROPERTY_OR: ::DWORD = 0x00000008; 1115 pub const FLG_ADDPROPERTY_AND: ::DWORD = 0x00000010; 1116 pub const FLG_DELPROPERTY_MULTI_SZ_DELSTRING: ::DWORD = 0x00000001; 1117 pub const SPINST_LOGCONFIG: ::UINT = 0x00000001; 1118 pub const SPINST_INIFILES: ::UINT = 0x00000002; 1119 pub const SPINST_REGISTRY: ::UINT = 0x00000004; 1120 pub const SPINST_INI2REG: ::UINT = 0x00000008; 1121 pub const SPINST_FILES: ::UINT = 0x00000010; 1122 pub const SPINST_BITREG: ::UINT = 0x00000020; 1123 pub const SPINST_REGSVR: ::UINT = 0x00000040; 1124 pub const SPINST_UNREGSVR: ::UINT = 0x00000080; 1125 pub const SPINST_PROFILEITEMS: ::UINT = 0x00000100; 1126 pub const SPINST_COPYINF: ::UINT = 0x00000200; 1127 pub const SPINST_PROPERTIES: ::UINT = 0x00000400; 1128 pub const SPINST_ALL: ::UINT = 0x000007ff; 1129 pub const SPINST_SINGLESECTION: ::UINT = 0x00010000; 1130 pub const SPINST_LOGCONFIG_IS_FORCED: ::UINT = 0x00020000; 1131 pub const SPINST_LOGCONFIGS_ARE_OVERRIDES: ::UINT = 0x00040000; 1132 pub const SPINST_REGISTERCALLBACKAWARE: ::UINT = 0x00080000; 1133 pub const SPINST_DEVICEINSTALL: ::UINT = 0x00100000; 1134 pub const SPSVCINST_TAGTOFRONT: ::DWORD = 0x00000001; 1135 pub const SPSVCINST_ASSOCSERVICE: ::DWORD = 0x00000002; 1136 pub const SPSVCINST_DELETEEVENTLOGENTRY: ::DWORD = 0x00000004; 1137 pub const SPSVCINST_NOCLOBBER_DISPLAYNAME: ::DWORD = 0x00000008; 1138 pub const SPSVCINST_NOCLOBBER_STARTTYPE: ::DWORD = 0x00000010; 1139 pub const SPSVCINST_NOCLOBBER_ERRORCONTROL: ::DWORD = 0x00000020; 1140 pub const SPSVCINST_NOCLOBBER_LOADORDERGROUP: ::DWORD = 0x00000040; 1141 pub const SPSVCINST_NOCLOBBER_DEPENDENCIES: ::DWORD = 0x00000080; 1142 pub const SPSVCINST_NOCLOBBER_DESCRIPTION: ::DWORD = 0x00000100; 1143 pub const SPSVCINST_STOPSERVICE: ::DWORD = 0x00000200; 1144 pub const SPSVCINST_CLOBBER_SECURITY: ::DWORD = 0x00000400; 1145 pub const SPSVCINST_STARTSERVICE: ::DWORD = 0x00000800; 1146 pub const SPSVCINST_NOCLOBBER_REQUIREDPRIVILEGES: ::DWORD = 0x00001000; 1147 pub type HSPFILELOG = ::PVOID; 1148 pub const SPFILELOG_SYSTEMLOG: ::DWORD = 0x00000001; 1149 pub const SPFILELOG_FORCENEW: ::DWORD = 0x00000002; 1150 pub const SPFILELOG_QUERYONLY: ::DWORD = 0x00000004; 1151 pub const SPFILELOG_OEMFILE: ::DWORD = 0x00000001; 1152 ENUM!{enum SetupFileLogInfo { 1153 SetupFileLogSourceFilename, 1154 SetupFileLogChecksum, 1155 SetupFileLogDiskTagfile, 1156 SetupFileLogDiskDescription, 1157 SetupFileLogOtherInfo, 1158 SetupFileLogMax, 1159 }} 1160 pub type LogSeverity = ::DWORD; 1161 pub const LogSevInformation: LogSeverity = 0x00000000; 1162 pub const LogSevWarning: LogSeverity = 0x00000001; 1163 pub const LogSevError: LogSeverity = 0x00000002; 1164 pub const LogSevFatalError: LogSeverity = 0x00000003; 1165 pub const LogSevMaximum: LogSeverity = 0x00000004; 1166 pub const DICD_GENERATE_ID: ::DWORD = 0x00000001; 1167 pub const DICD_INHERIT_CLASSDRVS: ::DWORD = 0x00000002; 1168 pub const DIOD_INHERIT_CLASSDRVS: ::DWORD = 0x00000002; 1169 pub const DIOD_CANCEL_REMOVE: ::DWORD = 0x00000004; 1170 pub const DIODI_NO_ADD: ::DWORD = 0x00000001; 1171 pub const SPRDI_FIND_DUPS: ::DWORD = 0x00000001; 1172 pub const SPDIT_NODRIVER: ::DWORD = 0x00000000; 1173 pub const SPDIT_CLASSDRIVER: ::DWORD = 0x00000001; 1174 pub const SPDIT_COMPATDRIVER: ::DWORD = 0x00000002; 1175 pub const DIGCF_DEFAULT: ::DWORD = 0x00000001; 1176 pub const DIGCF_PRESENT: ::DWORD = 0x00000002; 1177 pub const DIGCF_ALLCLASSES: ::DWORD = 0x00000004; 1178 pub const DIGCF_PROFILE: ::DWORD = 0x00000008; 1179 pub const DIGCF_DEVICEINTERFACE: ::DWORD = 0x00000010; 1180 pub const DIBCI_NOINSTALLCLASS: ::DWORD = 0x00000001; 1181 pub const DIBCI_NODISPLAYCLASS: ::DWORD = 0x00000002; 1182 pub const DIOCR_INSTALLER: ::DWORD = 0x00000001; 1183 pub const DIOCR_INTERFACE: ::DWORD = 0x00000002; 1184 pub const DIREG_DEV: ::DWORD = 0x00000001; 1185 pub const DIREG_DRV: ::DWORD = 0x00000002; 1186 pub const DIREG_BOTH: ::DWORD = 0x00000004; 1187 pub const DICLASSPROP_INSTALLER: ::DWORD = 0x00000001; 1188 pub const DICLASSPROP_INTERFACE: ::DWORD = 0x00000002; 1189 pub const SPDRP_DEVICEDESC: ::DWORD = 0x00000000; 1190 pub const SPDRP_HARDWAREID: ::DWORD = 0x00000001; 1191 pub const SPDRP_COMPATIBLEIDS: ::DWORD = 0x00000002; 1192 pub const SPDRP_UNUSED0: ::DWORD = 0x00000003; 1193 pub const SPDRP_SERVICE: ::DWORD = 0x00000004; 1194 pub const SPDRP_UNUSED1: ::DWORD = 0x00000005; 1195 pub const SPDRP_UNUSED2: ::DWORD = 0x00000006; 1196 pub const SPDRP_CLASS: ::DWORD = 0x00000007; 1197 pub const SPDRP_CLASSGUID: ::DWORD = 0x00000008; 1198 pub const SPDRP_DRIVER: ::DWORD = 0x00000009; 1199 pub const SPDRP_CONFIGFLAGS: ::DWORD = 0x0000000A; 1200 pub const SPDRP_MFG: ::DWORD = 0x0000000B; 1201 pub const SPDRP_FRIENDLYNAME: ::DWORD = 0x0000000C; 1202 pub const SPDRP_LOCATION_INFORMATION: ::DWORD = 0x0000000D; 1203 pub const SPDRP_PHYSICAL_DEVICE_OBJECT_NAME: ::DWORD = 0x0000000E; 1204 pub const SPDRP_CAPABILITIES: ::DWORD = 0x0000000F; 1205 pub const SPDRP_UI_NUMBER: ::DWORD = 0x00000010; 1206 pub const SPDRP_UPPERFILTERS: ::DWORD = 0x00000011; 1207 pub const SPDRP_LOWERFILTERS: ::DWORD = 0x00000012; 1208 pub const SPDRP_BUSTYPEGUID: ::DWORD = 0x00000013; 1209 pub const SPDRP_LEGACYBUSTYPE: ::DWORD = 0x00000014; 1210 pub const SPDRP_BUSNUMBER: ::DWORD = 0x00000015; 1211 pub const SPDRP_ENUMERATOR_NAME: ::DWORD = 0x00000016; 1212 pub const SPDRP_SECURITY: ::DWORD = 0x00000017; 1213 pub const SPDRP_SECURITY_SDS: ::DWORD = 0x00000018; 1214 pub const SPDRP_DEVTYPE: ::DWORD = 0x00000019; 1215 pub const SPDRP_EXCLUSIVE: ::DWORD = 0x0000001A; 1216 pub const SPDRP_CHARACTERISTICS: ::DWORD = 0x0000001B; 1217 pub const SPDRP_ADDRESS: ::DWORD = 0x0000001C; 1218 pub const SPDRP_UI_NUMBER_DESC_FORMAT: ::DWORD = 0x0000001D; 1219 pub const SPDRP_DEVICE_POWER_DATA: ::DWORD = 0x0000001E; 1220 pub const SPDRP_REMOVAL_POLICY: ::DWORD = 0x0000001F; 1221 pub const SPDRP_REMOVAL_POLICY_HW_DEFAULT: ::DWORD = 0x00000020; 1222 pub const SPDRP_REMOVAL_POLICY_OVERRIDE: ::DWORD = 0x00000021; 1223 pub const SPDRP_INSTALL_STATE: ::DWORD = 0x00000022; 1224 pub const SPDRP_LOCATION_PATHS: ::DWORD = 0x00000023; 1225 pub const SPDRP_BASE_CONTAINERID: ::DWORD = 0x00000024; 1226 pub const SPDRP_MAXIMUM_PROPERTY: ::DWORD = 0x00000025; 1227 pub const SPCRP_UPPERFILTERS: ::DWORD = 0x00000011; 1228 pub const SPCRP_LOWERFILTERS: ::DWORD = 0x00000012; 1229 pub const SPCRP_SECURITY: ::DWORD = 0x00000017; 1230 pub const SPCRP_SECURITY_SDS: ::DWORD = 0x00000018; 1231 pub const SPCRP_DEVTYPE: ::DWORD = 0x00000019; 1232 pub const SPCRP_EXCLUSIVE: ::DWORD = 0x0000001A; 1233 pub const SPCRP_CHARACTERISTICS: ::DWORD = 0x0000001B; 1234 pub const SPCRP_MAXIMUM_PROPERTY: ::DWORD = 0x0000001C; 1235 pub const DMI_MASK: ::DWORD = 0x00000001; 1236 pub const DMI_BKCOLOR: ::DWORD = 0x00000002; 1237 pub const DMI_USERECT: ::DWORD = 0x00000004; 1238 pub const DIGCDP_FLAG_BASIC: ::DWORD = 0x00000001; 1239 pub const DIGCDP_FLAG_ADVANCED: ::DWORD = 0x00000002; 1240 pub const DIGCDP_FLAG_REMOTE_BASIC: ::DWORD = 0x00000003; 1241 pub const DIGCDP_FLAG_REMOTE_ADVANCED: ::DWORD = 0x00000004; 1242 pub const IDI_RESOURCEFIRST: ::c_int = 159; 1243 pub const IDI_RESOURCE: ::c_int = 159; 1244 pub const IDI_RESOURCELAST: ::c_int = 161; 1245 pub const IDI_RESOURCEOVERLAYFIRST: ::c_int = 161; 1246 pub const IDI_RESOURCEOVERLAYLAST: ::c_int = 161; 1247 pub const IDI_CONFLICT: ::c_int = 161; 1248 pub const IDI_CLASSICON_OVERLAYFIRST: ::c_int = 500; 1249 pub const IDI_CLASSICON_OVERLAYLAST: ::c_int = 502; 1250 pub const IDI_PROBLEM_OVL: ::c_int = 500; 1251 pub const IDI_DISABLED_OVL: ::c_int = 501; 1252 pub const IDI_FORCED_OVL: ::c_int = 502; 1253 pub const SPWPT_SELECTDEVICE: ::DWORD = 0x00000001; 1254 pub const SPWP_USE_DEVINFO_DATA: ::DWORD = 0x00000001; 1255 STRUCT!{nodebug struct SP_INF_SIGNER_INFO_V1_A { 1256 cbSize: ::DWORD, 1257 CatalogFile: [::CHAR; ::MAX_PATH], 1258 DigitalSigner: [::CHAR; ::MAX_PATH], 1259 DigitalSignerVersion: [::CHAR; ::MAX_PATH], 1260 }} 1261 pub type PSP_INF_SIGNER_INFO_V1_A = *mut SP_INF_SIGNER_INFO_V1_A; 1262 STRUCT!{nodebug struct SP_INF_SIGNER_INFO_V1_W { 1263 cbSize: ::DWORD, 1264 CatalogFile: [::WCHAR; ::MAX_PATH], 1265 DigitalSigner: [::WCHAR; ::MAX_PATH], 1266 DigitalSignerVersion: [::WCHAR; ::MAX_PATH], 1267 }} 1268 pub type PSP_INF_SIGNER_INFO_V1_W = *mut SP_INF_SIGNER_INFO_V1_W; 1269 STRUCT!{nodebug struct SP_INF_SIGNER_INFO_V2_A { 1270 cbSize: ::DWORD, 1271 CatalogFile: [::CHAR; ::MAX_PATH], 1272 DigitalSigner: [::CHAR; ::MAX_PATH], 1273 DigitalSignerVersion: [::CHAR; ::MAX_PATH], 1274 SignerScore: ::DWORD, 1275 }} 1276 pub type PSP_INF_SIGNER_INFO_V2_A = *mut SP_INF_SIGNER_INFO_V2_A; 1277 STRUCT!{nodebug struct SP_INF_SIGNER_INFO_V2_W { 1278 cbSize: ::DWORD, 1279 CatalogFile: [::WCHAR; ::MAX_PATH], 1280 DigitalSigner: [::WCHAR; ::MAX_PATH], 1281 DigitalSignerVersion: [::WCHAR; ::MAX_PATH], 1282 SignerScore: ::DWORD, 1283 }} 1284 pub type PSP_INF_SIGNER_INFO_V2_W = *mut SP_INF_SIGNER_INFO_V2_W; 1285 pub type SP_INF_SIGNER_INFO_A = SP_INF_SIGNER_INFO_V2_A; 1286 pub type PSP_INF_SIGNER_INFO_A = PSP_INF_SIGNER_INFO_V2_A; 1287 pub type SP_INF_SIGNER_INFO_W = SP_INF_SIGNER_INFO_V2_W; 1288 pub type PSP_INF_SIGNER_INFO_W = PSP_INF_SIGNER_INFO_V2_W; 1289 pub const SIGNERSCORE_UNKNOWN: ::DWORD = 0xFF000000; 1290 pub const SIGNERSCORE_W9X_SUSPECT: ::DWORD = 0xC0000000; 1291 pub const SIGNERSCORE_UNSIGNED: ::DWORD = 0x80000000; 1292 pub const SIGNERSCORE_AUTHENTICODE: ::DWORD = 0x0F000000; 1293 pub const SIGNERSCORE_WHQL: ::DWORD = 0x0D000005; 1294 pub const SIGNERSCORE_UNCLASSIFIED: ::DWORD = 0x0D000004; 1295 pub const SIGNERSCORE_INBOX: ::DWORD = 0x0D000003; 1296 pub const SIGNERSCORE_LOGO_STANDARD: ::DWORD = 0x0D000002; 1297 pub const SIGNERSCORE_LOGO_PREMIUM: ::DWORD = 0x0D000001; 1298 pub const SIGNERSCORE_MASK: ::DWORD = 0xFF000000; 1299 pub const SIGNERSCORE_SIGNED_MASK: ::DWORD = 0xF0000000; 1300 pub const DICUSTOMDEVPROP_MERGE_MULTISZ: ::DWORD = 0x00000001; 1301 pub const SCWMI_CLOBBER_SECURITY: ::DWORD = 0x00000001; 1302