| 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 | }
|
|---|