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"
2009-11-26 20:21:28 +03:00
# include "../librpc/gen_ndr/srv_ntsvcs.h"
2009-10-02 02:17:06 +04:00
# include "registry.h"
2010-05-25 03:00:37 +04:00
# include "registry/reg_objects.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
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-02-18 01:17:51 +03:00
WERROR _PNP_GetVersion ( pipes_struct * p ,
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 ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-02-18 02:21:56 +03:00
WERROR _PNP_GetDeviceListSize ( pipes_struct * p ,
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 ) ) ) {
2007-06-29 21:40:37 +04:00
return WERR_NOMEM ;
}
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
2008-11-19 16:33:36 +03:00
WERROR _PNP_GetDeviceList ( pipes_struct * p ,
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 ) ) ) {
2007-06-29 21:40:37 +04:00
return WERR_NOMEM ;
}
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 ) {
return WERR_NOMEM ;
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 ) ) {
2008-11-19 16:33:36 +03:00
return WERR_NOMEM ;
}
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
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-11-11 13:21:45 +03:00
WERROR _PNP_GetDeviceRegProp ( pipes_struct * p ,
struct PNP_GetDeviceRegProp * r )
2005-09-30 21:13:37 +04:00
{
char * ptr ;
2009-03-23 20:14:17 +03:00
struct regval_ctr * values ;
2009-03-24 00:27:59 +03:00
struct regval_blob * val ;
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
2008-11-24 01:48:17 +03:00
if ( ! ( values = svcctl_fetch_regvalues (
ptr , p - > server_info - > ptok ) ) )
2008-03-26 13:45:28 +03:00
return WERR_GENERAL_FAILURE ;
2005-09-30 21:13:37 +04:00
if ( ! ( val = regval_ctr_getvalue ( values , " DisplayName " ) ) ) {
TALLOC_FREE ( values ) ;
return WERR_GENERAL_FAILURE ;
}
2008-03-26 13:45:28 +03:00
2010-05-24 16:06:20 +04:00
if ( * r - > in . buffer_size < regval_size ( val ) ) {
* r - > out . needed = regval_size ( val ) ;
2008-11-11 13:21:45 +03:00
* r - > out . buffer_size = 0 ;
TALLOC_FREE ( values ) ;
return WERR_CM_BUFFER_SMALL ;
}
2005-09-30 21:13:37 +04:00
2010-05-24 16:06:20 +04:00
r - > out . buffer = ( uint8_t * ) talloc_memdup ( p - > mem_ctx , regval_data_p ( val ) , regval_size ( val ) ) ;
2005-09-30 21:13:37 +04:00
TALLOC_FREE ( values ) ;
2008-11-11 13:21:45 +03:00
if ( ! r - > out . buffer ) {
return WERR_NOMEM ;
}
* r - > out . reg_data_type = REG_SZ ; /* always 1...tested using a remove device manager connection */
2010-05-24 16:06:20 +04:00
* r - > out . buffer_size = regval_size ( val ) ;
* r - > out . needed = regval_size ( val ) ;
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 ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-02-18 01:42:20 +03:00
WERROR _PNP_ValidateDeviceInstance ( pipes_struct * p ,
struct PNP_ValidateDeviceInstance * r )
2005-09-30 21:13:37 +04:00
{
/* whatever dude */
return WERR_OK ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-02-18 03:32:29 +03:00
WERROR _PNP_GetHwProfInfo ( pipes_struct * p ,
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 ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-02-18 03:09:34 +03:00
WERROR _PNP_HwProfFlags ( pipes_struct * p ,
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
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_Disconnect ( pipes_struct * p ,
struct PNP_Disconnect * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_Connect ( pipes_struct * p ,
struct PNP_Connect * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetGlobalState ( pipes_struct * p ,
struct PNP_GetGlobalState * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_InitDetection ( pipes_struct * p ,
struct PNP_InitDetection * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_ReportLogOn ( pipes_struct * p ,
struct PNP_ReportLogOn * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetRootDeviceInstance ( pipes_struct * p ,
struct PNP_GetRootDeviceInstance * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetRelatedDeviceInstance ( pipes_struct * p ,
struct PNP_GetRelatedDeviceInstance * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_EnumerateSubKeys ( pipes_struct * p ,
struct PNP_EnumerateSubKeys * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetDepth ( pipes_struct * p ,
struct PNP_GetDepth * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_SetDeviceRegProp ( pipes_struct * p ,
struct PNP_SetDeviceRegProp * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetClassInstance ( pipes_struct * p ,
struct PNP_GetClassInstance * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_CreateKey ( pipes_struct * p ,
struct PNP_CreateKey * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_DeleteRegistryKey ( pipes_struct * p ,
struct PNP_DeleteRegistryKey * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetClassCount ( pipes_struct * p ,
struct PNP_GetClassCount * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetClassName ( pipes_struct * p ,
struct PNP_GetClassName * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_DeleteClassKey ( pipes_struct * p ,
struct PNP_DeleteClassKey * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetInterfaceDeviceAlias ( pipes_struct * p ,
struct PNP_GetInterfaceDeviceAlias * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetInterfaceDeviceList ( pipes_struct * p ,
struct PNP_GetInterfaceDeviceList * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetInterfaceDeviceListSize ( pipes_struct * p ,
struct PNP_GetInterfaceDeviceListSize * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_RegisterDeviceClassAssociation ( pipes_struct * p ,
struct PNP_RegisterDeviceClassAssociation * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_UnregisterDeviceClassAssociation ( pipes_struct * p ,
struct PNP_UnregisterDeviceClassAssociation * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetClassRegProp ( pipes_struct * p ,
struct PNP_GetClassRegProp * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_SetClassRegProp ( pipes_struct * p ,
struct PNP_SetClassRegProp * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_CreateDevInst ( pipes_struct * p ,
struct PNP_CreateDevInst * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_DeviceInstanceAction ( pipes_struct * p ,
struct PNP_DeviceInstanceAction * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetDeviceStatus ( pipes_struct * p ,
struct PNP_GetDeviceStatus * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_SetDeviceProblem ( pipes_struct * p ,
struct PNP_SetDeviceProblem * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_DisableDevInst ( pipes_struct * p ,
struct PNP_DisableDevInst * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_UninstallDevInst ( pipes_struct * p ,
struct PNP_UninstallDevInst * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_AddID ( pipes_struct * p ,
struct PNP_AddID * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_RegisterDriver ( pipes_struct * p ,
struct PNP_RegisterDriver * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_QueryRemove ( pipes_struct * p ,
struct PNP_QueryRemove * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_RequestDeviceEject ( pipes_struct * p ,
struct PNP_RequestDeviceEject * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_IsDockStationPresent ( pipes_struct * p ,
struct PNP_IsDockStationPresent * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_RequestEjectPC ( pipes_struct * p ,
struct PNP_RequestEjectPC * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_AddEmptyLogConf ( pipes_struct * p ,
struct PNP_AddEmptyLogConf * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_FreeLogConf ( pipes_struct * p ,
struct PNP_FreeLogConf * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetFirstLogConf ( pipes_struct * p ,
struct PNP_GetFirstLogConf * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetNextLogConf ( pipes_struct * p ,
struct PNP_GetNextLogConf * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetLogConfPriority ( pipes_struct * p ,
struct PNP_GetLogConfPriority * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_AddResDes ( pipes_struct * p ,
struct PNP_AddResDes * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_FreeResDes ( pipes_struct * p ,
struct PNP_FreeResDes * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetNextResDes ( pipes_struct * p ,
struct PNP_GetNextResDes * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetResDesData ( pipes_struct * p ,
struct PNP_GetResDesData * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetResDesDataSize ( pipes_struct * p ,
struct PNP_GetResDesDataSize * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_ModifyResDes ( pipes_struct * p ,
struct PNP_ModifyResDes * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_DetectResourceLimit ( pipes_struct * p ,
struct PNP_DetectResourceLimit * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_QueryResConfList ( pipes_struct * p ,
struct PNP_QueryResConfList * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_SetHwProf ( pipes_struct * p ,
struct PNP_SetHwProf * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_QueryArbitratorFreeData ( pipes_struct * p ,
struct PNP_QueryArbitratorFreeData * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_QueryArbitratorFreeSize ( pipes_struct * p ,
struct PNP_QueryArbitratorFreeSize * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_RunDetection ( pipes_struct * p ,
struct PNP_RunDetection * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_RegisterNotification ( pipes_struct * p ,
struct PNP_RegisterNotification * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_UnregisterNotification ( pipes_struct * p ,
struct PNP_UnregisterNotification * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetCustomDevProp ( pipes_struct * p ,
struct PNP_GetCustomDevProp * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetVersionInternal ( pipes_struct * p ,
struct PNP_GetVersionInternal * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetBlockedDriverInfo ( pipes_struct * p ,
struct PNP_GetBlockedDriverInfo * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _PNP_GetServerSideDeviceInstallFlags ( pipes_struct * p ,
struct PNP_GetServerSideDeviceInstallFlags * r )
{
p - > rng_fault_state = true ;
return WERR_NOT_SUPPORTED ;
}