2008-02-17 22:25:05 +03:00
/*
* Unix SMB / CIFS implementation .
* server auto - generated by pidl . DO NOT MODIFY !
*/
# include "includes.h"
2008-12-16 18:32:18 +03:00
# include "../librpc/gen_ndr/srv_ntsvcs.h"
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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-10-19 02:26:16 +04:00
ZERO_STRUCT ( r - > out ) ;
2008-11-20 00:00:43 +03:00
r - > out . length = r - > in . length ;
2008-10-19 02:26:16 +04:00
r - > out . buffer = talloc_zero_array ( r , uint16_t , * r - > out . length ) ;
if ( r - > out . buffer = = NULL ) {
talloc_free ( r ) ;
return false ;
}
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
2008-10-19 02:26:16 +04:00
r - > out . reg_data_type = r - > in . reg_data_type ;
2008-11-20 00:00:43 +03:00
r - > out . buffer_size = r - > in . buffer_size ;
r - > out . needed = r - > in . needed ;
2008-03-26 13:35:44 +03:00
r - > out . buffer = talloc_zero_array ( r , uint8_t , * r - > out . buffer_size ) ;
if ( r - > out . buffer = = NULL ) {
talloc_free ( r ) ;
return false ;
}
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
2008-11-12 11:36:08 +03:00
r - > out . profile_flags = r - > in . profile_flags ;
r - > out . veto_type = r - > in . veto_type ;
2008-02-18 03:37:06 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2008-10-12 21:05:46 +04:00
push = ndr_push_init_ctx ( r , NULL ) ;
2008-02-17 22:25:05 +03:00
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 ) ;
}
2009-01-21 16:05:51 +03:00
NTSTATUS rpc_ntsvcs_dispatch ( struct rpc_pipe_client * cli , TALLOC_CTX * mem_ctx , const struct ndr_interface_table * table , uint32_t opnum , void * _r )
{
if ( cli - > pipes_struct = = NULL ) {
return NT_STATUS_INVALID_PARAMETER ;
}
switch ( opnum )
{
case NDR_PNP_DISCONNECT : {
2009-01-22 03:19:38 +03:00
struct PNP_Disconnect * r = ( struct PNP_Disconnect * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_Disconnect ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_CONNECT : {
2009-01-22 03:19:38 +03:00
struct PNP_Connect * r = ( struct PNP_Connect * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_Connect ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETVERSION : {
2009-01-22 03:19:38 +03:00
struct PNP_GetVersion * r = ( struct PNP_GetVersion * ) _r ;
2009-01-21 16:05:51 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . version = talloc_zero ( mem_ctx , uint16_t ) ;
if ( r - > out . version = = NULL ) {
return NT_STATUS_NO_MEMORY ;
}
r - > out . result = _PNP_GetVersion ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETGLOBALSTATE : {
2009-01-22 03:19:38 +03:00
struct PNP_GetGlobalState * r = ( struct PNP_GetGlobalState * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetGlobalState ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_INITDETECTION : {
2009-01-22 03:19:38 +03:00
struct PNP_InitDetection * r = ( struct PNP_InitDetection * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_InitDetection ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_REPORTLOGON : {
2009-01-22 03:19:38 +03:00
struct PNP_ReportLogOn * r = ( struct PNP_ReportLogOn * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_ReportLogOn ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_VALIDATEDEVICEINSTANCE : {
2009-01-22 03:19:38 +03:00
struct PNP_ValidateDeviceInstance * r = ( struct PNP_ValidateDeviceInstance * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_ValidateDeviceInstance ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETROOTDEVICEINSTANCE : {
2009-01-22 03:19:38 +03:00
struct PNP_GetRootDeviceInstance * r = ( struct PNP_GetRootDeviceInstance * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetRootDeviceInstance ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETRELATEDDEVICEINSTANCE : {
2009-01-22 03:19:38 +03:00
struct PNP_GetRelatedDeviceInstance * r = ( struct PNP_GetRelatedDeviceInstance * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetRelatedDeviceInstance ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_ENUMERATESUBKEYS : {
2009-01-22 03:19:38 +03:00
struct PNP_EnumerateSubKeys * r = ( struct PNP_EnumerateSubKeys * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_EnumerateSubKeys ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETDEVICELIST : {
2009-01-22 03:19:38 +03:00
struct PNP_GetDeviceList * r = ( struct PNP_GetDeviceList * ) _r ;
2009-01-21 16:05:51 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . length = r - > in . length ;
r - > out . buffer = talloc_zero_array ( mem_ctx , uint16_t , * r - > out . length ) ;
if ( r - > out . buffer = = NULL ) {
return NT_STATUS_NO_MEMORY ;
}
r - > out . result = _PNP_GetDeviceList ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETDEVICELISTSIZE : {
2009-01-22 03:19:38 +03:00
struct PNP_GetDeviceListSize * r = ( struct PNP_GetDeviceListSize * ) _r ;
2009-01-21 16:05:51 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . size = talloc_zero ( mem_ctx , uint32_t ) ;
if ( r - > out . size = = NULL ) {
return NT_STATUS_NO_MEMORY ;
}
r - > out . result = _PNP_GetDeviceListSize ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETDEPTH : {
2009-01-22 03:19:38 +03:00
struct PNP_GetDepth * r = ( struct PNP_GetDepth * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetDepth ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETDEVICEREGPROP : {
2009-01-22 03:19:38 +03:00
struct PNP_GetDeviceRegProp * r = ( struct PNP_GetDeviceRegProp * ) _r ;
2009-01-21 16:05:51 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . reg_data_type = r - > in . reg_data_type ;
r - > out . buffer_size = r - > in . buffer_size ;
r - > out . needed = r - > in . needed ;
r - > out . buffer = talloc_zero_array ( mem_ctx , uint8_t , * r - > out . buffer_size ) ;
if ( r - > out . buffer = = NULL ) {
return NT_STATUS_NO_MEMORY ;
}
r - > out . result = _PNP_GetDeviceRegProp ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_SETDEVICEREGPROP : {
2009-01-22 03:19:38 +03:00
struct PNP_SetDeviceRegProp * r = ( struct PNP_SetDeviceRegProp * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_SetDeviceRegProp ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETCLASSINSTANCE : {
2009-01-22 03:19:38 +03:00
struct PNP_GetClassInstance * r = ( struct PNP_GetClassInstance * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetClassInstance ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_CREATEKEY : {
2009-01-22 03:19:38 +03:00
struct PNP_CreateKey * r = ( struct PNP_CreateKey * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_CreateKey ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_DELETEREGISTRYKEY : {
2009-01-22 03:19:38 +03:00
struct PNP_DeleteRegistryKey * r = ( struct PNP_DeleteRegistryKey * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_DeleteRegistryKey ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETCLASSCOUNT : {
2009-01-22 03:19:38 +03:00
struct PNP_GetClassCount * r = ( struct PNP_GetClassCount * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetClassCount ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETCLASSNAME : {
2009-01-22 03:19:38 +03:00
struct PNP_GetClassName * r = ( struct PNP_GetClassName * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetClassName ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_DELETECLASSKEY : {
2009-01-22 03:19:38 +03:00
struct PNP_DeleteClassKey * r = ( struct PNP_DeleteClassKey * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_DeleteClassKey ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETINTERFACEDEVICEALIAS : {
2009-01-22 03:19:38 +03:00
struct PNP_GetInterfaceDeviceAlias * r = ( struct PNP_GetInterfaceDeviceAlias * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetInterfaceDeviceAlias ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETINTERFACEDEVICELIST : {
2009-01-22 03:19:38 +03:00
struct PNP_GetInterfaceDeviceList * r = ( struct PNP_GetInterfaceDeviceList * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetInterfaceDeviceList ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETINTERFACEDEVICELISTSIZE : {
2009-01-22 03:19:38 +03:00
struct PNP_GetInterfaceDeviceListSize * r = ( struct PNP_GetInterfaceDeviceListSize * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetInterfaceDeviceListSize ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_REGISTERDEVICECLASSASSOCIATION : {
2009-01-22 03:19:38 +03:00
struct PNP_RegisterDeviceClassAssociation * r = ( struct PNP_RegisterDeviceClassAssociation * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_RegisterDeviceClassAssociation ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_UNREGISTERDEVICECLASSASSOCIATION : {
2009-01-22 03:19:38 +03:00
struct PNP_UnregisterDeviceClassAssociation * r = ( struct PNP_UnregisterDeviceClassAssociation * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_UnregisterDeviceClassAssociation ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETCLASSREGPROP : {
2009-01-22 03:19:38 +03:00
struct PNP_GetClassRegProp * r = ( struct PNP_GetClassRegProp * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetClassRegProp ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_SETCLASSREGPROP : {
2009-01-22 03:19:38 +03:00
struct PNP_SetClassRegProp * r = ( struct PNP_SetClassRegProp * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_SetClassRegProp ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_CREATEDEVINST : {
2009-01-22 03:19:38 +03:00
struct PNP_CreateDevInst * r = ( struct PNP_CreateDevInst * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_CreateDevInst ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_DEVICEINSTANCEACTION : {
2009-01-22 03:19:38 +03:00
struct PNP_DeviceInstanceAction * r = ( struct PNP_DeviceInstanceAction * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_DeviceInstanceAction ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETDEVICESTATUS : {
2009-01-22 03:19:38 +03:00
struct PNP_GetDeviceStatus * r = ( struct PNP_GetDeviceStatus * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetDeviceStatus ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_SETDEVICEPROBLEM : {
2009-01-22 03:19:38 +03:00
struct PNP_SetDeviceProblem * r = ( struct PNP_SetDeviceProblem * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_SetDeviceProblem ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_DISABLEDEVINST : {
2009-01-22 03:19:38 +03:00
struct PNP_DisableDevInst * r = ( struct PNP_DisableDevInst * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_DisableDevInst ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_UNINSTALLDEVINST : {
2009-01-22 03:19:38 +03:00
struct PNP_UninstallDevInst * r = ( struct PNP_UninstallDevInst * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_UninstallDevInst ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_ADDID : {
2009-01-22 03:19:38 +03:00
struct PNP_AddID * r = ( struct PNP_AddID * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_AddID ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_REGISTERDRIVER : {
2009-01-22 03:19:38 +03:00
struct PNP_RegisterDriver * r = ( struct PNP_RegisterDriver * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_RegisterDriver ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_QUERYREMOVE : {
2009-01-22 03:19:38 +03:00
struct PNP_QueryRemove * r = ( struct PNP_QueryRemove * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_QueryRemove ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_REQUESTDEVICEEJECT : {
2009-01-22 03:19:38 +03:00
struct PNP_RequestDeviceEject * r = ( struct PNP_RequestDeviceEject * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_RequestDeviceEject ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_ISDOCKSTATIONPRESENT : {
2009-01-22 03:19:38 +03:00
struct PNP_IsDockStationPresent * r = ( struct PNP_IsDockStationPresent * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_IsDockStationPresent ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_REQUESTEJECTPC : {
2009-01-22 03:19:38 +03:00
struct PNP_RequestEjectPC * r = ( struct PNP_RequestEjectPC * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_RequestEjectPC ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_HWPROFFLAGS : {
2009-01-22 03:19:38 +03:00
struct PNP_HwProfFlags * r = ( struct PNP_HwProfFlags * ) _r ;
2009-01-21 16:05:51 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . profile_flags = r - > in . profile_flags ;
r - > out . veto_type = r - > in . veto_type ;
r - > out . unknown5a = talloc_zero ( mem_ctx , const char * ) ;
if ( r - > out . unknown5a = = NULL ) {
return NT_STATUS_NO_MEMORY ;
}
r - > out . result = _PNP_HwProfFlags ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETHWPROFINFO : {
2009-01-22 03:19:38 +03:00
struct PNP_GetHwProfInfo * r = ( struct PNP_GetHwProfInfo * ) _r ;
2009-01-21 16:05:51 +03:00
ZERO_STRUCT ( r - > out ) ;
r - > out . info = r - > in . info ;
r - > out . result = _PNP_GetHwProfInfo ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_ADDEMPTYLOGCONF : {
2009-01-22 03:19:38 +03:00
struct PNP_AddEmptyLogConf * r = ( struct PNP_AddEmptyLogConf * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_AddEmptyLogConf ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_FREELOGCONF : {
2009-01-22 03:19:38 +03:00
struct PNP_FreeLogConf * r = ( struct PNP_FreeLogConf * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_FreeLogConf ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETFIRSTLOGCONF : {
2009-01-22 03:19:38 +03:00
struct PNP_GetFirstLogConf * r = ( struct PNP_GetFirstLogConf * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetFirstLogConf ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETNEXTLOGCONF : {
2009-01-22 03:19:38 +03:00
struct PNP_GetNextLogConf * r = ( struct PNP_GetNextLogConf * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetNextLogConf ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETLOGCONFPRIORITY : {
2009-01-22 03:19:38 +03:00
struct PNP_GetLogConfPriority * r = ( struct PNP_GetLogConfPriority * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetLogConfPriority ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_ADDRESDES : {
2009-01-22 03:19:38 +03:00
struct PNP_AddResDes * r = ( struct PNP_AddResDes * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_AddResDes ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_FREERESDES : {
2009-01-22 03:19:38 +03:00
struct PNP_FreeResDes * r = ( struct PNP_FreeResDes * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_FreeResDes ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETNEXTRESDES : {
2009-01-22 03:19:38 +03:00
struct PNP_GetNextResDes * r = ( struct PNP_GetNextResDes * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetNextResDes ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETRESDESDATA : {
2009-01-22 03:19:38 +03:00
struct PNP_GetResDesData * r = ( struct PNP_GetResDesData * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetResDesData ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETRESDESDATASIZE : {
2009-01-22 03:19:38 +03:00
struct PNP_GetResDesDataSize * r = ( struct PNP_GetResDesDataSize * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetResDesDataSize ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_MODIFYRESDES : {
2009-01-22 03:19:38 +03:00
struct PNP_ModifyResDes * r = ( struct PNP_ModifyResDes * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_ModifyResDes ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_DETECTRESOURCELIMIT : {
2009-01-22 03:19:38 +03:00
struct PNP_DetectResourceLimit * r = ( struct PNP_DetectResourceLimit * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_DetectResourceLimit ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_QUERYRESCONFLIST : {
2009-01-22 03:19:38 +03:00
struct PNP_QueryResConfList * r = ( struct PNP_QueryResConfList * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_QueryResConfList ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_SETHWPROF : {
2009-01-22 03:19:38 +03:00
struct PNP_SetHwProf * r = ( struct PNP_SetHwProf * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_SetHwProf ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_QUERYARBITRATORFREEDATA : {
2009-01-22 03:19:38 +03:00
struct PNP_QueryArbitratorFreeData * r = ( struct PNP_QueryArbitratorFreeData * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_QueryArbitratorFreeData ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_QUERYARBITRATORFREESIZE : {
2009-01-22 03:19:38 +03:00
struct PNP_QueryArbitratorFreeSize * r = ( struct PNP_QueryArbitratorFreeSize * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_QueryArbitratorFreeSize ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_RUNDETECTION : {
2009-01-22 03:19:38 +03:00
struct PNP_RunDetection * r = ( struct PNP_RunDetection * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_RunDetection ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_REGISTERNOTIFICATION : {
2009-01-22 03:19:38 +03:00
struct PNP_RegisterNotification * r = ( struct PNP_RegisterNotification * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_RegisterNotification ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_UNREGISTERNOTIFICATION : {
2009-01-22 03:19:38 +03:00
struct PNP_UnregisterNotification * r = ( struct PNP_UnregisterNotification * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_UnregisterNotification ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETCUSTOMDEVPROP : {
2009-01-22 03:19:38 +03:00
struct PNP_GetCustomDevProp * r = ( struct PNP_GetCustomDevProp * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetCustomDevProp ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETVERSIONINTERNAL : {
2009-01-22 03:19:38 +03:00
struct PNP_GetVersionInternal * r = ( struct PNP_GetVersionInternal * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetVersionInternal ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETBLOCKEDDRIVERINFO : {
2009-01-22 03:19:38 +03:00
struct PNP_GetBlockedDriverInfo * r = ( struct PNP_GetBlockedDriverInfo * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetBlockedDriverInfo ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
case NDR_PNP_GETSERVERSIDEDEVICEINSTALLFLAGS : {
2009-01-22 03:19:38 +03:00
struct PNP_GetServerSideDeviceInstallFlags * r = ( struct PNP_GetServerSideDeviceInstallFlags * ) _r ;
2009-01-21 16:05:51 +03:00
r - > out . result = _PNP_GetServerSideDeviceInstallFlags ( cli - > pipes_struct , r ) ;
return NT_STATUS_OK ;
}
default :
return NT_STATUS_NOT_IMPLEMENTED ;
}
}
2008-02-17 22:25:05 +03:00
NTSTATUS rpc_ntsvcs_init ( void )
{
2009-01-07 01:29:25 +03:00
return rpc_srv_register ( SMB_RPC_INTERFACE_VERSION , " ntsvcs " , " ntsvcs " , & ndr_table_ntsvcs , api_ntsvcs_cmds , sizeof ( api_ntsvcs_cmds ) / sizeof ( struct api_struct ) ) ;
2008-02-17 22:25:05 +03:00
}