2 * Unix SMB/CIFS implementation.
3 * RPC Pipe client / server routines
5 * Copyright (C) Gerald (Jerry) Carter 2005.
6 * Copyright (C) Guenther Deschner 2008,2009.
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.
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.
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/>.
24 #include "librpc/rpc/dcesrv_core.h"
25 #include "librpc/gen_ndr/ndr_ntsvcs.h"
26 #include "librpc/gen_ndr/ndr_ntsvcs_scompat.h"
27 #include "services/svc_winreg_glue.h"
28 #include "../libcli/registry/util_reg.h"
31 #define DBGC_CLASS DBGC_RPC_SRV
33 /********************************************************************
34 ********************************************************************/
36 static char* get_device_path(TALLOC_CTX
*mem_ctx
, const char *device
)
38 return talloc_asprintf(mem_ctx
, "ROOT\\Legacy_%s\\0000", device
);
41 /********************************************************************
42 ********************************************************************/
44 WERROR
_PNP_GetVersion(struct pipes_struct
*p
,
45 struct PNP_GetVersion
*r
)
47 *r
->out
.version
= 0x0400; /* no idea what this means */
52 /********************************************************************
53 ********************************************************************/
55 WERROR
_PNP_GetDeviceListSize(struct pipes_struct
*p
,
56 struct PNP_GetDeviceListSize
*r
)
60 if ((r
->in
.flags
& CM_GETIDLIST_FILTER_SERVICE
) &&
61 (!r
->in
.devicename
)) {
62 return WERR_CM_INVALID_POINTER
;
65 if (!(devicepath
= get_device_path(p
->mem_ctx
, r
->in
.devicename
))) {
66 return WERR_NOT_ENOUGH_MEMORY
;
69 *r
->out
.size
= strlen(devicepath
) + 2;
71 TALLOC_FREE(devicepath
);
76 /****************************************************************
78 ****************************************************************/
80 WERROR
_PNP_GetDeviceList(struct pipes_struct
*p
,
81 struct PNP_GetDeviceList
*r
)
85 const char **multi_sz
= NULL
;
88 if ((r
->in
.flags
& CM_GETIDLIST_FILTER_SERVICE
) &&
90 return WERR_CM_INVALID_POINTER
;
93 if (!(devicepath
= get_device_path(p
->mem_ctx
, r
->in
.filter
))) {
94 return WERR_NOT_ENOUGH_MEMORY
;
97 size
= strlen(devicepath
) + 2;
99 if (*r
->in
.length
< size
) {
100 return WERR_CM_BUFFER_SMALL
;
103 multi_sz
= talloc_zero_array(p
->mem_ctx
, const char *, 2);
105 return WERR_NOT_ENOUGH_MEMORY
;
108 multi_sz
[0] = devicepath
;
110 if (!push_reg_multi_sz(multi_sz
, &blob
, multi_sz
)) {
111 return WERR_NOT_ENOUGH_MEMORY
;
114 if (*r
->in
.length
< blob
.length
/2) {
115 return WERR_CM_BUFFER_SMALL
;
118 memcpy(r
->out
.buffer
, blob
.data
, blob
.length
);
123 /********************************************************************
124 _PNP_GetDeviceRegProp
125 ********************************************************************/
127 WERROR
_PNP_GetDeviceRegProp(struct pipes_struct
*p
,
128 struct PNP_GetDeviceRegProp
*r
)
130 struct dcesrv_call_state
*dce_call
= p
->dce_call
;
131 struct auth_session_info
*session_info
=
132 dcesrv_call_session_info(dce_call
);
136 TALLOC_CTX
*mem_ctx
= NULL
;
138 switch( r
->in
.property
) {
139 case DEV_REGPROP_DESC
:
141 /* just parse the service name from the device path and then
142 lookup the display name */
143 if ( !(ptr
= strrchr_m( r
->in
.devicepath
, '\\' )) )
144 return WERR_GEN_FAILURE
;
147 if ( !(ptr
= strrchr_m( r
->in
.devicepath
, '_' )) )
148 return WERR_GEN_FAILURE
;
151 mem_ctx
= talloc_stackframe();
153 result
= svcctl_lookup_dispname(mem_ctx
,
157 if (result
== NULL
) {
158 return WERR_GEN_FAILURE
;
161 if (!push_reg_sz(mem_ctx
, &blob
, result
)) {
162 talloc_free(mem_ctx
);
163 return WERR_GEN_FAILURE
;
166 if (*r
->in
.buffer_size
< blob
.length
) {
167 *r
->out
.needed
= blob
.length
;
168 *r
->out
.buffer_size
= 0;
169 talloc_free(mem_ctx
);
170 return WERR_CM_BUFFER_SMALL
;
173 r
->out
.buffer
= (uint8_t *)talloc_memdup(p
->mem_ctx
, blob
.data
, blob
.length
);
174 talloc_free(mem_ctx
);
175 if (!r
->out
.buffer
) {
176 return WERR_NOT_ENOUGH_MEMORY
;
179 *r
->out
.reg_data_type
= REG_SZ
; /* always 1...tested using a remove device manager connection */
180 *r
->out
.buffer_size
= blob
.length
;
181 *r
->out
.needed
= blob
.length
;
186 *r
->out
.reg_data_type
= 0x00437c98; /* ??? */
187 return WERR_CM_NO_SUCH_VALUE
;
193 /********************************************************************
194 ********************************************************************/
196 WERROR
_PNP_ValidateDeviceInstance(struct pipes_struct
*p
,
197 struct PNP_ValidateDeviceInstance
*r
)
203 /********************************************************************
204 ********************************************************************/
206 WERROR
_PNP_GetHwProfInfo(struct pipes_struct
*p
,
207 struct PNP_GetHwProfInfo
*r
)
209 /* steal the incoming buffer */
211 r
->out
.info
= r
->in
.info
;
213 /* Take the 5th Ammentment */
215 return WERR_CM_NO_MORE_HW_PROFILES
;
218 /********************************************************************
219 ********************************************************************/
221 WERROR
_PNP_HwProfFlags(struct pipes_struct
*p
,
222 struct PNP_HwProfFlags
*r
)
224 /* just nod your head */
229 /****************************************************************
230 ****************************************************************/
232 WERROR
_PNP_Disconnect(struct pipes_struct
*p
,
233 struct PNP_Disconnect
*r
)
235 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
236 return WERR_NOT_SUPPORTED
;
239 /****************************************************************
240 ****************************************************************/
242 WERROR
_PNP_Connect(struct pipes_struct
*p
,
243 struct PNP_Connect
*r
)
245 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
246 return WERR_NOT_SUPPORTED
;
249 /****************************************************************
250 ****************************************************************/
252 WERROR
_PNP_GetGlobalState(struct pipes_struct
*p
,
253 struct PNP_GetGlobalState
*r
)
255 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
256 return WERR_NOT_SUPPORTED
;
259 /****************************************************************
260 ****************************************************************/
262 WERROR
_PNP_InitDetection(struct pipes_struct
*p
,
263 struct PNP_InitDetection
*r
)
265 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
266 return WERR_NOT_SUPPORTED
;
269 /****************************************************************
270 ****************************************************************/
272 WERROR
_PNP_ReportLogOn(struct pipes_struct
*p
,
273 struct PNP_ReportLogOn
*r
)
275 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
276 return WERR_NOT_SUPPORTED
;
279 /****************************************************************
280 ****************************************************************/
282 WERROR
_PNP_GetRootDeviceInstance(struct pipes_struct
*p
,
283 struct PNP_GetRootDeviceInstance
*r
)
285 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
286 return WERR_NOT_SUPPORTED
;
289 /****************************************************************
290 ****************************************************************/
292 WERROR
_PNP_GetRelatedDeviceInstance(struct pipes_struct
*p
,
293 struct PNP_GetRelatedDeviceInstance
*r
)
295 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
296 return WERR_NOT_SUPPORTED
;
299 /****************************************************************
300 ****************************************************************/
302 WERROR
_PNP_EnumerateSubKeys(struct pipes_struct
*p
,
303 struct PNP_EnumerateSubKeys
*r
)
305 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
306 return WERR_NOT_SUPPORTED
;
309 /****************************************************************
310 ****************************************************************/
312 WERROR
_PNP_GetDepth(struct pipes_struct
*p
,
313 struct PNP_GetDepth
*r
)
315 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
316 return WERR_NOT_SUPPORTED
;
319 /****************************************************************
320 ****************************************************************/
322 WERROR
_PNP_SetDeviceRegProp(struct pipes_struct
*p
,
323 struct PNP_SetDeviceRegProp
*r
)
325 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
326 return WERR_NOT_SUPPORTED
;
329 /****************************************************************
330 ****************************************************************/
332 WERROR
_PNP_GetClassInstance(struct pipes_struct
*p
,
333 struct PNP_GetClassInstance
*r
)
335 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
336 return WERR_NOT_SUPPORTED
;
339 /****************************************************************
340 ****************************************************************/
342 WERROR
_PNP_CreateKey(struct pipes_struct
*p
,
343 struct PNP_CreateKey
*r
)
345 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
346 return WERR_NOT_SUPPORTED
;
349 /****************************************************************
350 ****************************************************************/
352 WERROR
_PNP_DeleteRegistryKey(struct pipes_struct
*p
,
353 struct PNP_DeleteRegistryKey
*r
)
355 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
356 return WERR_NOT_SUPPORTED
;
359 /****************************************************************
360 ****************************************************************/
362 WERROR
_PNP_GetClassCount(struct pipes_struct
*p
,
363 struct PNP_GetClassCount
*r
)
365 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
366 return WERR_NOT_SUPPORTED
;
369 /****************************************************************
370 ****************************************************************/
372 WERROR
_PNP_GetClassName(struct pipes_struct
*p
,
373 struct PNP_GetClassName
*r
)
375 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
376 return WERR_NOT_SUPPORTED
;
379 /****************************************************************
380 ****************************************************************/
382 WERROR
_PNP_DeleteClassKey(struct pipes_struct
*p
,
383 struct PNP_DeleteClassKey
*r
)
385 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
386 return WERR_NOT_SUPPORTED
;
389 /****************************************************************
390 ****************************************************************/
392 WERROR
_PNP_GetInterfaceDeviceAlias(struct pipes_struct
*p
,
393 struct PNP_GetInterfaceDeviceAlias
*r
)
395 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
396 return WERR_NOT_SUPPORTED
;
399 /****************************************************************
400 ****************************************************************/
402 WERROR
_PNP_GetInterfaceDeviceList(struct pipes_struct
*p
,
403 struct PNP_GetInterfaceDeviceList
*r
)
405 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
406 return WERR_NOT_SUPPORTED
;
409 /****************************************************************
410 ****************************************************************/
412 WERROR
_PNP_GetInterfaceDeviceListSize(struct pipes_struct
*p
,
413 struct PNP_GetInterfaceDeviceListSize
*r
)
415 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
416 return WERR_NOT_SUPPORTED
;
419 /****************************************************************
420 ****************************************************************/
422 WERROR
_PNP_RegisterDeviceClassAssociation(struct pipes_struct
*p
,
423 struct PNP_RegisterDeviceClassAssociation
*r
)
425 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
426 return WERR_NOT_SUPPORTED
;
429 /****************************************************************
430 ****************************************************************/
432 WERROR
_PNP_UnregisterDeviceClassAssociation(struct pipes_struct
*p
,
433 struct PNP_UnregisterDeviceClassAssociation
*r
)
435 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
436 return WERR_NOT_SUPPORTED
;
439 /****************************************************************
440 ****************************************************************/
442 WERROR
_PNP_GetClassRegProp(struct pipes_struct
*p
,
443 struct PNP_GetClassRegProp
*r
)
445 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
446 return WERR_NOT_SUPPORTED
;
449 /****************************************************************
450 ****************************************************************/
452 WERROR
_PNP_SetClassRegProp(struct pipes_struct
*p
,
453 struct PNP_SetClassRegProp
*r
)
455 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
456 return WERR_NOT_SUPPORTED
;
459 /****************************************************************
460 ****************************************************************/
462 WERROR
_PNP_CreateDevInst(struct pipes_struct
*p
,
463 struct PNP_CreateDevInst
*r
)
465 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
466 return WERR_NOT_SUPPORTED
;
469 /****************************************************************
470 ****************************************************************/
472 WERROR
_PNP_DeviceInstanceAction(struct pipes_struct
*p
,
473 struct PNP_DeviceInstanceAction
*r
)
475 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
476 return WERR_NOT_SUPPORTED
;
479 /****************************************************************
480 ****************************************************************/
482 WERROR
_PNP_GetDeviceStatus(struct pipes_struct
*p
,
483 struct PNP_GetDeviceStatus
*r
)
485 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
486 return WERR_NOT_SUPPORTED
;
489 /****************************************************************
490 ****************************************************************/
492 WERROR
_PNP_SetDeviceProblem(struct pipes_struct
*p
,
493 struct PNP_SetDeviceProblem
*r
)
495 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
496 return WERR_NOT_SUPPORTED
;
499 /****************************************************************
500 ****************************************************************/
502 WERROR
_PNP_DisableDevInst(struct pipes_struct
*p
,
503 struct PNP_DisableDevInst
*r
)
505 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
506 return WERR_NOT_SUPPORTED
;
509 /****************************************************************
510 ****************************************************************/
512 WERROR
_PNP_UninstallDevInst(struct pipes_struct
*p
,
513 struct PNP_UninstallDevInst
*r
)
515 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
516 return WERR_NOT_SUPPORTED
;
519 /****************************************************************
520 ****************************************************************/
522 WERROR
_PNP_AddID(struct pipes_struct
*p
,
525 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
526 return WERR_NOT_SUPPORTED
;
529 /****************************************************************
530 ****************************************************************/
532 WERROR
_PNP_RegisterDriver(struct pipes_struct
*p
,
533 struct PNP_RegisterDriver
*r
)
535 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
536 return WERR_NOT_SUPPORTED
;
539 /****************************************************************
540 ****************************************************************/
542 WERROR
_PNP_QueryRemove(struct pipes_struct
*p
,
543 struct PNP_QueryRemove
*r
)
545 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
546 return WERR_NOT_SUPPORTED
;
549 /****************************************************************
550 ****************************************************************/
552 WERROR
_PNP_RequestDeviceEject(struct pipes_struct
*p
,
553 struct PNP_RequestDeviceEject
*r
)
555 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
556 return WERR_NOT_SUPPORTED
;
559 /****************************************************************
560 ****************************************************************/
562 WERROR
_PNP_IsDockStationPresent(struct pipes_struct
*p
,
563 struct PNP_IsDockStationPresent
*r
)
565 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
566 return WERR_NOT_SUPPORTED
;
569 /****************************************************************
570 ****************************************************************/
572 WERROR
_PNP_RequestEjectPC(struct pipes_struct
*p
,
573 struct PNP_RequestEjectPC
*r
)
575 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
576 return WERR_NOT_SUPPORTED
;
579 /****************************************************************
580 ****************************************************************/
582 WERROR
_PNP_AddEmptyLogConf(struct pipes_struct
*p
,
583 struct PNP_AddEmptyLogConf
*r
)
585 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
586 return WERR_NOT_SUPPORTED
;
589 /****************************************************************
590 ****************************************************************/
592 WERROR
_PNP_FreeLogConf(struct pipes_struct
*p
,
593 struct PNP_FreeLogConf
*r
)
595 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
596 return WERR_NOT_SUPPORTED
;
599 /****************************************************************
600 ****************************************************************/
602 WERROR
_PNP_GetFirstLogConf(struct pipes_struct
*p
,
603 struct PNP_GetFirstLogConf
*r
)
605 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
606 return WERR_NOT_SUPPORTED
;
609 /****************************************************************
610 ****************************************************************/
612 WERROR
_PNP_GetNextLogConf(struct pipes_struct
*p
,
613 struct PNP_GetNextLogConf
*r
)
615 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
616 return WERR_NOT_SUPPORTED
;
619 /****************************************************************
620 ****************************************************************/
622 WERROR
_PNP_GetLogConfPriority(struct pipes_struct
*p
,
623 struct PNP_GetLogConfPriority
*r
)
625 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
626 return WERR_NOT_SUPPORTED
;
629 /****************************************************************
630 ****************************************************************/
632 WERROR
_PNP_AddResDes(struct pipes_struct
*p
,
633 struct PNP_AddResDes
*r
)
635 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
636 return WERR_NOT_SUPPORTED
;
639 /****************************************************************
640 ****************************************************************/
642 WERROR
_PNP_FreeResDes(struct pipes_struct
*p
,
643 struct PNP_FreeResDes
*r
)
645 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
646 return WERR_NOT_SUPPORTED
;
649 /****************************************************************
650 ****************************************************************/
652 WERROR
_PNP_GetNextResDes(struct pipes_struct
*p
,
653 struct PNP_GetNextResDes
*r
)
655 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
656 return WERR_NOT_SUPPORTED
;
659 /****************************************************************
660 ****************************************************************/
662 WERROR
_PNP_GetResDesData(struct pipes_struct
*p
,
663 struct PNP_GetResDesData
*r
)
665 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
666 return WERR_NOT_SUPPORTED
;
669 /****************************************************************
670 ****************************************************************/
672 WERROR
_PNP_GetResDesDataSize(struct pipes_struct
*p
,
673 struct PNP_GetResDesDataSize
*r
)
675 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
676 return WERR_NOT_SUPPORTED
;
679 /****************************************************************
680 ****************************************************************/
682 WERROR
_PNP_ModifyResDes(struct pipes_struct
*p
,
683 struct PNP_ModifyResDes
*r
)
685 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
686 return WERR_NOT_SUPPORTED
;
689 /****************************************************************
690 ****************************************************************/
692 WERROR
_PNP_DetectResourceLimit(struct pipes_struct
*p
,
693 struct PNP_DetectResourceLimit
*r
)
695 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
696 return WERR_NOT_SUPPORTED
;
699 /****************************************************************
700 ****************************************************************/
702 WERROR
_PNP_QueryResConfList(struct pipes_struct
*p
,
703 struct PNP_QueryResConfList
*r
)
705 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
706 return WERR_NOT_SUPPORTED
;
709 /****************************************************************
710 ****************************************************************/
712 WERROR
_PNP_SetHwProf(struct pipes_struct
*p
,
713 struct PNP_SetHwProf
*r
)
715 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
716 return WERR_NOT_SUPPORTED
;
719 /****************************************************************
720 ****************************************************************/
722 WERROR
_PNP_QueryArbitratorFreeData(struct pipes_struct
*p
,
723 struct PNP_QueryArbitratorFreeData
*r
)
725 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
726 return WERR_NOT_SUPPORTED
;
729 /****************************************************************
730 ****************************************************************/
732 WERROR
_PNP_QueryArbitratorFreeSize(struct pipes_struct
*p
,
733 struct PNP_QueryArbitratorFreeSize
*r
)
735 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
736 return WERR_NOT_SUPPORTED
;
739 /****************************************************************
740 ****************************************************************/
742 WERROR
_PNP_RunDetection(struct pipes_struct
*p
,
743 struct PNP_RunDetection
*r
)
745 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
746 return WERR_NOT_SUPPORTED
;
749 /****************************************************************
750 ****************************************************************/
752 WERROR
_PNP_RegisterNotification(struct pipes_struct
*p
,
753 struct PNP_RegisterNotification
*r
)
755 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
756 return WERR_NOT_SUPPORTED
;
759 /****************************************************************
760 ****************************************************************/
762 WERROR
_PNP_UnregisterNotification(struct pipes_struct
*p
,
763 struct PNP_UnregisterNotification
*r
)
765 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
766 return WERR_NOT_SUPPORTED
;
769 /****************************************************************
770 ****************************************************************/
772 WERROR
_PNP_GetCustomDevProp(struct pipes_struct
*p
,
773 struct PNP_GetCustomDevProp
*r
)
775 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
776 return WERR_NOT_SUPPORTED
;
779 /****************************************************************
780 ****************************************************************/
782 WERROR
_PNP_GetVersionInternal(struct pipes_struct
*p
,
783 struct PNP_GetVersionInternal
*r
)
785 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
786 return WERR_NOT_SUPPORTED
;
789 /****************************************************************
790 ****************************************************************/
792 WERROR
_PNP_GetBlockedDriverInfo(struct pipes_struct
*p
,
793 struct PNP_GetBlockedDriverInfo
*r
)
795 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
796 return WERR_NOT_SUPPORTED
;
799 /****************************************************************
800 ****************************************************************/
802 WERROR
_PNP_GetServerSideDeviceInstallFlags(struct pipes_struct
*p
,
803 struct PNP_GetServerSideDeviceInstallFlags
*r
)
805 p
->fault_state
= DCERPC_FAULT_OP_RNG_ERROR
;
806 return WERR_NOT_SUPPORTED
;
809 /* include the generated boilerplate */
810 #include "librpc/gen_ndr/ndr_ntsvcs_scompat.c"