mirror of
https://github.com/samba-team/samba.git
synced 2024-12-31 17:18:04 +03:00
21e6b1531b
servers. Previously the server pipe code needed to return the RPC
level status (nearly always "OK") and separately set the function call
return using r->out.result. All the programmers writing servers
(metze, jelmer and me) were often getting this wrong, by doing things
like "return NT_STATUS_NO_MEMORY" which was really quite meaningless
as there is no code like that at the dcerpc level.
I have now modified pidl to generate the necessary boilerplate so that
just returning the status you want from the function will work. So for
a NTSTATUS function you return NT_STATUS_XXX and from a WERROR
function you return WERR_XXX. If you really want to generate a DCERPC
level fault rather than just a return value in your function then you
should use the DCESRV_FAULT() macro which will correctly generate a
fault for you.
As a side effect, this also adds automatic type checking of all of our
server side rpc functions, which was impossible with the old API. When
I changed the API I found and fixed quite a few functions with the
wrong type information, so this is definately useful.
I have also changed the server side template generation to generate a
DCERPC "operation range error" by default when you have not yet filled
in a server side function. This allows us to correctly implement
functions in any order in our rpc pipe servers and give the client the
right information about the fault.
(This used to be commit a4df5c7cf8
)
1250 lines
29 KiB
Plaintext
1250 lines
29 KiB
Plaintext
#include "idl_types.h"
|
|
|
|
/*
|
|
srvsvc interface definitions
|
|
*/
|
|
|
|
[ uuid(4b324fc8-1670-01d3-1278-5a47bf6ee188),
|
|
version(3.0),
|
|
pointer_default(unique)
|
|
] interface srvsvc
|
|
{
|
|
/**************************/
|
|
/* srvsvc_NetCharDev */
|
|
/**************************/
|
|
typedef struct {
|
|
unistr *device;
|
|
} srvsvc_NetCharDevInfo0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetCharDevInfo0 *array;
|
|
} srvsvc_NetCharDevCtr0;
|
|
|
|
typedef struct {
|
|
unistr *device;
|
|
uint32 status;
|
|
unistr *user;
|
|
uint32 time;
|
|
} srvsvc_NetCharDevInfo1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetCharDevInfo1 *array;
|
|
} srvsvc_NetCharDevCtr1;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetCharDevInfo0 *info0;
|
|
[case(1)] srvsvc_NetCharDevInfo1 *info1;
|
|
[default] ;
|
|
} srvsvc_NetCharDevInfo;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetCharDevCtr0 *ctr0;
|
|
[case(1)] srvsvc_NetCharDevCtr1 *ctr1;
|
|
[default] ;
|
|
} srvsvc_NetCharDevCtr;
|
|
|
|
/******************/
|
|
/* Function: 0x00 */
|
|
WERROR srvsvc_NetCharDevEnum(
|
|
[in] unistr *server_unc,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetCharDevCtr ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x01 */
|
|
WERROR srvsvc_NetCharDevGetInfo(
|
|
[in] unistr *server_unc,
|
|
[in] unistr device_name,
|
|
[in] uint32 level,
|
|
[out,switch_is(level)] srvsvc_NetCharDevInfo info
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x02 */
|
|
WERROR srvsvc_NetCharDevControl(
|
|
[in] unistr *server_unc,
|
|
[in] unistr device_name,
|
|
[in] uint32 opcode
|
|
);
|
|
|
|
/**************************/
|
|
/* srvsvc_NetCharDevQ */
|
|
/**************************/
|
|
typedef struct {
|
|
unistr *device;
|
|
} srvsvc_NetCharDevQInfo0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetCharDevQInfo0 *array;
|
|
} srvsvc_NetCharDevQCtr0;
|
|
|
|
typedef struct {
|
|
unistr *device;
|
|
uint32 priority;
|
|
unistr *devices;
|
|
uint32 users;
|
|
uint32 num_ahead;
|
|
} srvsvc_NetCharDevQInfo1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetCharDevQInfo1 *array;
|
|
} srvsvc_NetCharDevQCtr1;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetCharDevQInfo0 *info0;
|
|
[case(1)] srvsvc_NetCharDevQInfo1 *info1;
|
|
[default] ;
|
|
} srvsvc_NetCharDevQInfo;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetCharDevQCtr0 *ctr0;
|
|
[case(1)] srvsvc_NetCharDevQCtr1 *ctr1;
|
|
[default] ;
|
|
} srvsvc_NetCharDevQCtr;
|
|
|
|
/******************/
|
|
/* Function: 0x03 */
|
|
WERROR srvsvc_NetCharDevQEnum(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *user,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetCharDevQCtr ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x04 */
|
|
WERROR srvsvc_NetCharDevQGetInfo(
|
|
[in] unistr *server_unc,
|
|
[in] unistr queue_name,
|
|
[in] unistr user,
|
|
[in] uint32 level,
|
|
[out,switch_is(level)] srvsvc_NetCharDevQInfo info
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x05 */
|
|
WERROR srvsvc_NetCharDevQSetInfo(
|
|
[in] unistr *server_unc,
|
|
[in] unistr queue_name,
|
|
[in] uint32 level,
|
|
[in,switch_is(level)] srvsvc_NetCharDevQInfo info,
|
|
[in,out] uint32 *parm_error
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x06 */
|
|
WERROR srvsvc_NetCharDevQPurge(
|
|
[in] unistr *server_unc,
|
|
[in] unistr queue_name
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x07 */
|
|
WERROR srvsvc_NetCharDevQPurgeSelf(
|
|
[in] unistr *server_unc,
|
|
[in] unistr queue_name,
|
|
[in] unistr computer_name
|
|
);
|
|
|
|
/**************************/
|
|
/* srvsvc_NetConn */
|
|
/**************************/
|
|
typedef struct {
|
|
uint32 conn_id;
|
|
} srvsvc_NetConnInfo0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetConnInfo0 *array;
|
|
} srvsvc_NetConnCtr0;
|
|
|
|
typedef struct {
|
|
uint32 conn_id;
|
|
uint32 conn_type;
|
|
uint32 num_open;
|
|
uint32 num_users;
|
|
uint32 conn_time;
|
|
unistr *user;
|
|
unistr *client;
|
|
} srvsvc_NetConnInfo1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetConnInfo1 *array;
|
|
} srvsvc_NetConnCtr1;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetConnCtr0 *ctr0;
|
|
[case(1)] srvsvc_NetConnCtr1 *ctr1;
|
|
[default] ;
|
|
} srvsvc_NetConnCtr;
|
|
|
|
/******************/
|
|
/* Function: 0x08 */
|
|
WERROR srvsvc_NetConnEnum(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *path,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetConnCtr ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/**************************/
|
|
/* srvsvc_NetFile */
|
|
/**************************/
|
|
typedef struct {
|
|
uint32 fid;
|
|
} srvsvc_NetFileInfo2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetFileInfo2 *array;
|
|
} srvsvc_NetFileCtr2;
|
|
|
|
typedef struct {
|
|
uint32 fid;
|
|
uint32 permissions;
|
|
uint32 num_locks;
|
|
unistr *path;
|
|
unistr *user;
|
|
} srvsvc_NetFileInfo3;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetFileInfo3 *array;
|
|
} srvsvc_NetFileCtr3;
|
|
|
|
typedef union {
|
|
[case(2)] srvsvc_NetFileInfo2 *info2;
|
|
[case(3)] srvsvc_NetFileInfo3 *info3;
|
|
[default] ;
|
|
} srvsvc_NetFileInfo;
|
|
|
|
typedef union {
|
|
[case(2)] srvsvc_NetFileCtr2 *ctr2;
|
|
[case(3)] srvsvc_NetFileCtr3 *ctr3;
|
|
[default] ;
|
|
} srvsvc_NetFileCtr;
|
|
|
|
/******************/
|
|
/* Function: 0x09 */
|
|
WERROR srvsvc_NetFileEnum(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *path,
|
|
[in] unistr *user,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetFileCtr ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0a */
|
|
WERROR srvsvc_NetFileGetInfo(
|
|
[in] unistr *server_unc,
|
|
[in] uint32 fid,
|
|
[in] uint32 level,
|
|
[out,switch_is(level)] srvsvc_NetFileInfo info
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0b */
|
|
WERROR srvsvc_NetFileClose(
|
|
[in] unistr *server_unc,
|
|
[in] uint32 fid
|
|
);
|
|
|
|
/**************************/
|
|
/* srvsvc_NetSess */
|
|
/**************************/
|
|
typedef struct {
|
|
unistr *client;
|
|
} srvsvc_NetSessInfo0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSessInfo0 *array;
|
|
} srvsvc_NetSessCtr0;
|
|
|
|
typedef struct {
|
|
unistr *client;
|
|
unistr *user;
|
|
uint32 num_open;
|
|
uint32 time;
|
|
uint32 idle_time;
|
|
uint32 user_flags;
|
|
} srvsvc_NetSessInfo1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSessInfo1 *array;
|
|
} srvsvc_NetSessCtr1;
|
|
|
|
typedef struct {
|
|
unistr *client;
|
|
unistr *user;
|
|
uint32 num_open;
|
|
uint32 time;
|
|
uint32 idle_time;
|
|
uint32 user_flags;
|
|
unistr *client_type;
|
|
} srvsvc_NetSessInfo2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSessInfo2 *array;
|
|
} srvsvc_NetSessCtr2;
|
|
|
|
typedef struct {
|
|
unistr *client;
|
|
unistr *user;
|
|
uint32 time;
|
|
uint32 idle_time;
|
|
} srvsvc_NetSessInfo10;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSessInfo10 *array;
|
|
} srvsvc_NetSessCtr10;
|
|
|
|
typedef struct {
|
|
unistr *client;
|
|
unistr *user;
|
|
uint32 num_open;
|
|
uint32 time;
|
|
uint32 idle_time;
|
|
uint32 user_flags;
|
|
unistr *client_type;
|
|
unistr *transport;
|
|
} srvsvc_NetSessInfo502;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSessInfo502 *array;
|
|
} srvsvc_NetSessCtr502;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetSessCtr0 *ctr0;
|
|
[case(1)] srvsvc_NetSessCtr1 *ctr1;
|
|
[case(2)] srvsvc_NetSessCtr2 *ctr2;
|
|
[case(10)] srvsvc_NetSessCtr10 *ctr10;
|
|
[case(502)] srvsvc_NetSessCtr502 *ctr502;
|
|
[default] ;
|
|
} srvsvc_NetSessCtr;
|
|
|
|
/******************/
|
|
/* Function: 0x0c */
|
|
WERROR srvsvc_NetSessEnum(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *client,
|
|
[in] unistr *user,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetSessCtr ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0d */
|
|
WERROR srvsvc_NetSessDel(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *client,
|
|
[in] unistr *user
|
|
);
|
|
|
|
/**************************/
|
|
/* srvsvc_NetShare */
|
|
/**************************/
|
|
|
|
/* share types */
|
|
const int STYPE_DISKTREE = 0;
|
|
const int STYPE_PRINTQ = 1;
|
|
const int STYPE_DEVICE = 2; /* Serial device */
|
|
const int STYPE_IPC = 3; /* Interprocess communication (IPC) */
|
|
const int STYPE_HIDDEN = 0x80000000; /* share is a hidden one */
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
} srvsvc_NetShareInfo0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShareInfo0 *array;
|
|
} srvsvc_NetShareCtr0;
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
uint32 type;
|
|
unistr *comment;
|
|
} srvsvc_NetShareInfo1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShareInfo1 *array;
|
|
} srvsvc_NetShareCtr1;
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
uint32 type;
|
|
unistr *comment;
|
|
uint32 permissions;
|
|
uint32 max_users;
|
|
uint32 current_users;
|
|
unistr *path;
|
|
unistr *password;
|
|
} srvsvc_NetShareInfo2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShareInfo2 *array;
|
|
} srvsvc_NetShareCtr2;
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
uint32 type;
|
|
unistr *comment;
|
|
uint32 csc_policy;
|
|
} srvsvc_NetShareInfo501;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShareInfo501 *array;
|
|
} srvsvc_NetShareCtr501;
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
uint32 type;
|
|
unistr *comment;
|
|
uint32 permissions;
|
|
uint32 max_users;
|
|
uint32 current_users;
|
|
unistr *path;
|
|
unistr *password;
|
|
uint32 unknown;
|
|
[subcontext(4)] security_descriptor *sd;
|
|
} srvsvc_NetShareInfo502;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShareInfo502 *array;
|
|
} srvsvc_NetShareCtr502;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetShareInfo0 *info0;
|
|
[case(1)] srvsvc_NetShareInfo1 *info1;
|
|
[case(2)] srvsvc_NetShareInfo2 *info2;
|
|
[case(501)] srvsvc_NetShareInfo501 *info501;
|
|
[case(502)] srvsvc_NetShareInfo502 *info502;
|
|
[default] ;
|
|
} srvsvc_NetShareInfo;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetShareCtr0 *ctr0;
|
|
[case(1)] srvsvc_NetShareCtr1 *ctr1;
|
|
[case(2)] srvsvc_NetShareCtr2 *ctr2;
|
|
[case(501)] srvsvc_NetShareCtr501 *ctr501;
|
|
[case(502)] srvsvc_NetShareCtr502 *ctr502;
|
|
[default] ;
|
|
} srvsvc_NetShareCtr;
|
|
|
|
/******************/
|
|
/* Function: 0x0e */
|
|
WERROR srvsvc_NetShareAdd(
|
|
[in] unistr *server_unc,
|
|
[in] uint32 level,
|
|
[in,switch_is(level)] srvsvc_NetShareInfo info,
|
|
[in,out] uint32 *parm_error
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0f */
|
|
WERROR srvsvc_NetShareEnumAll (
|
|
[in] unistr *server_unc,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetShareCtr ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x10 */
|
|
WERROR srvsvc_NetShareGetInfo(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *share_name,
|
|
[in] uint32 level,
|
|
[out,switch_is(level)] srvsvc_NetShareInfo info
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x11 */
|
|
WERROR srvsvc_NetShareSetInfo(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *share_name,
|
|
[in] uint32 level,
|
|
[in,switch_is(level)] srvsvc_NetShareInfo info,
|
|
[in,out] uint32 *parm_error
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x12 */
|
|
WERROR srvsvc_NetShareDel(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *share_name,
|
|
[in] uint32 reserved
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x13 */
|
|
WERROR srvsvc_NetShareDelSticky(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *share_name,
|
|
[in] uint32 reserved
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x14 */
|
|
WERROR srvsvc_NetShareCheck(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *share_name,
|
|
[out] uint32 type
|
|
);
|
|
|
|
/**************************/
|
|
/* srvsvc_NetSrv */
|
|
/**************************/
|
|
typedef struct {
|
|
uint32 platform_id;
|
|
unistr *server_unc;
|
|
} srvsvc_NetSrvInfo100;
|
|
|
|
typedef struct {
|
|
uint32 platform_id;
|
|
unistr *server_unc;
|
|
uint32 ver_major;
|
|
uint32 ver_minor;
|
|
uint32 type;
|
|
unistr *comment;
|
|
} srvsvc_NetSrvInfo101;
|
|
|
|
typedef struct {
|
|
uint32 platform_id;
|
|
unistr *server_unc;
|
|
uint32 ver_major;
|
|
uint32 ver_minor;
|
|
uint32 type;
|
|
unistr *comment;
|
|
uint32 users;
|
|
uint32 disc;
|
|
uint32 hidden;
|
|
uint32 announce;
|
|
uint32 anndelta;
|
|
uint32 licences;
|
|
unistr *userpath;
|
|
} srvsvc_NetSrvInfo102;
|
|
|
|
typedef struct {
|
|
uint32 ulist_mtime;
|
|
uint32 glist_mtime;
|
|
uint32 alist_mtime;
|
|
unistr *alerts;
|
|
uint32 security;
|
|
uint32 numadmin;
|
|
uint32 lanmask;
|
|
unistr *guestaccount;
|
|
uint32 chdevs;
|
|
uint32 chdevqs;
|
|
uint32 chdevjobs;
|
|
uint32 connections;
|
|
uint32 shares;
|
|
uint32 openfiles;
|
|
uint32 sessopen;
|
|
uint32 sesssvc;
|
|
uint32 sessreqs;
|
|
uint32 opensearch;
|
|
uint32 activelocks;
|
|
uint32 sizereqbufs;
|
|
uint32 numbigbufs;
|
|
uint32 numfiletasks;
|
|
uint32 alertsched;
|
|
uint32 eroralert;
|
|
uint32 logonalert;
|
|
uint32 accessalert;
|
|
uint32 diskalert;
|
|
uint32 netioalert;
|
|
uint32 maxaudits;
|
|
unistr *srvheuristics;
|
|
} srvsvc_NetSrvInfo402;
|
|
|
|
typedef struct {
|
|
uint32 ulist_mtime;
|
|
uint32 glist_mtime;
|
|
uint32 alist_mtime;
|
|
unistr *alerts;
|
|
uint32 security;
|
|
uint32 numadmin;
|
|
uint32 lanmask;
|
|
unistr *guestaccount;
|
|
uint32 chdevs;
|
|
uint32 chdevqs;
|
|
uint32 chdevjobs;
|
|
uint32 connections;
|
|
uint32 shares;
|
|
uint32 openfiles;
|
|
uint32 sessopen;
|
|
uint32 sesssvc;
|
|
uint32 sessreqs;
|
|
uint32 opensearch;
|
|
uint32 activelocks;
|
|
uint32 sizereqbufs;
|
|
uint32 numbigbufs;
|
|
uint32 numfiletasks;
|
|
uint32 alertsched;
|
|
uint32 eroralert;
|
|
uint32 logonalert;
|
|
uint32 accessalert;
|
|
uint32 diskalert;
|
|
uint32 netioalert;
|
|
uint32 maxaudits;
|
|
unistr *srvheuristics;
|
|
uint32 auditedevents;
|
|
uint32 auditprofile;
|
|
unistr *autopath;
|
|
} srvsvc_NetSrvInfo403;
|
|
|
|
typedef struct {
|
|
uint32 sessopen;
|
|
uint32 sesssvc;
|
|
uint32 opensearch;
|
|
uint32 sizereqbufs;
|
|
uint32 initworkitems;
|
|
uint32 maxworkitems;
|
|
uint32 rawworkitems;
|
|
uint32 irpstacksize;
|
|
uint32 maxrawbuflen;
|
|
uint32 sessusers;
|
|
uint32 sessconns;
|
|
uint32 maxpagedmemoryusage;
|
|
uint32 maxnonpagedmemoryusage;
|
|
uint32 enablesoftcompat;
|
|
uint32 enableforcedlogoff;
|
|
uint32 timesource;
|
|
uint32 acceptdownlevelapis;
|
|
uint32 lmannounce;
|
|
} srvsvc_NetSrvInfo502;
|
|
|
|
typedef struct{
|
|
uint32 sessopen;
|
|
uint32 sesssvc;
|
|
uint32 opensearch;
|
|
uint32 sizereqbufs;
|
|
uint32 initworkitems;
|
|
uint32 maxworkitems;
|
|
uint32 rawworkitems;
|
|
uint32 irpstacksize;
|
|
uint32 maxrawbuflen;
|
|
uint32 sessusers;
|
|
uint32 sessconns;
|
|
uint32 maxpagedmemoryusage;
|
|
uint32 maxnonpagedmemoryusage;
|
|
uint32 enablesoftcompat;
|
|
uint32 enableforcedlogoff;
|
|
uint32 timesource;
|
|
uint32 acceptdownlevelapis;
|
|
uint32 lmannounce;
|
|
unistr *domain;
|
|
uint32 maxcopyreadlen;
|
|
uint32 maxcopywritelen;
|
|
uint32 minkeepsearch;
|
|
uint32 maxkeepsearch;
|
|
uint32 minkeepcomplsearch;
|
|
uint32 maxkeepcomplsearch;
|
|
uint32 threadcountadd;
|
|
uint32 numlockthreads;
|
|
uint32 scavtimeout;
|
|
uint32 minrcvqueue;
|
|
uint32 minfreeworkitems;
|
|
uint32 xactmemsize;
|
|
uint32 threadpriority;
|
|
uint32 maxmpxct;
|
|
uint32 oplockbreakwait;
|
|
uint32 oplockbreakresponsewait;
|
|
uint32 enableoplocks;
|
|
uint32 enableoplockforceclose;
|
|
uint32 enablefcbopens;
|
|
uint32 enableraw;
|
|
uint32 enablesharednetdrives;
|
|
uint32 minfreeconnections;
|
|
uint32 maxfreeconnections;
|
|
} srvsvc_NetSrvInfo503;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo599;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1005;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1010;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1016;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1017;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1018;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1107;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1501;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1502;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1503;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1506;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1509;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1510;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1511;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1512;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1513;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1514;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1515;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1516;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1518;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1520;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1521;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1522;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1523;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1524;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1525;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1528;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1529;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1530;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1533;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1534;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1535;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1536;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1537;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1538;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1539;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1540;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1541;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1542;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1543;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1544;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1545;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1546;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1547;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1548;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1549;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1550;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1552;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1553;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1554;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1555;
|
|
|
|
typedef struct{
|
|
uint32 dummy;
|
|
} srvsvc_NetSrvInfo1556;
|
|
|
|
|
|
typedef union{
|
|
[case(100)] srvsvc_NetSrvInfo100 *info100;
|
|
[case(101)] srvsvc_NetSrvInfo101 *info101;
|
|
[case(102)] srvsvc_NetSrvInfo102 *info102;
|
|
[case(402)] srvsvc_NetSrvInfo402 *info402;
|
|
[case(403)] srvsvc_NetSrvInfo403 *info403;
|
|
[case(502)] srvsvc_NetSrvInfo502 *info502;
|
|
[case(503)] srvsvc_NetSrvInfo503 *info503;
|
|
[case(599)] srvsvc_NetSrvInfo599 *info599;
|
|
[case(1005)] srvsvc_NetSrvInfo1005 *info1005;
|
|
[case(1010)] srvsvc_NetSrvInfo1010 *info1010;
|
|
[case(1016)] srvsvc_NetSrvInfo1016 *info1016;
|
|
[case(1017)] srvsvc_NetSrvInfo1017 *info1017;
|
|
[case(1018)] srvsvc_NetSrvInfo1018 *info1018;
|
|
[case(1107)] srvsvc_NetSrvInfo1107 *info1107;
|
|
[case(1501)] srvsvc_NetSrvInfo1501 *info1501;
|
|
[case(1502)] srvsvc_NetSrvInfo1502 *info1502;
|
|
[case(1503)] srvsvc_NetSrvInfo1503 *info1503;
|
|
[case(1506)] srvsvc_NetSrvInfo1506 *info1506;
|
|
[case(1509)] srvsvc_NetSrvInfo1509 *info1509;
|
|
[case(1510)] srvsvc_NetSrvInfo1510 *info1510;
|
|
[case(1511)] srvsvc_NetSrvInfo1511 *info1511;
|
|
[case(1512)] srvsvc_NetSrvInfo1512 *info1512;
|
|
[case(1513)] srvsvc_NetSrvInfo1513 *info1513;
|
|
[case(1514)] srvsvc_NetSrvInfo1514 *info1514;
|
|
[case(1515)] srvsvc_NetSrvInfo1515 *info1515;
|
|
[case(1516)] srvsvc_NetSrvInfo1516 *info1516;
|
|
[case(1518)] srvsvc_NetSrvInfo1518 *info1518;
|
|
[case(1520)] srvsvc_NetSrvInfo1520 *info1520;
|
|
[case(1521)] srvsvc_NetSrvInfo1521 *info1521;
|
|
[case(1522)] srvsvc_NetSrvInfo1522 *info1522;
|
|
[case(1523)] srvsvc_NetSrvInfo1523 *info1523;
|
|
[case(1524)] srvsvc_NetSrvInfo1524 *info1524;
|
|
[case(1525)] srvsvc_NetSrvInfo1525 *info1525;
|
|
[case(1528)] srvsvc_NetSrvInfo1528 *info1528;
|
|
[case(1529)] srvsvc_NetSrvInfo1529 *info1529;
|
|
[case(1530)] srvsvc_NetSrvInfo1530 *info1530;
|
|
[case(1533)] srvsvc_NetSrvInfo1533 *info1533;
|
|
[case(1534)] srvsvc_NetSrvInfo1534 *info1534;
|
|
[case(1535)] srvsvc_NetSrvInfo1535 *info1535;
|
|
[case(1536)] srvsvc_NetSrvInfo1536 *info1536;
|
|
[case(1537)] srvsvc_NetSrvInfo1537 *info1537;
|
|
[case(1538)] srvsvc_NetSrvInfo1538 *info1538;
|
|
[case(1539)] srvsvc_NetSrvInfo1539 *info1539;
|
|
[case(1540)] srvsvc_NetSrvInfo1540 *info1540;
|
|
[case(1541)] srvsvc_NetSrvInfo1541 *info1541;
|
|
[case(1542)] srvsvc_NetSrvInfo1542 *info1542;
|
|
[case(1543)] srvsvc_NetSrvInfo1543 *info1543;
|
|
[case(1544)] srvsvc_NetSrvInfo1544 *info1544;
|
|
[case(1545)] srvsvc_NetSrvInfo1545 *info1545;
|
|
[case(1546)] srvsvc_NetSrvInfo1546 *info1546;
|
|
[case(1547)] srvsvc_NetSrvInfo1547 *info1547;
|
|
[case(1548)] srvsvc_NetSrvInfo1548 *info1548;
|
|
[case(1549)] srvsvc_NetSrvInfo1549 *info1549;
|
|
[case(1550)] srvsvc_NetSrvInfo1550 *info1550;
|
|
[case(1552)] srvsvc_NetSrvInfo1552 *info1552;
|
|
[case(1553)] srvsvc_NetSrvInfo1553 *info1553;
|
|
[case(1554)] srvsvc_NetSrvInfo1554 *info1554;
|
|
[case(1555)] srvsvc_NetSrvInfo1555 *info1555;
|
|
[case(1556)] srvsvc_NetSrvInfo1556 *info1556;
|
|
[default];
|
|
} srvsvc_NetSrvInfo;
|
|
|
|
/******************/
|
|
/* Function: 0x15 */
|
|
WERROR srvsvc_NetSrvGetInfo(
|
|
[in] unistr *server_unc,
|
|
[in] uint32 level,
|
|
[out,switch_is(level)] srvsvc_NetSrvInfo info
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x16 */
|
|
WERROR srvsvc_NetSrvSetInfo(
|
|
[in] unistr *server_unc,
|
|
[in] uint32 level,
|
|
[in,switch_is(level)] srvsvc_NetSrvInfo info,
|
|
[in,out] uint32 *parm_error
|
|
);
|
|
|
|
/**************************/
|
|
/* srvsvc_NetDisk */
|
|
/**************************/
|
|
typedef struct {
|
|
uint32 unknown;
|
|
lstring disk;
|
|
uint16 unknown2;
|
|
} srvsvc_NetDiskInfo0;
|
|
|
|
typedef struct {
|
|
uint32 unknown;
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetDiskInfo0 array[];
|
|
} srvsvc_NetDiskCtr0;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetDiskCtr0 *ctr0;
|
|
} srvsvc_NetDiskCtr;
|
|
|
|
/******************/
|
|
/* Function: 0x17 */
|
|
WERROR srvsvc_NetDiskEnum(
|
|
[in] unistr *server_unc,
|
|
[in] uint32 level,
|
|
[out] uint32 count,
|
|
[in,switch_is(level)] srvsvc_NetDiskCtr ctr,
|
|
[out] srvsvc_NetDiskCtr0 *ctr0,
|
|
[in] uint32 unknown,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x18 */
|
|
WERROR srvsvc_NETRSERVERSTATISTICSGET(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x19 */
|
|
WERROR srvsvc_NETRSERVERTRANSPORTADD(
|
|
);
|
|
|
|
/**************************/
|
|
/* srvsvc_NetTransport */
|
|
/**************************/
|
|
typedef struct {
|
|
uint32 count;
|
|
uint8 addr[count];
|
|
} srvsvc_NetTransportAddress;
|
|
|
|
typedef struct {
|
|
uint32 vcs;
|
|
unistr *name;
|
|
srvsvc_NetTransportAddress *addr;
|
|
uint32 addr_len;
|
|
unistr *net_addr;
|
|
} srvsvc_NetTransportInfo0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetTransportInfo0 *array;
|
|
} srvsvc_NetTransportCtr0;
|
|
|
|
typedef struct {
|
|
uint32 vcs;
|
|
unistr *name;
|
|
srvsvc_NetTransportAddress *addr;
|
|
uint32 addr_len;
|
|
unistr *net_addr;
|
|
unistr *domain;
|
|
} srvsvc_NetTransportInfo1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetTransportInfo1 *array;
|
|
} srvsvc_NetTransportCtr1;
|
|
|
|
typedef struct {
|
|
uint32 dummy;
|
|
} srvsvc_NetTransportInfo2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetTransportInfo2 *array;
|
|
} srvsvc_NetTransportCtr2;
|
|
|
|
typedef struct {
|
|
uint32 dummy;
|
|
} srvsvc_NetTransportInfo3;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetTransportInfo3 *array;
|
|
} srvsvc_NetTransportCtr3;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetTransportInfo0 *info0;
|
|
[case(1)] srvsvc_NetTransportInfo1 *info1;
|
|
[case(2)] srvsvc_NetTransportInfo2 *info2;
|
|
[case(3)] srvsvc_NetTransportInfo3 *info3;
|
|
[default];
|
|
} srvsvc_NetTransportInfo;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetTransportCtr0 *ctr0;
|
|
[case(1)] srvsvc_NetTransportCtr1 *ctr1;
|
|
[case(2)] srvsvc_NetTransportCtr2 *ctr2;
|
|
[case(3)] srvsvc_NetTransportCtr3 *ctr3;
|
|
[default];
|
|
} srvsvc_NetTransportCtr;
|
|
|
|
/******************/
|
|
/* Function: 0x1a */
|
|
WERROR srvsvc_NetTransportEnum(
|
|
[in] unistr *server_unc,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetTransportCtr ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1b */
|
|
WERROR srvsvc_NETRSERVERTRANSPORTDEL(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1c */
|
|
WERROR srvsvc_NET_REMOTE_TOD(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1d */
|
|
WERROR srvsvc_NETRSERVERSETSERVICEBITS(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1e */
|
|
WERROR srvsvc_NETRPRPATHTYPE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1f */
|
|
WERROR srvsvc_NETRPRPATHCANONICALIZE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x20 */
|
|
WERROR srvsvc_NETRPRPATHCOMPARE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x21 */
|
|
WERROR srvsvc_NET_NAME_VALIDATE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x22 */
|
|
WERROR srvsvc_NETRPRNAMECANONICALIZE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x23 */
|
|
WERROR srvsvc_NETRPRNAMECOMPARE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x24 */
|
|
/* Note, there must be some way to return entries read vs
|
|
total entries ... */
|
|
WERROR srvsvc_NetShareEnum(
|
|
[in] unistr *server_unc,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetShareCtr ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x25 */
|
|
WERROR srvsvc_NETRSHAREDELSTART(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x26 */
|
|
WERROR srvsvc_NETRSHAREDELCOMMIT(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x27 */
|
|
WERROR srvsvc_NET_FILE_QUERY_SECDESC(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x28 */
|
|
WERROR srvsvc_NET_FILE_SET_SECDESC(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x29 */
|
|
WERROR srvsvc_NETRSERVERTRANSPORTADDEX(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x2a */
|
|
WERROR srvsvc_NETRSERVERSETSERVICEBITSEX(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x2b */
|
|
WERROR srvsvc_NETRDFSGETVERSION(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x2c */
|
|
WERROR srvsvc_NETRDFSCREATELOCALPARTITION(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x2d */
|
|
WERROR srvsvc_NETRDFSDELETELOCALPARTITION(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x2e */
|
|
WERROR srvsvc_NETRDFSSETLOCALVOLUMESTATE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x2f */
|
|
WERROR srvsvc_NETRDFSSETSERVERINFO(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x30 */
|
|
WERROR srvsvc_NETRDFSCREATEEXITPOINT(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x31 */
|
|
WERROR srvsvc_NETRDFSDELETEEXITPOINT(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x32 */
|
|
WERROR srvsvc_NETRDFSMODIFYPREFIX(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x33 */
|
|
WERROR srvsvc_NETRDFSFIXLOCALVOLUME(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x34 */
|
|
WERROR srvsvc_NETRDFSMANAGERREPORTSITEINFO(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x35 */
|
|
WERROR srvsvc_NETRSERVERTRANSPORTDELEX(
|
|
);
|
|
}
|