| 1 | /* | 
|---|
| 2 | plug and play services | 
|---|
| 3 | */ | 
|---|
| 4 |  | 
|---|
| 5 | import "misc.idl"; | 
|---|
| 6 |  | 
|---|
| 7 | [ | 
|---|
| 8 | uuid("8d9f4e40-a03d-11ce-8f69-08003e30051b"), | 
|---|
| 9 | version(1.0), | 
|---|
| 10 | endpoint("ncacn_np:[\\pipe\\ntsvcs]","ncacn_np:[\\pipe\\plugplay]"), | 
|---|
| 11 | helpstring("Plug and Play services") | 
|---|
| 12 | ] | 
|---|
| 13 | interface ntsvcs | 
|---|
| 14 | { | 
|---|
| 15 | /******************/ | 
|---|
| 16 | /* Function: 0x00 */ | 
|---|
| 17 |  | 
|---|
| 18 | [todo] WERROR PNP_Disconnect(); | 
|---|
| 19 |  | 
|---|
| 20 | /******************/ | 
|---|
| 21 | /* Function: 0x01 */ | 
|---|
| 22 |  | 
|---|
| 23 | [todo] WERROR PNP_Connect(); | 
|---|
| 24 |  | 
|---|
| 25 | /******************/ | 
|---|
| 26 | /* Function: 0x02 */ | 
|---|
| 27 |  | 
|---|
| 28 | WERROR PNP_GetVersion( | 
|---|
| 29 | [out,ref] uint16 *version | 
|---|
| 30 | ); | 
|---|
| 31 |  | 
|---|
| 32 | /******************/ | 
|---|
| 33 | /* Function: 0x03 */ | 
|---|
| 34 |  | 
|---|
| 35 | [todo] WERROR PNP_GetGlobalState(); | 
|---|
| 36 |  | 
|---|
| 37 | /******************/ | 
|---|
| 38 | /* Function: 0x04 */ | 
|---|
| 39 |  | 
|---|
| 40 | [todo] WERROR PNP_InitDetection(); | 
|---|
| 41 |  | 
|---|
| 42 | /******************/ | 
|---|
| 43 | /* Function: 0x05 */ | 
|---|
| 44 |  | 
|---|
| 45 | [todo] WERROR PNP_ReportLogOn(); | 
|---|
| 46 |  | 
|---|
| 47 | /******************/ | 
|---|
| 48 | /* Function: 0x06 */ | 
|---|
| 49 |  | 
|---|
| 50 | WERROR PNP_ValidateDeviceInstance( | 
|---|
| 51 | [in,ref] [string,charset(UTF16)] uint16 *devicepath, | 
|---|
| 52 | [in] uint32 flags | 
|---|
| 53 | ); | 
|---|
| 54 |  | 
|---|
| 55 | /******************/ | 
|---|
| 56 | /* Function: 0x07 */ | 
|---|
| 57 |  | 
|---|
| 58 | [todo] WERROR PNP_GetRootDeviceInstance(); | 
|---|
| 59 |  | 
|---|
| 60 | /******************/ | 
|---|
| 61 | /* Function: 0x08 */ | 
|---|
| 62 |  | 
|---|
| 63 | [todo] WERROR PNP_GetRelatedDeviceInstance(); | 
|---|
| 64 |  | 
|---|
| 65 | /******************/ | 
|---|
| 66 | /* Function: 0x09 */ | 
|---|
| 67 |  | 
|---|
| 68 | [todo] WERROR PNP_EnumerateSubKeys(); | 
|---|
| 69 |  | 
|---|
| 70 | /******************/ | 
|---|
| 71 | /* Function: 0x0a */ | 
|---|
| 72 |  | 
|---|
| 73 | const int CM_GETIDLIST_FILTER_NONE      = 0x00000000; | 
|---|
| 74 |  | 
|---|
| 75 | typedef [bitmap32bit] bitmap { | 
|---|
| 76 | CM_GETIDLIST_FILTER_ENUMERATOR          = 0x00000001, | 
|---|
| 77 | CM_GETIDLIST_FILTER_SERVICE             = 0x00000002, | 
|---|
| 78 | CM_GETIDLIST_FILTER_EJECTRELATIONS      = 0x00000004, | 
|---|
| 79 | CM_GETIDLIST_FILTER_REMOVALRELATIONS    = 0x00000008, | 
|---|
| 80 | CM_GETIDLIST_FILTER_POWERRELATIONS      = 0x00000010, | 
|---|
| 81 | CM_GETIDLIST_FILTER_BUSRELATIONS        = 0x00000020, | 
|---|
| 82 | CM_GETIDLIST_DONOTGENERATE              = 0x10000040, | 
|---|
| 83 | CM_GETIDLIST_FILTER_TRANSPORTRELATIONS  = 0x00000080, | 
|---|
| 84 | CM_GETIDLIST_FILTER_PRESENT             = 0x00000100, | 
|---|
| 85 | CM_GETIDLIST_FILTER_CLASS               = 0x00000200 | 
|---|
| 86 | } PNP_GetIdListFlags; | 
|---|
| 87 |  | 
|---|
| 88 | WERROR PNP_GetDeviceList( | 
|---|
| 89 | [in,unique] [string,charset(UTF16)] uint16 *filter, | 
|---|
| 90 | [out,ref] [size_is(*length),length_is(*length)] uint16 *buffer, | 
|---|
| 91 | [in,out,ref] uint32 *length, | 
|---|
| 92 | [in] PNP_GetIdListFlags flags | 
|---|
| 93 | ); | 
|---|
| 94 |  | 
|---|
| 95 | /******************/ | 
|---|
| 96 | /* Function: 0x0b */ | 
|---|
| 97 |  | 
|---|
| 98 | WERROR PNP_GetDeviceListSize( | 
|---|
| 99 | [in,unique] [string,charset(UTF16)] uint16 *devicename, | 
|---|
| 100 | [out,ref] uint32 *size, | 
|---|
| 101 | [in] PNP_GetIdListFlags flags | 
|---|
| 102 | ); | 
|---|
| 103 |  | 
|---|
| 104 | /******************/ | 
|---|
| 105 | /* Function: 0x0c */ | 
|---|
| 106 |  | 
|---|
| 107 | [todo] WERROR PNP_GetDepth(); | 
|---|
| 108 |  | 
|---|
| 109 | /******************/ | 
|---|
| 110 | /* Function: 0x0d */ | 
|---|
| 111 |  | 
|---|
| 112 | const int DEV_REGPROP_DESC = 1; | 
|---|
| 113 |  | 
|---|
| 114 | WERROR PNP_GetDeviceRegProp( | 
|---|
| 115 | [in,ref] [string,charset(UTF16)] uint16 *devicepath, | 
|---|
| 116 | [in] uint32 property, | 
|---|
| 117 | [in,out,ref] winreg_Type *reg_data_type, | 
|---|
| 118 | [out,ref] [size_is(*buffer_size)] [length_is(*buffer_size)] uint8 *buffer, | 
|---|
| 119 | [in,out,ref] uint32 *buffer_size, | 
|---|
| 120 | [in,out,ref] uint32 *needed, | 
|---|
| 121 | [in] uint32 flags | 
|---|
| 122 | ); | 
|---|
| 123 |  | 
|---|
| 124 | /******************/ | 
|---|
| 125 | /* Function: 0x0e */ | 
|---|
| 126 |  | 
|---|
| 127 | [todo] WERROR PNP_SetDeviceRegProp(); | 
|---|
| 128 |  | 
|---|
| 129 | /******************/ | 
|---|
| 130 | /* Function: 0x0f */ | 
|---|
| 131 |  | 
|---|
| 132 | [todo] WERROR PNP_GetClassInstance(); | 
|---|
| 133 |  | 
|---|
| 134 | /******************/ | 
|---|
| 135 | /* Function: 0x10 */ | 
|---|
| 136 |  | 
|---|
| 137 | [todo] WERROR PNP_CreateKey(); | 
|---|
| 138 |  | 
|---|
| 139 | /******************/ | 
|---|
| 140 | /* Function: 0x11 */ | 
|---|
| 141 |  | 
|---|
| 142 | [todo] WERROR PNP_DeleteRegistryKey(); | 
|---|
| 143 |  | 
|---|
| 144 | /******************/ | 
|---|
| 145 | /* Function: 0x12 */ | 
|---|
| 146 |  | 
|---|
| 147 | [todo] WERROR PNP_GetClassCount(); | 
|---|
| 148 |  | 
|---|
| 149 | /******************/ | 
|---|
| 150 | /* Function: 0x13 */ | 
|---|
| 151 |  | 
|---|
| 152 | [todo] WERROR PNP_GetClassName(); | 
|---|
| 153 |  | 
|---|
| 154 | /******************/ | 
|---|
| 155 | /* Function: 0x14 */ | 
|---|
| 156 |  | 
|---|
| 157 | [todo] WERROR PNP_DeleteClassKey(); | 
|---|
| 158 |  | 
|---|
| 159 | /******************/ | 
|---|
| 160 | /* Function: 0x15 */ | 
|---|
| 161 |  | 
|---|
| 162 | [todo] WERROR PNP_GetInterfaceDeviceAlias(); | 
|---|
| 163 |  | 
|---|
| 164 | /******************/ | 
|---|
| 165 | /* Function: 0x16 */ | 
|---|
| 166 |  | 
|---|
| 167 | [todo] WERROR PNP_GetInterfaceDeviceList(); | 
|---|
| 168 |  | 
|---|
| 169 | /******************/ | 
|---|
| 170 | /* Function: 0x17 */ | 
|---|
| 171 |  | 
|---|
| 172 | [todo] WERROR PNP_GetInterfaceDeviceListSize(); | 
|---|
| 173 |  | 
|---|
| 174 | /******************/ | 
|---|
| 175 | /* Function: 0x18 */ | 
|---|
| 176 |  | 
|---|
| 177 | [todo] WERROR PNP_RegisterDeviceClassAssociation(); | 
|---|
| 178 |  | 
|---|
| 179 | /******************/ | 
|---|
| 180 | /* Function: 0x19 */ | 
|---|
| 181 |  | 
|---|
| 182 | [todo] WERROR PNP_UnregisterDeviceClassAssociation(); | 
|---|
| 183 |  | 
|---|
| 184 | /******************/ | 
|---|
| 185 | /* Function: 0x1a */ | 
|---|
| 186 |  | 
|---|
| 187 | [todo] WERROR PNP_GetClassRegProp(); | 
|---|
| 188 |  | 
|---|
| 189 | /******************/ | 
|---|
| 190 | /* Function: 0x1b */ | 
|---|
| 191 |  | 
|---|
| 192 | [todo] WERROR PNP_SetClassRegProp(); | 
|---|
| 193 |  | 
|---|
| 194 | /******************/ | 
|---|
| 195 | /* Function: 0x1c */ | 
|---|
| 196 |  | 
|---|
| 197 | [todo] WERROR PNP_CreateDevInst(); | 
|---|
| 198 |  | 
|---|
| 199 | /******************/ | 
|---|
| 200 | /* Function: 0x1d */ | 
|---|
| 201 |  | 
|---|
| 202 | [todo] WERROR PNP_DeviceInstanceAction(); | 
|---|
| 203 |  | 
|---|
| 204 | /******************/ | 
|---|
| 205 | /* Function: 0x1e */ | 
|---|
| 206 |  | 
|---|
| 207 | [todo] WERROR PNP_GetDeviceStatus(); | 
|---|
| 208 |  | 
|---|
| 209 | /******************/ | 
|---|
| 210 | /* Function: 0x1f */ | 
|---|
| 211 |  | 
|---|
| 212 | [todo] WERROR PNP_SetDeviceProblem(); | 
|---|
| 213 |  | 
|---|
| 214 | /******************/ | 
|---|
| 215 | /* Function: 0x20 */ | 
|---|
| 216 |  | 
|---|
| 217 | [todo] WERROR PNP_DisableDevInst(); | 
|---|
| 218 |  | 
|---|
| 219 | /******************/ | 
|---|
| 220 | /* Function: 0x21 */ | 
|---|
| 221 |  | 
|---|
| 222 | [todo] WERROR PNP_UninstallDevInst(); | 
|---|
| 223 |  | 
|---|
| 224 | /******************/ | 
|---|
| 225 | /* Function: 0x22 */ | 
|---|
| 226 |  | 
|---|
| 227 | [todo] WERROR PNP_AddID(); | 
|---|
| 228 |  | 
|---|
| 229 | /******************/ | 
|---|
| 230 | /* Function: 0x23 */ | 
|---|
| 231 |  | 
|---|
| 232 | [todo] WERROR PNP_RegisterDriver(); | 
|---|
| 233 |  | 
|---|
| 234 | /******************/ | 
|---|
| 235 | /* Function: 0x24 */ | 
|---|
| 236 |  | 
|---|
| 237 | [todo] WERROR PNP_QueryRemove(); | 
|---|
| 238 |  | 
|---|
| 239 | /******************/ | 
|---|
| 240 | /* Function: 0x25 */ | 
|---|
| 241 |  | 
|---|
| 242 | [todo] WERROR PNP_RequestDeviceEject(); | 
|---|
| 243 |  | 
|---|
| 244 | /******************/ | 
|---|
| 245 | /* Function: 0x26 */ | 
|---|
| 246 |  | 
|---|
| 247 | [todo] WERROR PNP_IsDockStationPresent(); | 
|---|
| 248 |  | 
|---|
| 249 | /******************/ | 
|---|
| 250 | /* Function: 0x27 */ | 
|---|
| 251 |  | 
|---|
| 252 | [todo] WERROR PNP_RequestEjectPC(); | 
|---|
| 253 |  | 
|---|
| 254 | /******************/ | 
|---|
| 255 | /* Function: 0x28 */ | 
|---|
| 256 |  | 
|---|
| 257 | WERROR PNP_HwProfFlags( | 
|---|
| 258 | [in] uint32 action, | 
|---|
| 259 | [in,ref] [string,charset(UTF16)] uint16 *devicepath, | 
|---|
| 260 | [in] uint32 config, | 
|---|
| 261 | [in,out,ref] uint32 *profile_flags, | 
|---|
| 262 | [in,out,unique] uint16 *veto_type, | 
|---|
| 263 | [in,unique] [string,charset(UTF16)] uint16 *unknown5, | 
|---|
| 264 | [out,unique] [string,charset(UTF16)] uint16 **unknown5a, | 
|---|
| 265 | [in] uint32 name_length, | 
|---|
| 266 | [in] uint32 flags | 
|---|
| 267 | ); | 
|---|
| 268 |  | 
|---|
| 269 | /******************/ | 
|---|
| 270 | /* Function: 0x29 */ | 
|---|
| 271 |  | 
|---|
| 272 | typedef struct { | 
|---|
| 273 | uint32 profile_handle; | 
|---|
| 274 | uint16 friendly_name[80]; | 
|---|
| 275 | uint32 flags; | 
|---|
| 276 | } PNP_HwProfInfo; | 
|---|
| 277 |  | 
|---|
| 278 | WERROR PNP_GetHwProfInfo( | 
|---|
| 279 | [in] uint32 idx, | 
|---|
| 280 | [in,out,ref] PNP_HwProfInfo *info, | 
|---|
| 281 | [in] uint32 size, | 
|---|
| 282 | [in] uint32 flags | 
|---|
| 283 | ); | 
|---|
| 284 |  | 
|---|
| 285 | /******************/ | 
|---|
| 286 | /* Function: 0x2a */ | 
|---|
| 287 |  | 
|---|
| 288 | [todo] WERROR PNP_AddEmptyLogConf(); | 
|---|
| 289 |  | 
|---|
| 290 | /******************/ | 
|---|
| 291 | /* Function: 0x2b */ | 
|---|
| 292 |  | 
|---|
| 293 | [todo] WERROR PNP_FreeLogConf(); | 
|---|
| 294 |  | 
|---|
| 295 | /******************/ | 
|---|
| 296 | /* Function: 0x2c */ | 
|---|
| 297 |  | 
|---|
| 298 | [todo] WERROR PNP_GetFirstLogConf(); | 
|---|
| 299 |  | 
|---|
| 300 | /******************/ | 
|---|
| 301 | /* Function: 0x2d */ | 
|---|
| 302 |  | 
|---|
| 303 | [todo] WERROR PNP_GetNextLogConf(); | 
|---|
| 304 |  | 
|---|
| 305 | /******************/ | 
|---|
| 306 | /* Function: 0x2e */ | 
|---|
| 307 |  | 
|---|
| 308 | [todo] WERROR PNP_GetLogConfPriority(); | 
|---|
| 309 |  | 
|---|
| 310 | /******************/ | 
|---|
| 311 | /* Function: 0x2f */ | 
|---|
| 312 |  | 
|---|
| 313 | [todo] WERROR PNP_AddResDes(); | 
|---|
| 314 |  | 
|---|
| 315 | /******************/ | 
|---|
| 316 | /* Function: 0x30 */ | 
|---|
| 317 |  | 
|---|
| 318 | [todo] WERROR PNP_FreeResDes(); | 
|---|
| 319 |  | 
|---|
| 320 | /******************/ | 
|---|
| 321 | /* Function: 0x31 */ | 
|---|
| 322 |  | 
|---|
| 323 | [todo] WERROR PNP_GetNextResDes(); | 
|---|
| 324 |  | 
|---|
| 325 | /******************/ | 
|---|
| 326 | /* Function: 0x32 */ | 
|---|
| 327 |  | 
|---|
| 328 | [todo] WERROR PNP_GetResDesData(); | 
|---|
| 329 |  | 
|---|
| 330 | /******************/ | 
|---|
| 331 | /* Function: 0x33 */ | 
|---|
| 332 |  | 
|---|
| 333 | [todo] WERROR PNP_GetResDesDataSize(); | 
|---|
| 334 |  | 
|---|
| 335 | /******************/ | 
|---|
| 336 | /* Function: 0x34 */ | 
|---|
| 337 |  | 
|---|
| 338 | [todo] WERROR PNP_ModifyResDes(); | 
|---|
| 339 |  | 
|---|
| 340 | /******************/ | 
|---|
| 341 | /* Function: 0x35 */ | 
|---|
| 342 |  | 
|---|
| 343 | [todo] WERROR PNP_DetectResourceLimit(); | 
|---|
| 344 |  | 
|---|
| 345 | /******************/ | 
|---|
| 346 | /* Function: 0x36 */ | 
|---|
| 347 |  | 
|---|
| 348 | [todo] WERROR PNP_QueryResConfList(); | 
|---|
| 349 |  | 
|---|
| 350 | /******************/ | 
|---|
| 351 | /* Function: 0x37 */ | 
|---|
| 352 |  | 
|---|
| 353 | [todo] WERROR PNP_SetHwProf(); | 
|---|
| 354 |  | 
|---|
| 355 | /******************/ | 
|---|
| 356 | /* Function: 0x38 */ | 
|---|
| 357 |  | 
|---|
| 358 | [todo] WERROR PNP_QueryArbitratorFreeData(); | 
|---|
| 359 |  | 
|---|
| 360 | /******************/ | 
|---|
| 361 | /* Function: 0x39 */ | 
|---|
| 362 |  | 
|---|
| 363 | [todo] WERROR PNP_QueryArbitratorFreeSize(); | 
|---|
| 364 |  | 
|---|
| 365 | /******************/ | 
|---|
| 366 | /* Function: 0x3a */ | 
|---|
| 367 |  | 
|---|
| 368 | [todo] WERROR PNP_RunDetection(); | 
|---|
| 369 |  | 
|---|
| 370 | /******************/ | 
|---|
| 371 | /* Function: 0x3b */ | 
|---|
| 372 |  | 
|---|
| 373 | [todo] WERROR PNP_RegisterNotification(); | 
|---|
| 374 |  | 
|---|
| 375 | /******************/ | 
|---|
| 376 | /* Function: 0x3c */ | 
|---|
| 377 |  | 
|---|
| 378 | [todo] WERROR PNP_UnregisterNotification(); | 
|---|
| 379 |  | 
|---|
| 380 | /******************/ | 
|---|
| 381 | /* Function: 0x3d */ | 
|---|
| 382 |  | 
|---|
| 383 | [todo] WERROR PNP_GetCustomDevProp(); | 
|---|
| 384 |  | 
|---|
| 385 | /******************/ | 
|---|
| 386 | /* Function: 0x3e */ | 
|---|
| 387 |  | 
|---|
| 388 | [todo] WERROR PNP_GetVersionInternal(); | 
|---|
| 389 |  | 
|---|
| 390 | /******************/ | 
|---|
| 391 | /* Function: 0x3f */ | 
|---|
| 392 |  | 
|---|
| 393 | [todo] WERROR PNP_GetBlockedDriverInfo(); | 
|---|
| 394 |  | 
|---|
| 395 | /******************/ | 
|---|
| 396 | /* Function: 0x40 */ | 
|---|
| 397 |  | 
|---|
| 398 | [todo] WERROR PNP_GetServerSideDeviceInstallFlags(); | 
|---|
| 399 | } | 
|---|