2008-02-17 22:25:05 +03:00
/*
* Unix SMB / CIFS implementation .
* server auto - generated by pidl . DO NOT MODIFY !
*/
# include "includes.h"
# include "librpc/gen_ndr/srv_ntsvcs.h"
static bool api_PNP_Disconnect ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_Disconnect * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_DISCONNECT ] ;
r = talloc ( talloc_tos ( ) , struct PNP_Disconnect ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_Disconnect , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_Disconnect ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_Disconnect , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_Connect ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_Connect * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_CONNECT ] ;
r = talloc ( talloc_tos ( ) , struct PNP_Connect ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_Connect , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_Connect ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_Connect , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetVersion ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetVersion * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETVERSION ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetVersion ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetVersion , r ) ;
}
2008-02-18 01:29:35 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . version = talloc_zero ( r , uint16_t ) ;
if ( r - > out . version = = NULL ) {
talloc_free ( r ) ;
return false ;
}
r - > out . result = _PNP_GetVersion ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetVersion , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetGlobalState ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetGlobalState * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETGLOBALSTATE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetGlobalState ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetGlobalState , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetGlobalState ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetGlobalState , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_InitDetection ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_InitDetection * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_INITDETECTION ] ;
r = talloc ( talloc_tos ( ) , struct PNP_InitDetection ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_InitDetection , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_InitDetection ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_InitDetection , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_ReportLogOn ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_ReportLogOn * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_REPORTLOGON ] ;
r = talloc ( talloc_tos ( ) , struct PNP_ReportLogOn ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_ReportLogOn , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_ReportLogOn ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_ReportLogOn , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_ValidateDeviceInstance ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_ValidateDeviceInstance * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_VALIDATEDEVICEINSTANCE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_ValidateDeviceInstance ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_ValidateDeviceInstance , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_ValidateDeviceInstance ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_ValidateDeviceInstance , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetRootDeviceInstance ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetRootDeviceInstance * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETROOTDEVICEINSTANCE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetRootDeviceInstance ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetRootDeviceInstance , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetRootDeviceInstance ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetRootDeviceInstance , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetRelatedDeviceInstance ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetRelatedDeviceInstance * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETRELATEDDEVICEINSTANCE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetRelatedDeviceInstance ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetRelatedDeviceInstance , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetRelatedDeviceInstance ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetRelatedDeviceInstance , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_EnumerateSubKeys ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_EnumerateSubKeys * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_ENUMERATESUBKEYS ] ;
r = talloc ( talloc_tos ( ) , struct PNP_EnumerateSubKeys ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_EnumerateSubKeys , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_EnumerateSubKeys ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_EnumerateSubKeys , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetDeviceList ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetDeviceList * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETDEVICELIST ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetDeviceList ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetDeviceList , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetDeviceList ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetDeviceList , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetDeviceListSize ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetDeviceListSize * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETDEVICELISTSIZE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetDeviceListSize ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetDeviceListSize , r ) ;
}
2008-02-18 02:26:10 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . size = talloc_zero ( r , uint32_t ) ;
if ( r - > out . size = = NULL ) {
talloc_free ( r ) ;
return false ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetDeviceListSize ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetDeviceListSize , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetDepth ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetDepth * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETDEPTH ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetDepth ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetDepth , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetDepth ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetDepth , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetDeviceRegProp ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetDeviceRegProp * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETDEVICEREGPROP ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetDeviceRegProp ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetDeviceRegProp , r ) ;
}
2008-03-26 13:35:44 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . unknown1 = r - > in . unknown1 ;
r - > out . buffer = talloc_zero_array ( r , uint8_t , * r - > out . buffer_size ) ;
if ( r - > out . buffer = = NULL ) {
talloc_free ( r ) ;
return false ;
}
r - > out . buffer_size = r - > in . buffer_size ;
r - > out . needed = r - > in . needed ;
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetDeviceRegProp ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetDeviceRegProp , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_SetDeviceRegProp ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_SetDeviceRegProp * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_SETDEVICEREGPROP ] ;
r = talloc ( talloc_tos ( ) , struct PNP_SetDeviceRegProp ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_SetDeviceRegProp , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_SetDeviceRegProp ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_SetDeviceRegProp , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetClassInstance ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetClassInstance * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETCLASSINSTANCE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetClassInstance ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetClassInstance , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetClassInstance ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetClassInstance , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_CreateKey ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_CreateKey * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_CREATEKEY ] ;
r = talloc ( talloc_tos ( ) , struct PNP_CreateKey ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_CreateKey , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_CreateKey ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_CreateKey , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_DeleteRegistryKey ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_DeleteRegistryKey * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_DELETEREGISTRYKEY ] ;
r = talloc ( talloc_tos ( ) , struct PNP_DeleteRegistryKey ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_DeleteRegistryKey , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_DeleteRegistryKey ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_DeleteRegistryKey , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetClassCount ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetClassCount * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETCLASSCOUNT ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetClassCount ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetClassCount , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetClassCount ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetClassCount , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetClassName ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetClassName * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETCLASSNAME ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetClassName ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetClassName , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetClassName ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetClassName , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_DeleteClassKey ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_DeleteClassKey * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_DELETECLASSKEY ] ;
r = talloc ( talloc_tos ( ) , struct PNP_DeleteClassKey ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_DeleteClassKey , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_DeleteClassKey ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_DeleteClassKey , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetInterfaceDeviceAlias ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetInterfaceDeviceAlias * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETINTERFACEDEVICEALIAS ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetInterfaceDeviceAlias ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetInterfaceDeviceAlias , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetInterfaceDeviceAlias ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetInterfaceDeviceAlias , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetInterfaceDeviceList ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetInterfaceDeviceList * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETINTERFACEDEVICELIST ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetInterfaceDeviceList ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetInterfaceDeviceList , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetInterfaceDeviceList ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetInterfaceDeviceList , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetInterfaceDeviceListSize ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetInterfaceDeviceListSize * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETINTERFACEDEVICELISTSIZE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetInterfaceDeviceListSize ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetInterfaceDeviceListSize , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetInterfaceDeviceListSize ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetInterfaceDeviceListSize , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_RegisterDeviceClassAssociation ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_RegisterDeviceClassAssociation * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_REGISTERDEVICECLASSASSOCIATION ] ;
r = talloc ( talloc_tos ( ) , struct PNP_RegisterDeviceClassAssociation ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_RegisterDeviceClassAssociation , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_RegisterDeviceClassAssociation ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_RegisterDeviceClassAssociation , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_UnregisterDeviceClassAssociation ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_UnregisterDeviceClassAssociation * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_UNREGISTERDEVICECLASSASSOCIATION ] ;
r = talloc ( talloc_tos ( ) , struct PNP_UnregisterDeviceClassAssociation ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_UnregisterDeviceClassAssociation , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_UnregisterDeviceClassAssociation ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_UnregisterDeviceClassAssociation , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetClassRegProp ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetClassRegProp * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETCLASSREGPROP ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetClassRegProp ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetClassRegProp , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetClassRegProp ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetClassRegProp , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_SetClassRegProp ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_SetClassRegProp * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_SETCLASSREGPROP ] ;
r = talloc ( talloc_tos ( ) , struct PNP_SetClassRegProp ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_SetClassRegProp , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_SetClassRegProp ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_SetClassRegProp , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_CreateDevInst ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_CreateDevInst * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_CREATEDEVINST ] ;
r = talloc ( talloc_tos ( ) , struct PNP_CreateDevInst ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_CreateDevInst , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_CreateDevInst ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_CreateDevInst , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_DeviceInstanceAction ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_DeviceInstanceAction * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_DEVICEINSTANCEACTION ] ;
r = talloc ( talloc_tos ( ) , struct PNP_DeviceInstanceAction ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_DeviceInstanceAction , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_DeviceInstanceAction ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_DeviceInstanceAction , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetDeviceStatus ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetDeviceStatus * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETDEVICESTATUS ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetDeviceStatus ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetDeviceStatus , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetDeviceStatus ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetDeviceStatus , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_SetDeviceProblem ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_SetDeviceProblem * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_SETDEVICEPROBLEM ] ;
r = talloc ( talloc_tos ( ) , struct PNP_SetDeviceProblem ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_SetDeviceProblem , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_SetDeviceProblem ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_SetDeviceProblem , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_DisableDevInst ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_DisableDevInst * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_DISABLEDEVINST ] ;
r = talloc ( talloc_tos ( ) , struct PNP_DisableDevInst ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_DisableDevInst , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_DisableDevInst ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_DisableDevInst , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_UninstallDevInst ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_UninstallDevInst * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_UNINSTALLDEVINST ] ;
r = talloc ( talloc_tos ( ) , struct PNP_UninstallDevInst ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_UninstallDevInst , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_UninstallDevInst ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_UninstallDevInst , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_AddID ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_AddID * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_ADDID ] ;
r = talloc ( talloc_tos ( ) , struct PNP_AddID ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_AddID , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_AddID ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_AddID , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_RegisterDriver ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_RegisterDriver * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_REGISTERDRIVER ] ;
r = talloc ( talloc_tos ( ) , struct PNP_RegisterDriver ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_RegisterDriver , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_RegisterDriver ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_RegisterDriver , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_QueryRemove ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_QueryRemove * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_QUERYREMOVE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_QueryRemove ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_QueryRemove , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_QueryRemove ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_QueryRemove , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_RequestDeviceEject ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_RequestDeviceEject * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_REQUESTDEVICEEJECT ] ;
r = talloc ( talloc_tos ( ) , struct PNP_RequestDeviceEject ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_RequestDeviceEject , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_RequestDeviceEject ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_RequestDeviceEject , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_IsDockStationPresent ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_IsDockStationPresent * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_ISDOCKSTATIONPRESENT ] ;
r = talloc ( talloc_tos ( ) , struct PNP_IsDockStationPresent ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_IsDockStationPresent , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_IsDockStationPresent ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_IsDockStationPresent , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_RequestEjectPC ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_RequestEjectPC * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_REQUESTEJECTPC ] ;
r = talloc ( talloc_tos ( ) , struct PNP_RequestEjectPC ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_RequestEjectPC , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_RequestEjectPC ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_RequestEjectPC , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_HwProfFlags ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_HwProfFlags * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_HWPROFFLAGS ] ;
r = talloc ( talloc_tos ( ) , struct PNP_HwProfFlags ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_HwProfFlags , r ) ;
}
2008-02-18 03:37:06 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . unknown3 = r - > in . unknown3 ;
r - > out . unknown4 = r - > in . unknown4 ;
r - > out . unknown5a = talloc_zero ( r , const char * ) ;
if ( r - > out . unknown5a = = NULL ) {
talloc_free ( r ) ;
return false ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_HwProfFlags ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_HwProfFlags , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetHwProfInfo ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetHwProfInfo * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETHWPROFINFO ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetHwProfInfo ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetHwProfInfo , r ) ;
}
2008-02-18 03:38:08 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . info = r - > in . info ;
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetHwProfInfo ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetHwProfInfo , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_AddEmptyLogConf ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_AddEmptyLogConf * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_ADDEMPTYLOGCONF ] ;
r = talloc ( talloc_tos ( ) , struct PNP_AddEmptyLogConf ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_AddEmptyLogConf , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_AddEmptyLogConf ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_AddEmptyLogConf , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_FreeLogConf ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_FreeLogConf * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_FREELOGCONF ] ;
r = talloc ( talloc_tos ( ) , struct PNP_FreeLogConf ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_FreeLogConf , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_FreeLogConf ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_FreeLogConf , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetFirstLogConf ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetFirstLogConf * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETFIRSTLOGCONF ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetFirstLogConf ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetFirstLogConf , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetFirstLogConf ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetFirstLogConf , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetNextLogConf ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetNextLogConf * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETNEXTLOGCONF ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetNextLogConf ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetNextLogConf , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetNextLogConf ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetNextLogConf , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetLogConfPriority ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetLogConfPriority * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETLOGCONFPRIORITY ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetLogConfPriority ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetLogConfPriority , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetLogConfPriority ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetLogConfPriority , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_AddResDes ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_AddResDes * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_ADDRESDES ] ;
r = talloc ( talloc_tos ( ) , struct PNP_AddResDes ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_AddResDes , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_AddResDes ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_AddResDes , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_FreeResDes ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_FreeResDes * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_FREERESDES ] ;
r = talloc ( talloc_tos ( ) , struct PNP_FreeResDes ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_FreeResDes , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_FreeResDes ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_FreeResDes , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetNextResDes ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetNextResDes * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETNEXTRESDES ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetNextResDes ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetNextResDes , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetNextResDes ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetNextResDes , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetResDesData ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetResDesData * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETRESDESDATA ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetResDesData ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetResDesData , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetResDesData ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetResDesData , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetResDesDataSize ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetResDesDataSize * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETRESDESDATASIZE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetResDesDataSize ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetResDesDataSize , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetResDesDataSize ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetResDesDataSize , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_ModifyResDes ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_ModifyResDes * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_MODIFYRESDES ] ;
r = talloc ( talloc_tos ( ) , struct PNP_ModifyResDes ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_ModifyResDes , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_ModifyResDes ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_ModifyResDes , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_DetectResourceLimit ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_DetectResourceLimit * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_DETECTRESOURCELIMIT ] ;
r = talloc ( talloc_tos ( ) , struct PNP_DetectResourceLimit ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_DetectResourceLimit , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_DetectResourceLimit ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_DetectResourceLimit , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_QueryResConfList ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_QueryResConfList * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_QUERYRESCONFLIST ] ;
r = talloc ( talloc_tos ( ) , struct PNP_QueryResConfList ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_QueryResConfList , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_QueryResConfList ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_QueryResConfList , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_SetHwProf ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_SetHwProf * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_SETHWPROF ] ;
r = talloc ( talloc_tos ( ) , struct PNP_SetHwProf ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_SetHwProf , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_SetHwProf ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_SetHwProf , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_QueryArbitratorFreeData ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_QueryArbitratorFreeData * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_QUERYARBITRATORFREEDATA ] ;
r = talloc ( talloc_tos ( ) , struct PNP_QueryArbitratorFreeData ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_QueryArbitratorFreeData , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_QueryArbitratorFreeData ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_QueryArbitratorFreeData , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_QueryArbitratorFreeSize ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_QueryArbitratorFreeSize * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_QUERYARBITRATORFREESIZE ] ;
r = talloc ( talloc_tos ( ) , struct PNP_QueryArbitratorFreeSize ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_QueryArbitratorFreeSize , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_QueryArbitratorFreeSize ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_QueryArbitratorFreeSize , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_RunDetection ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_RunDetection * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_RUNDETECTION ] ;
r = talloc ( talloc_tos ( ) , struct PNP_RunDetection ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_RunDetection , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_RunDetection ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_RunDetection , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_RegisterNotification ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_RegisterNotification * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_REGISTERNOTIFICATION ] ;
r = talloc ( talloc_tos ( ) , struct PNP_RegisterNotification ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_RegisterNotification , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_RegisterNotification ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_RegisterNotification , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_UnregisterNotification ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_UnregisterNotification * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_UNREGISTERNOTIFICATION ] ;
r = talloc ( talloc_tos ( ) , struct PNP_UnregisterNotification ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_UnregisterNotification , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_UnregisterNotification ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_UnregisterNotification , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetCustomDevProp ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetCustomDevProp * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETCUSTOMDEVPROP ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetCustomDevProp ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetCustomDevProp , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetCustomDevProp ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetCustomDevProp , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetVersionInternal ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetVersionInternal * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETVERSIONINTERNAL ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetVersionInternal ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetVersionInternal , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetVersionInternal ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetVersionInternal , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetBlockedDriverInfo ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetBlockedDriverInfo * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETBLOCKEDDRIVERINFO ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetBlockedDriverInfo ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetBlockedDriverInfo , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetBlockedDriverInfo ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetBlockedDriverInfo , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
static bool api_PNP_GetServerSideDeviceInstallFlags ( pipes_struct * p )
{
const struct ndr_interface_call * call ;
struct ndr_pull * pull ;
struct ndr_push * push ;
enum ndr_err_code ndr_err ;
DATA_BLOB blob ;
struct PNP_GetServerSideDeviceInstallFlags * r ;
call = & ndr_table_ntsvcs . calls [ NDR_PNP_GETSERVERSIDEDEVICEINSTALLFLAGS ] ;
r = talloc ( talloc_tos ( ) , struct PNP_GetServerSideDeviceInstallFlags ) ;
if ( r = = NULL ) {
return false ;
}
if ( ! prs_data_blob ( & p - > in_data . data , & blob , r ) ) {
talloc_free ( r ) ;
return false ;
}
2008-09-23 22:59:30 +04:00
pull = ndr_pull_init_blob ( & blob , r , NULL ) ;
2008-02-17 22:25:05 +03:00
if ( pull = = NULL ) {
talloc_free ( r ) ;
return false ;
}
pull - > flags | = LIBNDR_FLAG_REF_ALLOC ;
ndr_err = call - > ndr_pull ( pull , NDR_IN , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_IN_DEBUG ( PNP_GetServerSideDeviceInstallFlags , r ) ;
}
2008-02-18 01:29:35 +03:00
r - > out . result = _PNP_GetServerSideDeviceInstallFlags ( p , r ) ;
2008-02-17 22:25:05 +03:00
if ( p - > rng_fault_state ) {
talloc_free ( r ) ;
/* Return true here, srv_pipe_hnd.c will take care */
return true ;
}
if ( DEBUGLEVEL > = 10 ) {
NDR_PRINT_OUT_DEBUG ( PNP_GetServerSideDeviceInstallFlags , r ) ;
}
push = ndr_push_init_ctx ( r ) ;
if ( push = = NULL ) {
talloc_free ( r ) ;
return false ;
}
ndr_err = call - > ndr_push ( push , NDR_OUT , r ) ;
if ( ! NDR_ERR_CODE_IS_SUCCESS ( ndr_err ) ) {
talloc_free ( r ) ;
return false ;
}
blob = ndr_push_blob ( push ) ;
if ( ! prs_copy_data_in ( & p - > out_data . rdata , ( const char * ) blob . data , ( uint32_t ) blob . length ) ) {
talloc_free ( r ) ;
return false ;
}
talloc_free ( r ) ;
return true ;
}
/* Tables */
static struct api_struct api_ntsvcs_cmds [ ] =
{
{ " PNP_DISCONNECT " , NDR_PNP_DISCONNECT , api_PNP_Disconnect } ,
{ " PNP_CONNECT " , NDR_PNP_CONNECT , api_PNP_Connect } ,
{ " PNP_GETVERSION " , NDR_PNP_GETVERSION , api_PNP_GetVersion } ,
{ " PNP_GETGLOBALSTATE " , NDR_PNP_GETGLOBALSTATE , api_PNP_GetGlobalState } ,
{ " PNP_INITDETECTION " , NDR_PNP_INITDETECTION , api_PNP_InitDetection } ,
{ " PNP_REPORTLOGON " , NDR_PNP_REPORTLOGON , api_PNP_ReportLogOn } ,
{ " PNP_VALIDATEDEVICEINSTANCE " , NDR_PNP_VALIDATEDEVICEINSTANCE , api_PNP_ValidateDeviceInstance } ,
{ " PNP_GETROOTDEVICEINSTANCE " , NDR_PNP_GETROOTDEVICEINSTANCE , api_PNP_GetRootDeviceInstance } ,
{ " PNP_GETRELATEDDEVICEINSTANCE " , NDR_PNP_GETRELATEDDEVICEINSTANCE , api_PNP_GetRelatedDeviceInstance } ,
{ " PNP_ENUMERATESUBKEYS " , NDR_PNP_ENUMERATESUBKEYS , api_PNP_EnumerateSubKeys } ,
{ " PNP_GETDEVICELIST " , NDR_PNP_GETDEVICELIST , api_PNP_GetDeviceList } ,
{ " PNP_GETDEVICELISTSIZE " , NDR_PNP_GETDEVICELISTSIZE , api_PNP_GetDeviceListSize } ,
{ " PNP_GETDEPTH " , NDR_PNP_GETDEPTH , api_PNP_GetDepth } ,
{ " PNP_GETDEVICEREGPROP " , NDR_PNP_GETDEVICEREGPROP , api_PNP_GetDeviceRegProp } ,
{ " PNP_SETDEVICEREGPROP " , NDR_PNP_SETDEVICEREGPROP , api_PNP_SetDeviceRegProp } ,
{ " PNP_GETCLASSINSTANCE " , NDR_PNP_GETCLASSINSTANCE , api_PNP_GetClassInstance } ,
{ " PNP_CREATEKEY " , NDR_PNP_CREATEKEY , api_PNP_CreateKey } ,
{ " PNP_DELETEREGISTRYKEY " , NDR_PNP_DELETEREGISTRYKEY , api_PNP_DeleteRegistryKey } ,
{ " PNP_GETCLASSCOUNT " , NDR_PNP_GETCLASSCOUNT , api_PNP_GetClassCount } ,
{ " PNP_GETCLASSNAME " , NDR_PNP_GETCLASSNAME , api_PNP_GetClassName } ,
{ " PNP_DELETECLASSKEY " , NDR_PNP_DELETECLASSKEY , api_PNP_DeleteClassKey } ,
{ " PNP_GETINTERFACEDEVICEALIAS " , NDR_PNP_GETINTERFACEDEVICEALIAS , api_PNP_GetInterfaceDeviceAlias } ,
{ " PNP_GETINTERFACEDEVICELIST " , NDR_PNP_GETINTERFACEDEVICELIST , api_PNP_GetInterfaceDeviceList } ,
{ " PNP_GETINTERFACEDEVICELISTSIZE " , NDR_PNP_GETINTERFACEDEVICELISTSIZE , api_PNP_GetInterfaceDeviceListSize } ,
{ " PNP_REGISTERDEVICECLASSASSOCIATION " , NDR_PNP_REGISTERDEVICECLASSASSOCIATION , api_PNP_RegisterDeviceClassAssociation } ,
{ " PNP_UNREGISTERDEVICECLASSASSOCIATION " , NDR_PNP_UNREGISTERDEVICECLASSASSOCIATION , api_PNP_UnregisterDeviceClassAssociation } ,
{ " PNP_GETCLASSREGPROP " , NDR_PNP_GETCLASSREGPROP , api_PNP_GetClassRegProp } ,
{ " PNP_SETCLASSREGPROP " , NDR_PNP_SETCLASSREGPROP , api_PNP_SetClassRegProp } ,
{ " PNP_CREATEDEVINST " , NDR_PNP_CREATEDEVINST , api_PNP_CreateDevInst } ,
{ " PNP_DEVICEINSTANCEACTION " , NDR_PNP_DEVICEINSTANCEACTION , api_PNP_DeviceInstanceAction } ,
{ " PNP_GETDEVICESTATUS " , NDR_PNP_GETDEVICESTATUS , api_PNP_GetDeviceStatus } ,
{ " PNP_SETDEVICEPROBLEM " , NDR_PNP_SETDEVICEPROBLEM , api_PNP_SetDeviceProblem } ,
{ " PNP_DISABLEDEVINST " , NDR_PNP_DISABLEDEVINST , api_PNP_DisableDevInst } ,
{ " PNP_UNINSTALLDEVINST " , NDR_PNP_UNINSTALLDEVINST , api_PNP_UninstallDevInst } ,
{ " PNP_ADDID " , NDR_PNP_ADDID , api_PNP_AddID } ,
{ " PNP_REGISTERDRIVER " , NDR_PNP_REGISTERDRIVER , api_PNP_RegisterDriver } ,
{ " PNP_QUERYREMOVE " , NDR_PNP_QUERYREMOVE , api_PNP_QueryRemove } ,
{ " PNP_REQUESTDEVICEEJECT " , NDR_PNP_REQUESTDEVICEEJECT , api_PNP_RequestDeviceEject } ,
{ " PNP_ISDOCKSTATIONPRESENT " , NDR_PNP_ISDOCKSTATIONPRESENT , api_PNP_IsDockStationPresent } ,
{ " PNP_REQUESTEJECTPC " , NDR_PNP_REQUESTEJECTPC , api_PNP_RequestEjectPC } ,
{ " PNP_HWPROFFLAGS " , NDR_PNP_HWPROFFLAGS , api_PNP_HwProfFlags } ,
{ " PNP_GETHWPROFINFO " , NDR_PNP_GETHWPROFINFO , api_PNP_GetHwProfInfo } ,
{ " PNP_ADDEMPTYLOGCONF " , NDR_PNP_ADDEMPTYLOGCONF , api_PNP_AddEmptyLogConf } ,
{ " PNP_FREELOGCONF " , NDR_PNP_FREELOGCONF , api_PNP_FreeLogConf } ,
{ " PNP_GETFIRSTLOGCONF " , NDR_PNP_GETFIRSTLOGCONF , api_PNP_GetFirstLogConf } ,
{ " PNP_GETNEXTLOGCONF " , NDR_PNP_GETNEXTLOGCONF , api_PNP_GetNextLogConf } ,
{ " PNP_GETLOGCONFPRIORITY " , NDR_PNP_GETLOGCONFPRIORITY , api_PNP_GetLogConfPriority } ,
{ " PNP_ADDRESDES " , NDR_PNP_ADDRESDES , api_PNP_AddResDes } ,
{ " PNP_FREERESDES " , NDR_PNP_FREERESDES , api_PNP_FreeResDes } ,
{ " PNP_GETNEXTRESDES " , NDR_PNP_GETNEXTRESDES , api_PNP_GetNextResDes } ,
{ " PNP_GETRESDESDATA " , NDR_PNP_GETRESDESDATA , api_PNP_GetResDesData } ,
{ " PNP_GETRESDESDATASIZE " , NDR_PNP_GETRESDESDATASIZE , api_PNP_GetResDesDataSize } ,
{ " PNP_MODIFYRESDES " , NDR_PNP_MODIFYRESDES , api_PNP_ModifyResDes } ,
{ " PNP_DETECTRESOURCELIMIT " , NDR_PNP_DETECTRESOURCELIMIT , api_PNP_DetectResourceLimit } ,
{ " PNP_QUERYRESCONFLIST " , NDR_PNP_QUERYRESCONFLIST , api_PNP_QueryResConfList } ,
{ " PNP_SETHWPROF " , NDR_PNP_SETHWPROF , api_PNP_SetHwProf } ,
{ " PNP_QUERYARBITRATORFREEDATA " , NDR_PNP_QUERYARBITRATORFREEDATA , api_PNP_QueryArbitratorFreeData } ,
{ " PNP_QUERYARBITRATORFREESIZE " , NDR_PNP_QUERYARBITRATORFREESIZE , api_PNP_QueryArbitratorFreeSize } ,
{ " PNP_RUNDETECTION " , NDR_PNP_RUNDETECTION , api_PNP_RunDetection } ,
{ " PNP_REGISTERNOTIFICATION " , NDR_PNP_REGISTERNOTIFICATION , api_PNP_RegisterNotification } ,
{ " PNP_UNREGISTERNOTIFICATION " , NDR_PNP_UNREGISTERNOTIFICATION , api_PNP_UnregisterNotification } ,
{ " PNP_GETCUSTOMDEVPROP " , NDR_PNP_GETCUSTOMDEVPROP , api_PNP_GetCustomDevProp } ,
{ " PNP_GETVERSIONINTERNAL " , NDR_PNP_GETVERSIONINTERNAL , api_PNP_GetVersionInternal } ,
{ " PNP_GETBLOCKEDDRIVERINFO " , NDR_PNP_GETBLOCKEDDRIVERINFO , api_PNP_GetBlockedDriverInfo } ,
{ " PNP_GETSERVERSIDEDEVICEINSTALLFLAGS " , NDR_PNP_GETSERVERSIDEDEVICEINSTALLFLAGS , api_PNP_GetServerSideDeviceInstallFlags } ,
} ;
void ntsvcs_get_pipe_fns ( struct api_struct * * fns , int * n_fns )
{
* fns = api_ntsvcs_cmds ;
* n_fns = sizeof ( api_ntsvcs_cmds ) / sizeof ( struct api_struct ) ;
}
NTSTATUS rpc_ntsvcs_init ( void )
{
2008-07-13 01:17:23 +04:00
return rpc_pipe_register_commands ( SMB_RPC_INTERFACE_VERSION , " ntsvcs " , " ntsvcs " , & ndr_table_ntsvcs . syntax_id , api_ntsvcs_cmds , sizeof ( api_ntsvcs_cmds ) / sizeof ( struct api_struct ) ) ;
2008-02-17 22:25:05 +03:00
}