root/source3/rpc_server/srv_ntsvcs_nt.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. get_device_path
  2. _PNP_GetVersion
  3. _PNP_GetDeviceListSize
  4. _PNP_GetDeviceList
  5. _PNP_GetDeviceRegProp
  6. _PNP_ValidateDeviceInstance
  7. _PNP_GetHwProfInfo
  8. _PNP_HwProfFlags
  9. _PNP_Disconnect
  10. _PNP_Connect
  11. _PNP_GetGlobalState
  12. _PNP_InitDetection
  13. _PNP_ReportLogOn
  14. _PNP_GetRootDeviceInstance
  15. _PNP_GetRelatedDeviceInstance
  16. _PNP_EnumerateSubKeys
  17. _PNP_GetDepth
  18. _PNP_SetDeviceRegProp
  19. _PNP_GetClassInstance
  20. _PNP_CreateKey
  21. _PNP_DeleteRegistryKey
  22. _PNP_GetClassCount
  23. _PNP_GetClassName
  24. _PNP_DeleteClassKey
  25. _PNP_GetInterfaceDeviceAlias
  26. _PNP_GetInterfaceDeviceList
  27. _PNP_GetInterfaceDeviceListSize
  28. _PNP_RegisterDeviceClassAssociation
  29. _PNP_UnregisterDeviceClassAssociation
  30. _PNP_GetClassRegProp
  31. _PNP_SetClassRegProp
  32. _PNP_CreateDevInst
  33. _PNP_DeviceInstanceAction
  34. _PNP_GetDeviceStatus
  35. _PNP_SetDeviceProblem
  36. _PNP_DisableDevInst
  37. _PNP_UninstallDevInst
  38. _PNP_AddID
  39. _PNP_RegisterDriver
  40. _PNP_QueryRemove
  41. _PNP_RequestDeviceEject
  42. _PNP_IsDockStationPresent
  43. _PNP_RequestEjectPC
  44. _PNP_AddEmptyLogConf
  45. _PNP_FreeLogConf
  46. _PNP_GetFirstLogConf
  47. _PNP_GetNextLogConf
  48. _PNP_GetLogConfPriority
  49. _PNP_AddResDes
  50. _PNP_FreeResDes
  51. _PNP_GetNextResDes
  52. _PNP_GetResDesData
  53. _PNP_GetResDesDataSize
  54. _PNP_ModifyResDes
  55. _PNP_DetectResourceLimit
  56. _PNP_QueryResConfList
  57. _PNP_SetHwProf
  58. _PNP_QueryArbitratorFreeData
  59. _PNP_QueryArbitratorFreeSize
  60. _PNP_RunDetection
  61. _PNP_RegisterNotification
  62. _PNP_UnregisterNotification
  63. _PNP_GetCustomDevProp
  64. _PNP_GetVersionInternal
  65. _PNP_GetBlockedDriverInfo
  66. _PNP_GetServerSideDeviceInstallFlags

   1 /*
   2  *  Unix SMB/CIFS implementation.
   3  *  RPC Pipe client / server routines
   4  *
   5  *  Copyright (C) Gerald (Jerry) Carter             2005.
   6  *  Copyright (C) Guenther Deschner                 2008,2009.
   7  *
   8  *  This program is free software; you can redistribute it and/or modify
   9  *  it under the terms of the GNU General Public License as published by
  10  *  the Free Software Foundation; either version 3 of the License, or
  11  *  (at your option) any later version.
  12  *
  13  *  This program is distributed in the hope that it will be useful,
  14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16  *  GNU General Public License for more details.
  17  *
  18  *  You should have received a copy of the GNU General Public License
  19  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
  20  */
  21 
  22 #include "includes.h"
  23 
  24 #undef DBGC_CLASS
  25 #define DBGC_CLASS DBGC_RPC_SRV
  26 
  27 /********************************************************************
  28 ********************************************************************/
  29 
  30 static char* get_device_path(TALLOC_CTX *mem_ctx, const char *device )
     /* [<][>][^][v][top][bottom][index][help] */
  31 {
  32         return talloc_asprintf(mem_ctx, "ROOT\\Legacy_%s\\0000", device);
  33 }
  34 
  35 /********************************************************************
  36 ********************************************************************/
  37 
  38 WERROR _PNP_GetVersion(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
  39                        struct PNP_GetVersion *r)
  40 {
  41         *r->out.version = 0x0400;      /* no idea what this means */
  42 
  43         return WERR_OK;
  44 }
  45 
  46 /********************************************************************
  47 ********************************************************************/
  48 
  49 WERROR _PNP_GetDeviceListSize(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
  50                               struct PNP_GetDeviceListSize *r)
  51 {
  52         char *devicepath;
  53 
  54         if ((r->in.flags & CM_GETIDLIST_FILTER_SERVICE) &&
  55             (!r->in.devicename)) {
  56                 return WERR_CM_INVALID_POINTER;
  57         }
  58 
  59         if (!(devicepath = get_device_path(p->mem_ctx, r->in.devicename))) {
  60                 return WERR_NOMEM;
  61         }
  62 
  63         *r->out.size = strlen(devicepath) + 2;
  64 
  65         TALLOC_FREE(devicepath);
  66 
  67         return WERR_OK;
  68 }
  69 
  70 /****************************************************************
  71  _PNP_GetDeviceList
  72 ****************************************************************/
  73 
  74 WERROR _PNP_GetDeviceList(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
  75                           struct PNP_GetDeviceList *r)
  76 {
  77         char *devicepath;
  78         uint32_t size = 0;
  79         char **multi_sz = NULL;
  80         size_t multi_sz_len;
  81         uint16_t *multi_sz_buf;
  82 
  83         if ((r->in.flags & CM_GETIDLIST_FILTER_SERVICE) &&
  84             (!r->in.filter)) {
  85                 return WERR_CM_INVALID_POINTER;
  86         }
  87 
  88         if (!(devicepath = get_device_path(p->mem_ctx, r->in.filter))) {
  89                 return WERR_NOMEM;
  90         }
  91 
  92         size = strlen(devicepath) + 2;
  93 
  94         if (*r->in.length < size) {
  95                 return WERR_CM_BUFFER_SMALL;
  96         }
  97 
  98         multi_sz = talloc_zero_array(p->mem_ctx, char *, 2);
  99         if (!multi_sz) {
 100                 return WERR_NOMEM;
 101         }
 102 
 103         multi_sz[0] = devicepath;
 104 
 105         multi_sz_len = regval_build_multi_sz(multi_sz, &multi_sz_buf);
 106         if (!multi_sz_len) {
 107                 return WERR_NOMEM;
 108         }
 109 
 110         if (*r->in.length < multi_sz_len/2) {
 111                 return WERR_CM_BUFFER_SMALL;
 112         }
 113 
 114         memcpy(r->out.buffer, multi_sz_buf, multi_sz_len);
 115 
 116         return WERR_OK;
 117 }
 118 
 119 /********************************************************************
 120 _PNP_GetDeviceRegProp
 121 ********************************************************************/
 122 
 123 WERROR _PNP_GetDeviceRegProp(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 124                              struct PNP_GetDeviceRegProp *r)
 125 {
 126         char *ptr;
 127         REGVAL_CTR *values;
 128         REGISTRY_VALUE *val;
 129 
 130         switch( r->in.property ) {
 131         case DEV_REGPROP_DESC:
 132 
 133                 /* just parse the service name from the device path and then
 134                    lookup the display name */
 135                 if ( !(ptr = strrchr_m( r->in.devicepath, '\\' )) )
 136                         return WERR_GENERAL_FAILURE;
 137                 *ptr = '\0';
 138 
 139                 if ( !(ptr = strrchr_m( r->in.devicepath, '_' )) )
 140                         return WERR_GENERAL_FAILURE;
 141                 ptr++;
 142 
 143                 if ( !(values = svcctl_fetch_regvalues(
 144                                ptr, p->server_info->ptok)))
 145                         return WERR_GENERAL_FAILURE;
 146 
 147                 if ( !(val = regval_ctr_getvalue( values, "DisplayName" )) ) {
 148                         TALLOC_FREE( values );
 149                         return WERR_GENERAL_FAILURE;
 150                 }
 151 
 152                 if (*r->in.buffer_size < val->size) {
 153                         *r->out.needed = val->size;
 154                         *r->out.buffer_size = 0;
 155                         TALLOC_FREE( values );
 156                         return WERR_CM_BUFFER_SMALL;
 157                 }
 158 
 159                 r->out.buffer = (uint8_t *)talloc_memdup(p->mem_ctx, val->data_p, val->size);
 160                 TALLOC_FREE(values);
 161                 if (!r->out.buffer) {
 162                         return WERR_NOMEM;
 163                 }
 164 
 165                 *r->out.reg_data_type = REG_SZ; /* always 1...tested using a remove device manager connection */
 166                 *r->out.buffer_size = val->size;
 167                 *r->out.needed = val->size;
 168 
 169                 break;
 170 
 171         default:
 172                 *r->out.reg_data_type = 0x00437c98; /* ??? */
 173                 return WERR_CM_NO_SUCH_VALUE;
 174         }
 175 
 176         return WERR_OK;
 177 }
 178 
 179 /********************************************************************
 180 ********************************************************************/
 181 
 182 WERROR _PNP_ValidateDeviceInstance(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 183                                    struct PNP_ValidateDeviceInstance *r)
 184 {
 185         /* whatever dude */
 186         return WERR_OK;
 187 }
 188 
 189 /********************************************************************
 190 ********************************************************************/
 191 
 192 WERROR _PNP_GetHwProfInfo(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 193                           struct PNP_GetHwProfInfo *r)
 194 {
 195         /* steal the incoming buffer */
 196 
 197         r->out.info = r->in.info;
 198 
 199         /* Take the 5th Ammentment */
 200 
 201         return WERR_CM_NO_MORE_HW_PROFILES;
 202 }
 203 
 204 /********************************************************************
 205 ********************************************************************/
 206 
 207 WERROR _PNP_HwProfFlags(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 208                         struct PNP_HwProfFlags *r)
 209 {
 210         /* just nod your head */
 211 
 212         return WERR_OK;
 213 }
 214 
 215 /****************************************************************
 216 ****************************************************************/
 217 
 218 WERROR _PNP_Disconnect(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 219                        struct PNP_Disconnect *r)
 220 {
 221         p->rng_fault_state = true;
 222         return WERR_NOT_SUPPORTED;
 223 }
 224 
 225 /****************************************************************
 226 ****************************************************************/
 227 
 228 WERROR _PNP_Connect(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 229                     struct PNP_Connect *r)
 230 {
 231         p->rng_fault_state = true;
 232         return WERR_NOT_SUPPORTED;
 233 }
 234 
 235 /****************************************************************
 236 ****************************************************************/
 237 
 238 WERROR _PNP_GetGlobalState(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 239                            struct PNP_GetGlobalState *r)
 240 {
 241         p->rng_fault_state = true;
 242         return WERR_NOT_SUPPORTED;
 243 }
 244 
 245 /****************************************************************
 246 ****************************************************************/
 247 
 248 WERROR _PNP_InitDetection(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 249                           struct PNP_InitDetection *r)
 250 {
 251         p->rng_fault_state = true;
 252         return WERR_NOT_SUPPORTED;
 253 }
 254 
 255 /****************************************************************
 256 ****************************************************************/
 257 
 258 WERROR _PNP_ReportLogOn(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 259                         struct PNP_ReportLogOn *r)
 260 {
 261         p->rng_fault_state = true;
 262         return WERR_NOT_SUPPORTED;
 263 }
 264 
 265 /****************************************************************
 266 ****************************************************************/
 267 
 268 WERROR _PNP_GetRootDeviceInstance(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 269                                   struct PNP_GetRootDeviceInstance *r)
 270 {
 271         p->rng_fault_state = true;
 272         return WERR_NOT_SUPPORTED;
 273 }
 274 
 275 /****************************************************************
 276 ****************************************************************/
 277 
 278 WERROR _PNP_GetRelatedDeviceInstance(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 279                                      struct PNP_GetRelatedDeviceInstance *r)
 280 {
 281         p->rng_fault_state = true;
 282         return WERR_NOT_SUPPORTED;
 283 }
 284 
 285 /****************************************************************
 286 ****************************************************************/
 287 
 288 WERROR _PNP_EnumerateSubKeys(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 289                              struct PNP_EnumerateSubKeys *r)
 290 {
 291         p->rng_fault_state = true;
 292         return WERR_NOT_SUPPORTED;
 293 }
 294 
 295 /****************************************************************
 296 ****************************************************************/
 297 
 298 WERROR _PNP_GetDepth(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 299                      struct PNP_GetDepth *r)
 300 {
 301         p->rng_fault_state = true;
 302         return WERR_NOT_SUPPORTED;
 303 }
 304 
 305 /****************************************************************
 306 ****************************************************************/
 307 
 308 WERROR _PNP_SetDeviceRegProp(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 309                              struct PNP_SetDeviceRegProp *r)
 310 {
 311         p->rng_fault_state = true;
 312         return WERR_NOT_SUPPORTED;
 313 }
 314 
 315 /****************************************************************
 316 ****************************************************************/
 317 
 318 WERROR _PNP_GetClassInstance(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 319                              struct PNP_GetClassInstance *r)
 320 {
 321         p->rng_fault_state = true;
 322         return WERR_NOT_SUPPORTED;
 323 }
 324 
 325 /****************************************************************
 326 ****************************************************************/
 327 
 328 WERROR _PNP_CreateKey(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 329                       struct PNP_CreateKey *r)
 330 {
 331         p->rng_fault_state = true;
 332         return WERR_NOT_SUPPORTED;
 333 }
 334 
 335 /****************************************************************
 336 ****************************************************************/
 337 
 338 WERROR _PNP_DeleteRegistryKey(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 339                               struct PNP_DeleteRegistryKey *r)
 340 {
 341         p->rng_fault_state = true;
 342         return WERR_NOT_SUPPORTED;
 343 }
 344 
 345 /****************************************************************
 346 ****************************************************************/
 347 
 348 WERROR _PNP_GetClassCount(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 349                           struct PNP_GetClassCount *r)
 350 {
 351         p->rng_fault_state = true;
 352         return WERR_NOT_SUPPORTED;
 353 }
 354 
 355 /****************************************************************
 356 ****************************************************************/
 357 
 358 WERROR _PNP_GetClassName(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 359                          struct PNP_GetClassName *r)
 360 {
 361         p->rng_fault_state = true;
 362         return WERR_NOT_SUPPORTED;
 363 }
 364 
 365 /****************************************************************
 366 ****************************************************************/
 367 
 368 WERROR _PNP_DeleteClassKey(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 369                            struct PNP_DeleteClassKey *r)
 370 {
 371         p->rng_fault_state = true;
 372         return WERR_NOT_SUPPORTED;
 373 }
 374 
 375 /****************************************************************
 376 ****************************************************************/
 377 
 378 WERROR _PNP_GetInterfaceDeviceAlias(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 379                                     struct PNP_GetInterfaceDeviceAlias *r)
 380 {
 381         p->rng_fault_state = true;
 382         return WERR_NOT_SUPPORTED;
 383 }
 384 
 385 /****************************************************************
 386 ****************************************************************/
 387 
 388 WERROR _PNP_GetInterfaceDeviceList(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 389                                    struct PNP_GetInterfaceDeviceList *r)
 390 {
 391         p->rng_fault_state = true;
 392         return WERR_NOT_SUPPORTED;
 393 }
 394 
 395 /****************************************************************
 396 ****************************************************************/
 397 
 398 WERROR _PNP_GetInterfaceDeviceListSize(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 399                                        struct PNP_GetInterfaceDeviceListSize *r)
 400 {
 401         p->rng_fault_state = true;
 402         return WERR_NOT_SUPPORTED;
 403 }
 404 
 405 /****************************************************************
 406 ****************************************************************/
 407 
 408 WERROR _PNP_RegisterDeviceClassAssociation(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 409                                            struct PNP_RegisterDeviceClassAssociation *r)
 410 {
 411         p->rng_fault_state = true;
 412         return WERR_NOT_SUPPORTED;
 413 }
 414 
 415 /****************************************************************
 416 ****************************************************************/
 417 
 418 WERROR _PNP_UnregisterDeviceClassAssociation(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 419                                              struct PNP_UnregisterDeviceClassAssociation *r)
 420 {
 421         p->rng_fault_state = true;
 422         return WERR_NOT_SUPPORTED;
 423 }
 424 
 425 /****************************************************************
 426 ****************************************************************/
 427 
 428 WERROR _PNP_GetClassRegProp(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 429                             struct PNP_GetClassRegProp *r)
 430 {
 431         p->rng_fault_state = true;
 432         return WERR_NOT_SUPPORTED;
 433 }
 434 
 435 /****************************************************************
 436 ****************************************************************/
 437 
 438 WERROR _PNP_SetClassRegProp(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 439                             struct PNP_SetClassRegProp *r)
 440 {
 441         p->rng_fault_state = true;
 442         return WERR_NOT_SUPPORTED;
 443 }
 444 
 445 /****************************************************************
 446 ****************************************************************/
 447 
 448 WERROR _PNP_CreateDevInst(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 449                           struct PNP_CreateDevInst *r)
 450 {
 451         p->rng_fault_state = true;
 452         return WERR_NOT_SUPPORTED;
 453 }
 454 
 455 /****************************************************************
 456 ****************************************************************/
 457 
 458 WERROR _PNP_DeviceInstanceAction(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 459                                  struct PNP_DeviceInstanceAction *r)
 460 {
 461         p->rng_fault_state = true;
 462         return WERR_NOT_SUPPORTED;
 463 }
 464 
 465 /****************************************************************
 466 ****************************************************************/
 467 
 468 WERROR _PNP_GetDeviceStatus(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 469                             struct PNP_GetDeviceStatus *r)
 470 {
 471         p->rng_fault_state = true;
 472         return WERR_NOT_SUPPORTED;
 473 }
 474 
 475 /****************************************************************
 476 ****************************************************************/
 477 
 478 WERROR _PNP_SetDeviceProblem(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 479                              struct PNP_SetDeviceProblem *r)
 480 {
 481         p->rng_fault_state = true;
 482         return WERR_NOT_SUPPORTED;
 483 }
 484 
 485 /****************************************************************
 486 ****************************************************************/
 487 
 488 WERROR _PNP_DisableDevInst(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 489                            struct PNP_DisableDevInst *r)
 490 {
 491         p->rng_fault_state = true;
 492         return WERR_NOT_SUPPORTED;
 493 }
 494 
 495 /****************************************************************
 496 ****************************************************************/
 497 
 498 WERROR _PNP_UninstallDevInst(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 499                              struct PNP_UninstallDevInst *r)
 500 {
 501         p->rng_fault_state = true;
 502         return WERR_NOT_SUPPORTED;
 503 }
 504 
 505 /****************************************************************
 506 ****************************************************************/
 507 
 508 WERROR _PNP_AddID(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 509                   struct PNP_AddID *r)
 510 {
 511         p->rng_fault_state = true;
 512         return WERR_NOT_SUPPORTED;
 513 }
 514 
 515 /****************************************************************
 516 ****************************************************************/
 517 
 518 WERROR _PNP_RegisterDriver(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 519                            struct PNP_RegisterDriver *r)
 520 {
 521         p->rng_fault_state = true;
 522         return WERR_NOT_SUPPORTED;
 523 }
 524 
 525 /****************************************************************
 526 ****************************************************************/
 527 
 528 WERROR _PNP_QueryRemove(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 529                         struct PNP_QueryRemove *r)
 530 {
 531         p->rng_fault_state = true;
 532         return WERR_NOT_SUPPORTED;
 533 }
 534 
 535 /****************************************************************
 536 ****************************************************************/
 537 
 538 WERROR _PNP_RequestDeviceEject(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 539                                struct PNP_RequestDeviceEject *r)
 540 {
 541         p->rng_fault_state = true;
 542         return WERR_NOT_SUPPORTED;
 543 }
 544 
 545 /****************************************************************
 546 ****************************************************************/
 547 
 548 WERROR _PNP_IsDockStationPresent(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 549                                  struct PNP_IsDockStationPresent *r)
 550 {
 551         p->rng_fault_state = true;
 552         return WERR_NOT_SUPPORTED;
 553 }
 554 
 555 /****************************************************************
 556 ****************************************************************/
 557 
 558 WERROR _PNP_RequestEjectPC(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 559                            struct PNP_RequestEjectPC *r)
 560 {
 561         p->rng_fault_state = true;
 562         return WERR_NOT_SUPPORTED;
 563 }
 564 
 565 /****************************************************************
 566 ****************************************************************/
 567 
 568 WERROR _PNP_AddEmptyLogConf(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 569                             struct PNP_AddEmptyLogConf *r)
 570 {
 571         p->rng_fault_state = true;
 572         return WERR_NOT_SUPPORTED;
 573 }
 574 
 575 /****************************************************************
 576 ****************************************************************/
 577 
 578 WERROR _PNP_FreeLogConf(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 579                         struct PNP_FreeLogConf *r)
 580 {
 581         p->rng_fault_state = true;
 582         return WERR_NOT_SUPPORTED;
 583 }
 584 
 585 /****************************************************************
 586 ****************************************************************/
 587 
 588 WERROR _PNP_GetFirstLogConf(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 589                             struct PNP_GetFirstLogConf *r)
 590 {
 591         p->rng_fault_state = true;
 592         return WERR_NOT_SUPPORTED;
 593 }
 594 
 595 /****************************************************************
 596 ****************************************************************/
 597 
 598 WERROR _PNP_GetNextLogConf(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 599                            struct PNP_GetNextLogConf *r)
 600 {
 601         p->rng_fault_state = true;
 602         return WERR_NOT_SUPPORTED;
 603 }
 604 
 605 /****************************************************************
 606 ****************************************************************/
 607 
 608 WERROR _PNP_GetLogConfPriority(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 609                                struct PNP_GetLogConfPriority *r)
 610 {
 611         p->rng_fault_state = true;
 612         return WERR_NOT_SUPPORTED;
 613 }
 614 
 615 /****************************************************************
 616 ****************************************************************/
 617 
 618 WERROR _PNP_AddResDes(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 619                       struct PNP_AddResDes *r)
 620 {
 621         p->rng_fault_state = true;
 622         return WERR_NOT_SUPPORTED;
 623 }
 624 
 625 /****************************************************************
 626 ****************************************************************/
 627 
 628 WERROR _PNP_FreeResDes(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 629                        struct PNP_FreeResDes *r)
 630 {
 631         p->rng_fault_state = true;
 632         return WERR_NOT_SUPPORTED;
 633 }
 634 
 635 /****************************************************************
 636 ****************************************************************/
 637 
 638 WERROR _PNP_GetNextResDes(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 639                           struct PNP_GetNextResDes *r)
 640 {
 641         p->rng_fault_state = true;
 642         return WERR_NOT_SUPPORTED;
 643 }
 644 
 645 /****************************************************************
 646 ****************************************************************/
 647 
 648 WERROR _PNP_GetResDesData(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 649                           struct PNP_GetResDesData *r)
 650 {
 651         p->rng_fault_state = true;
 652         return WERR_NOT_SUPPORTED;
 653 }
 654 
 655 /****************************************************************
 656 ****************************************************************/
 657 
 658 WERROR _PNP_GetResDesDataSize(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 659                               struct PNP_GetResDesDataSize *r)
 660 {
 661         p->rng_fault_state = true;
 662         return WERR_NOT_SUPPORTED;
 663 }
 664 
 665 /****************************************************************
 666 ****************************************************************/
 667 
 668 WERROR _PNP_ModifyResDes(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 669                          struct PNP_ModifyResDes *r)
 670 {
 671         p->rng_fault_state = true;
 672         return WERR_NOT_SUPPORTED;
 673 }
 674 
 675 /****************************************************************
 676 ****************************************************************/
 677 
 678 WERROR _PNP_DetectResourceLimit(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 679                                 struct PNP_DetectResourceLimit *r)
 680 {
 681         p->rng_fault_state = true;
 682         return WERR_NOT_SUPPORTED;
 683 }
 684 
 685 /****************************************************************
 686 ****************************************************************/
 687 
 688 WERROR _PNP_QueryResConfList(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 689                              struct PNP_QueryResConfList *r)
 690 {
 691         p->rng_fault_state = true;
 692         return WERR_NOT_SUPPORTED;
 693 }
 694 
 695 /****************************************************************
 696 ****************************************************************/
 697 
 698 WERROR _PNP_SetHwProf(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 699                       struct PNP_SetHwProf *r)
 700 {
 701         p->rng_fault_state = true;
 702         return WERR_NOT_SUPPORTED;
 703 }
 704 
 705 /****************************************************************
 706 ****************************************************************/
 707 
 708 WERROR _PNP_QueryArbitratorFreeData(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 709                                     struct PNP_QueryArbitratorFreeData *r)
 710 {
 711         p->rng_fault_state = true;
 712         return WERR_NOT_SUPPORTED;
 713 }
 714 
 715 /****************************************************************
 716 ****************************************************************/
 717 
 718 WERROR _PNP_QueryArbitratorFreeSize(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 719                                     struct PNP_QueryArbitratorFreeSize *r)
 720 {
 721         p->rng_fault_state = true;
 722         return WERR_NOT_SUPPORTED;
 723 }
 724 
 725 /****************************************************************
 726 ****************************************************************/
 727 
 728 WERROR _PNP_RunDetection(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 729                          struct PNP_RunDetection *r)
 730 {
 731         p->rng_fault_state = true;
 732         return WERR_NOT_SUPPORTED;
 733 }
 734 
 735 /****************************************************************
 736 ****************************************************************/
 737 
 738 WERROR _PNP_RegisterNotification(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 739                                  struct PNP_RegisterNotification *r)
 740 {
 741         p->rng_fault_state = true;
 742         return WERR_NOT_SUPPORTED;
 743 }
 744 
 745 /****************************************************************
 746 ****************************************************************/
 747 
 748 WERROR _PNP_UnregisterNotification(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 749                                    struct PNP_UnregisterNotification *r)
 750 {
 751         p->rng_fault_state = true;
 752         return WERR_NOT_SUPPORTED;
 753 }
 754 
 755 /****************************************************************
 756 ****************************************************************/
 757 
 758 WERROR _PNP_GetCustomDevProp(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 759                              struct PNP_GetCustomDevProp *r)
 760 {
 761         p->rng_fault_state = true;
 762         return WERR_NOT_SUPPORTED;
 763 }
 764 
 765 /****************************************************************
 766 ****************************************************************/
 767 
 768 WERROR _PNP_GetVersionInternal(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 769                                struct PNP_GetVersionInternal *r)
 770 {
 771         p->rng_fault_state = true;
 772         return WERR_NOT_SUPPORTED;
 773 }
 774 
 775 /****************************************************************
 776 ****************************************************************/
 777 
 778 WERROR _PNP_GetBlockedDriverInfo(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 779                                  struct PNP_GetBlockedDriverInfo *r)
 780 {
 781         p->rng_fault_state = true;
 782         return WERR_NOT_SUPPORTED;
 783 }
 784 
 785 /****************************************************************
 786 ****************************************************************/
 787 
 788 WERROR _PNP_GetServerSideDeviceInstallFlags(pipes_struct *p,
     /* [<][>][^][v][top][bottom][index][help] */
 789                                             struct PNP_GetServerSideDeviceInstallFlags *r)
 790 {
 791         p->rng_fault_state = true;
 792         return WERR_NOT_SUPPORTED;
 793 }
 794 

/* [<][>][^][v][top][bottom][index][help] */