2008-03-26 13:45:28 +03:00
/*
2005-09-30 21:13:37 +04:00
* Unix SMB / CIFS implementation .
* RPC Pipe client / server routines
*
* Copyright ( C ) Gerald ( Jerry ) Carter 2005.
2009-04-10 02:43:55 +04:00
* Copyright ( C ) Guenther Deschner 2008 , 2009.
2008-03-26 13:45:28 +03:00
*
2005-09-30 21:13:37 +04:00
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
2007-07-09 23:25:36 +04:00
* the Free Software Foundation ; either version 3 of the License , or
2005-09-30 21:13:37 +04:00
* ( at your option ) any later version .
2008-03-26 13:45:28 +03:00
*
2005-09-30 21:13:37 +04:00
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
2008-03-26 13:45:28 +03:00
*
2005-09-30 21:13:37 +04:00
* You should have received a copy of the GNU General Public License
2007-07-10 09:23:25 +04:00
* along with this program ; if not , see < http : //www.gnu.org/licenses/>.
2005-09-30 21:13:37 +04:00
*/
# include "includes.h"
2011-05-02 15:21:53 +04:00
# include "ntdomain.h"
2009-11-26 20:21:28 +03:00
# include "../librpc/gen_ndr/srv_ntsvcs.h"
2011-01-31 18:40:33 +03:00
# include "services/svc_winreg_glue.h"
2011-02-26 02:28:15 +03:00
# include "../libcli/registry/util_reg.h"
2005-09-30 21:13:37 +04:00
# undef DBGC_CLASS
# define DBGC_CLASS DBGC_RPC_SRV
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-06-29 21:40:37 +04:00
static char * get_device_path ( TALLOC_CTX * mem_ctx , const char * device )
2005-09-30 21:13:37 +04:00
{
2007-06-29 21:40:37 +04:00
return talloc_asprintf ( mem_ctx , " ROOT \\ Legacy_%s \\ 0000 " , device ) ;
2005-09-30 21:13:37 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetVersion ( struct pipes_struct * p ,
2008-02-18 01:17:51 +03:00
struct PNP_GetVersion * r )
2005-09-30 21:13:37 +04:00
{
2008-02-18 01:17:51 +03:00
* r - > out . version = 0x0400 ; /* no idea what this means */
2005-09-30 21:13:37 +04:00
return WERR_OK ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetDeviceListSize ( struct pipes_struct * p ,
2008-02-18 02:21:56 +03:00
struct PNP_GetDeviceListSize * r )
2005-09-30 21:13:37 +04:00
{
2007-06-29 21:40:37 +04:00
char * devicepath ;
2005-09-30 21:13:37 +04:00
2009-04-10 02:43:55 +04:00
if ( ( r - > in . flags & CM_GETIDLIST_FILTER_SERVICE ) & &
( ! r - > in . devicename ) ) {
return WERR_CM_INVALID_POINTER ;
2008-02-18 02:21:56 +03:00
}
2005-09-30 21:13:37 +04:00
2008-02-18 02:21:56 +03:00
if ( ! ( devicepath = get_device_path ( p - > mem_ctx , r - > in . devicename ) ) ) {
2015-12-03 17:24:15 +03:00
return WERR_NOT_ENOUGH_MEMORY ;
2007-06-29 21:40:37 +04:00
}
2005-09-30 21:13:37 +04:00
2008-02-18 02:21:56 +03:00
* r - > out . size = strlen ( devicepath ) + 2 ;
2005-09-30 21:13:37 +04:00
2007-06-29 21:40:37 +04:00
TALLOC_FREE ( devicepath ) ;
2005-09-30 21:13:37 +04:00
return WERR_OK ;
}
2008-11-19 16:33:36 +03:00
/****************************************************************
_PNP_GetDeviceList
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2005-09-30 21:13:37 +04:00
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetDeviceList ( struct pipes_struct * p ,
2008-11-19 16:33:36 +03:00
struct PNP_GetDeviceList * r )
2005-09-30 21:13:37 +04:00
{
2007-06-29 21:40:37 +04:00
char * devicepath ;
2008-11-19 16:33:36 +03:00
uint32_t size = 0 ;
2009-09-25 02:36:43 +04:00
const char * * multi_sz = NULL ;
DATA_BLOB blob ;
2005-09-30 21:13:37 +04:00
2009-04-10 02:43:55 +04:00
if ( ( r - > in . flags & CM_GETIDLIST_FILTER_SERVICE ) & &
( ! r - > in . filter ) ) {
return WERR_CM_INVALID_POINTER ;
}
2007-06-29 21:40:37 +04:00
2008-11-19 16:33:36 +03:00
if ( ! ( devicepath = get_device_path ( p - > mem_ctx , r - > in . filter ) ) ) {
2015-12-03 17:24:15 +03:00
return WERR_NOT_ENOUGH_MEMORY ;
2007-06-29 21:40:37 +04:00
}
2005-09-30 21:13:37 +04:00
2008-11-19 16:33:36 +03:00
size = strlen ( devicepath ) + 2 ;
if ( * r - > in . length < size ) {
return WERR_CM_BUFFER_SMALL ;
}
2009-09-25 02:36:43 +04:00
multi_sz = talloc_zero_array ( p - > mem_ctx , const char * , 2 ) ;
2009-04-10 02:43:55 +04:00
if ( ! multi_sz ) {
2015-12-03 17:24:15 +03:00
return WERR_NOT_ENOUGH_MEMORY ;
2008-11-19 16:33:36 +03:00
}
2005-09-30 21:13:37 +04:00
2009-04-10 02:43:55 +04:00
multi_sz [ 0 ] = devicepath ;
2010-05-10 02:42:06 +04:00
if ( ! push_reg_multi_sz ( multi_sz , & blob , multi_sz ) ) {
2015-12-03 17:24:15 +03:00
return WERR_NOT_ENOUGH_MEMORY ;
2008-11-19 16:33:36 +03:00
}
2005-09-30 21:13:37 +04:00
2009-09-25 02:36:43 +04:00
if ( * r - > in . length < blob . length / 2 ) {
2009-04-10 02:43:55 +04:00
return WERR_CM_BUFFER_SMALL ;
}
2009-09-25 02:36:43 +04:00
memcpy ( r - > out . buffer , blob . data , blob . length ) ;
2009-04-10 02:43:55 +04:00
2005-09-30 21:13:37 +04:00
return WERR_OK ;
}
/********************************************************************
2008-11-11 13:21:45 +03:00
_PNP_GetDeviceRegProp
2005-09-30 21:13:37 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetDeviceRegProp ( struct pipes_struct * p ,
2008-11-11 13:21:45 +03:00
struct PNP_GetDeviceRegProp * r )
2005-09-30 21:13:37 +04:00
{
char * ptr ;
2010-09-20 13:17:38 +04:00
const char * result ;
DATA_BLOB blob ;
TALLOC_CTX * mem_ctx = NULL ;
2005-09-30 21:13:37 +04:00
2008-11-11 13:21:45 +03:00
switch ( r - > in . property ) {
2005-09-30 21:13:37 +04:00
case DEV_REGPROP_DESC :
2008-11-11 13:21:45 +03:00
2008-03-26 13:45:28 +03:00
/* just parse the service name from the device path and then
2005-09-30 21:13:37 +04:00
lookup the display name */
2008-11-11 13:21:45 +03:00
if ( ! ( ptr = strrchr_m ( r - > in . devicepath , ' \\ ' ) ) )
2008-03-26 13:45:28 +03:00
return WERR_GENERAL_FAILURE ;
2005-09-30 21:13:37 +04:00
* ptr = ' \0 ' ;
2008-03-26 13:45:28 +03:00
2008-11-11 13:21:45 +03:00
if ( ! ( ptr = strrchr_m ( r - > in . devicepath , ' _ ' ) ) )
2008-03-26 13:45:28 +03:00
return WERR_GENERAL_FAILURE ;
2005-09-30 21:13:37 +04:00
ptr + + ;
2008-03-26 13:45:28 +03:00
2010-09-20 13:17:38 +04:00
mem_ctx = talloc_stackframe ( ) ;
2011-01-31 18:40:33 +03:00
result = svcctl_lookup_dispname ( mem_ctx ,
p - > msg_ctx ,
2011-02-21 12:25:52 +03:00
p - > session_info ,
2011-01-31 18:40:33 +03:00
ptr ) ;
2010-09-20 13:17:38 +04:00
if ( result = = NULL ) {
2008-03-26 13:45:28 +03:00
return WERR_GENERAL_FAILURE ;
2010-09-20 13:17:38 +04:00
}
2008-03-26 13:45:28 +03:00
2010-09-20 13:17:38 +04:00
if ( ! push_reg_sz ( mem_ctx , & blob , result ) ) {
talloc_free ( mem_ctx ) ;
2005-09-30 21:13:37 +04:00
return WERR_GENERAL_FAILURE ;
}
2008-03-26 13:45:28 +03:00
2010-09-20 13:17:38 +04:00
if ( * r - > in . buffer_size < blob . length ) {
* r - > out . needed = blob . length ;
2008-11-11 13:21:45 +03:00
* r - > out . buffer_size = 0 ;
2010-09-20 13:17:38 +04:00
talloc_free ( mem_ctx ) ;
2008-11-11 13:21:45 +03:00
return WERR_CM_BUFFER_SMALL ;
}
2005-09-30 21:13:37 +04:00
2010-09-20 13:17:38 +04:00
r - > out . buffer = ( uint8_t * ) talloc_memdup ( p - > mem_ctx , blob . data , blob . length ) ;
talloc_free ( mem_ctx ) ;
2008-11-11 13:21:45 +03:00
if ( ! r - > out . buffer ) {
2015-12-03 17:24:15 +03:00
return WERR_NOT_ENOUGH_MEMORY ;
2008-11-11 13:21:45 +03:00
}
* r - > out . reg_data_type = REG_SZ ; /* always 1...tested using a remove device manager connection */
2010-09-20 13:17:38 +04:00
* r - > out . buffer_size = blob . length ;
* r - > out . needed = blob . length ;
2005-09-30 21:13:37 +04:00
break ;
2008-03-26 13:45:28 +03:00
2005-09-30 21:13:37 +04:00
default :
2008-11-11 13:21:45 +03:00
* r - > out . reg_data_type = 0x00437c98 ; /* ??? */
2005-09-30 21:13:37 +04:00
return WERR_CM_NO_SUCH_VALUE ;
}
return WERR_OK ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_ValidateDeviceInstance ( struct pipes_struct * p ,
2008-02-18 01:42:20 +03:00
struct PNP_ValidateDeviceInstance * r )
2005-09-30 21:13:37 +04:00
{
/* whatever dude */
return WERR_OK ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetHwProfInfo ( struct pipes_struct * p ,
2008-02-18 03:32:29 +03:00
struct PNP_GetHwProfInfo * r )
2005-09-30 21:13:37 +04:00
{
/* steal the incoming buffer */
2008-02-18 03:32:29 +03:00
r - > out . info = r - > in . info ;
2005-09-30 21:13:37 +04:00
/* Take the 5th Ammentment */
return WERR_CM_NO_MORE_HW_PROFILES ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_HwProfFlags ( struct pipes_struct * p ,
2008-02-18 03:09:34 +03:00
struct PNP_HwProfFlags * r )
{
2005-09-30 21:13:37 +04:00
/* just nod your head */
2008-02-18 03:09:34 +03:00
2005-09-30 21:13:37 +04:00
return WERR_OK ;
}
2008-02-18 01:03:22 +03:00
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_Disconnect ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_Disconnect * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_Connect ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_Connect * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetGlobalState ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetGlobalState * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_InitDetection ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_InitDetection * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_ReportLogOn ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_ReportLogOn * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetRootDeviceInstance ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetRootDeviceInstance * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetRelatedDeviceInstance ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetRelatedDeviceInstance * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_EnumerateSubKeys ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_EnumerateSubKeys * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetDepth ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetDepth * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_SetDeviceRegProp ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_SetDeviceRegProp * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetClassInstance ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetClassInstance * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_CreateKey ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_CreateKey * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_DeleteRegistryKey ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_DeleteRegistryKey * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetClassCount ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetClassCount * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetClassName ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetClassName * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_DeleteClassKey ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_DeleteClassKey * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetInterfaceDeviceAlias ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetInterfaceDeviceAlias * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetInterfaceDeviceList ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetInterfaceDeviceList * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetInterfaceDeviceListSize ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetInterfaceDeviceListSize * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_RegisterDeviceClassAssociation ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_RegisterDeviceClassAssociation * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_UnregisterDeviceClassAssociation ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_UnregisterDeviceClassAssociation * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetClassRegProp ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetClassRegProp * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_SetClassRegProp ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_SetClassRegProp * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_CreateDevInst ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_CreateDevInst * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_DeviceInstanceAction ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_DeviceInstanceAction * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetDeviceStatus ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetDeviceStatus * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_SetDeviceProblem ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_SetDeviceProblem * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_DisableDevInst ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_DisableDevInst * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_UninstallDevInst ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_UninstallDevInst * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_AddID ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_AddID * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_RegisterDriver ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_RegisterDriver * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_QueryRemove ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_QueryRemove * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_RequestDeviceEject ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_RequestDeviceEject * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_IsDockStationPresent ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_IsDockStationPresent * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_RequestEjectPC ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_RequestEjectPC * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_AddEmptyLogConf ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_AddEmptyLogConf * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_FreeLogConf ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_FreeLogConf * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetFirstLogConf ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetFirstLogConf * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetNextLogConf ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetNextLogConf * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetLogConfPriority ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetLogConfPriority * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_AddResDes ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_AddResDes * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_FreeResDes ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_FreeResDes * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetNextResDes ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetNextResDes * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetResDesData ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetResDesData * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetResDesDataSize ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetResDesDataSize * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_ModifyResDes ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_ModifyResDes * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_DetectResourceLimit ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_DetectResourceLimit * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_QueryResConfList ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_QueryResConfList * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_SetHwProf ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_SetHwProf * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_QueryArbitratorFreeData ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_QueryArbitratorFreeData * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_QueryArbitratorFreeSize ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_QueryArbitratorFreeSize * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_RunDetection ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_RunDetection * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_RegisterNotification ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_RegisterNotification * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_UnregisterNotification ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_UnregisterNotification * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetCustomDevProp ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetCustomDevProp * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetVersionInternal ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetVersionInternal * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetBlockedDriverInfo ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetBlockedDriverInfo * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2010-07-28 12:15:45 +04:00
WERROR _PNP_GetServerSideDeviceInstallFlags ( struct pipes_struct * p ,
2008-02-18 01:03:22 +03:00
struct PNP_GetServerSideDeviceInstallFlags * r )
{
2012-06-27 17:21:11 +04:00
p - > fault_state = DCERPC_FAULT_OP_RNG_ERROR ;
2008-02-18 01:03:22 +03:00
return WERR_NOT_SUPPORTED ;
}