mirror of
https://github.com/samba-team/samba.git
synced 2024-12-31 17:18:04 +03:00
a465add90f
interface. We now support an arbitrary set of flags to each parser,
and these can be used to control the string types. I have provided
some common IDL string types in librpc/idl/idl_types.h which needs to
be included in every IDL file.
* added IDL for the endpoint mapper. Added a test suite that enumerates
all endpoints on the server.
(This used to be commit d2665f36a7
)
586 lines
11 KiB
Plaintext
586 lines
11 KiB
Plaintext
#include "idl_types.h"
|
|
|
|
/*
|
|
srvsvc interface definitions
|
|
*/
|
|
|
|
[ uuid(4b324fc8-1670-01d3-1278-5a47bf6ee188),
|
|
version(3.0),
|
|
pointer_default(unique)
|
|
] interface srvsvc
|
|
{
|
|
/******************/
|
|
/* Function: 0x00 */
|
|
NTSTATUS srvsvc_00(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x01 */
|
|
NTSTATUS srvsvc_01(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x02 */
|
|
NTSTATUS srvsvc_02(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x03 */
|
|
NTSTATUS srvsvc_03(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x04 */
|
|
NTSTATUS srvsvc_04(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x05 */
|
|
NTSTATUS srvsvc_05(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x06 */
|
|
NTSTATUS srvsvc_06(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x07 */
|
|
NTSTATUS srvsvc_07(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x08 */
|
|
|
|
typedef struct {
|
|
uint32 conn_id;
|
|
} srvsvc_NetConn0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetConn0 *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_NetConn1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetConn1 *array;
|
|
} srvsvc_NetConnCtr1;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetConnCtr0 *ctr0;
|
|
[case(1)] srvsvc_NetConnCtr1 *ctr1;
|
|
[default] ;
|
|
} srvsvc_NetConnCtr;
|
|
|
|
WERROR srvsvc_NetConnEnum(
|
|
[in] unistr *server_unc,
|
|
[in] unistr *path,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetConnCtr ctr,
|
|
[in] uint32 preferred_len,
|
|
[out] uint32 total,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x09 */
|
|
|
|
typedef struct {
|
|
uint32 fid;
|
|
} srvsvc_NetFile2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetFile2 *array;
|
|
} srvsvc_NetFileCtr2;
|
|
|
|
typedef struct {
|
|
uint32 fid;
|
|
uint32 permissions;
|
|
uint32 num_locks;
|
|
unistr *path;
|
|
unistr *user;
|
|
} srvsvc_NetFile3;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetFile3 *array;
|
|
} srvsvc_NetFileCtr3;
|
|
|
|
typedef union {
|
|
[case(2)] srvsvc_NetFileCtr2 *ctr2;
|
|
[case(3)] srvsvc_NetFileCtr3 *ctr3;
|
|
[default] ;
|
|
} srvsvc_NetFileCtr;
|
|
|
|
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 preferred_len,
|
|
[out] uint32 total,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0a */
|
|
NTSTATUS srvsvc_0a(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0b */
|
|
NTSTATUS srvsvc_NET_FILE_CLOSE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0c */
|
|
|
|
typedef struct {
|
|
unistr *client;
|
|
} srvsvc_NetSess0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSess0 *array;
|
|
} srvsvc_NetSessCtr0;
|
|
|
|
typedef struct {
|
|
unistr *client;
|
|
unistr *user;
|
|
uint32 num_open;
|
|
uint32 time;
|
|
uint32 idle_time;
|
|
uint32 user_flags;
|
|
} srvsvc_NetSess1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSess1 *array;
|
|
} srvsvc_NetSessCtr1;
|
|
|
|
typedef struct {
|
|
unistr *client;
|
|
unistr *user;
|
|
uint32 num_open;
|
|
uint32 time;
|
|
uint32 idle_time;
|
|
uint32 user_flags;
|
|
unistr *client_type;
|
|
} srvsvc_NetSess2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSess2 *array;
|
|
} srvsvc_NetSessCtr2;
|
|
|
|
typedef struct {
|
|
unistr *client;
|
|
unistr *user;
|
|
uint32 time;
|
|
uint32 idle_time;
|
|
} srvsvc_NetSess10;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSess10 *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_NetSess502;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetSess502 *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;
|
|
|
|
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 preferred_len,
|
|
[out] uint32 total,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0d */
|
|
NTSTATUS srvsvc_0d(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0e */
|
|
NTSTATUS srvsvc_NET_SHARE_ADD(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x0f */
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
} srvsvc_NetShare0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShare0 *array;
|
|
} srvsvc_NetShareCtr0;
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
uint32 type;
|
|
unistr *comment;
|
|
} srvsvc_NetShare1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShare1 *array;
|
|
} srvsvc_NetShareCtr1;
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
uint32 type;
|
|
unistr *comment;
|
|
uint32 permissions;
|
|
uint32 max_users;
|
|
uint32 current_users;
|
|
unistr *path;
|
|
uint32 *password;
|
|
} srvsvc_NetShare2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShare2 *array;
|
|
} srvsvc_NetShareCtr2;
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
uint32 type;
|
|
unistr *comment;
|
|
uint32 csc_policy;
|
|
} srvsvc_NetShare501;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShare501 *array;
|
|
} srvsvc_NetShareCtr501;
|
|
|
|
typedef struct {
|
|
unistr *name;
|
|
uint32 type;
|
|
unistr *comment;
|
|
uint32 permissions;
|
|
uint32 max_users;
|
|
uint32 current_users;
|
|
unistr *path;
|
|
uint32 *password;
|
|
uint32 unknown;
|
|
[subcontext(4)] security_descriptor *sd;
|
|
} srvsvc_NetShare502;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetShare502 *array;
|
|
} srvsvc_NetShareCtr502;
|
|
|
|
typedef struct {
|
|
unistr *comment;
|
|
} srvsvc_NetShare1004;
|
|
|
|
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_NetShareUnion;
|
|
|
|
WERROR srvsvc_NetShareEnumAll (
|
|
[in] unistr *server_unc,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetShareUnion ctr,
|
|
[in] uint32 max_buffer,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x10 */
|
|
NTSTATUS srvsvc_NET_SHARE_GET_INFO(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x11 */
|
|
NTSTATUS srvsvc_NET_SHARE_SET_INFO(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x12 */
|
|
NTSTATUS srvsvc_NET_SHARE_DEL(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x13 */
|
|
NTSTATUS srvsvc_NET_SHARE_DEL_STICKY(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x14 */
|
|
NTSTATUS srvsvc_14(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x15 */
|
|
NTSTATUS srvsvc_NET_SRV_GET_INFO(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x16 */
|
|
NTSTATUS srvsvc_NET_SRV_SET_INFO(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x17 */
|
|
|
|
typedef struct {
|
|
uint32 unknown;
|
|
uint32 size;
|
|
[size_is(size)] uint8 *disk;
|
|
} srvsvc_NetDisk0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
uint32 unknown1;
|
|
uint32 unknown2;
|
|
[size_is(count)] srvsvc_NetDisk0 *array;
|
|
} srvsvc_NetDiskCtr0;
|
|
|
|
typedef struct {
|
|
uint32 dummy;
|
|
} srvsvc_NetDisk1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetDisk1 *array;
|
|
} srvsvc_NetDiskCtr1;
|
|
|
|
typedef struct {
|
|
uint32 dummy;
|
|
} srvsvc_NetDisk2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetDisk2 *array;
|
|
} srvsvc_NetDiskCtr2;
|
|
|
|
typedef struct {
|
|
uint32 dummy;
|
|
} srvsvc_NetDisk3;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetDisk3 *array;
|
|
} srvsvc_NetDiskCtr3;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetDiskCtr0 ctr0;
|
|
[case(1)] srvsvc_NetDiskCtr1 ctr1;
|
|
[case(2)] srvsvc_NetDiskCtr2 ctr2;
|
|
[case(3)] srvsvc_NetDiskCtr3 ctr3;
|
|
[default] ;
|
|
} srvsvc_NetDiskSubCtr;
|
|
|
|
typedef struct {
|
|
uint32 num1;
|
|
srvsvc_NetDiskCtr0 *ctr0;
|
|
} srvsvc_NetDiskCtr;
|
|
|
|
WERROR srvsvc_NetDiskEnum(
|
|
[in] unistr *server_unc,
|
|
[in] uint32 level,
|
|
[in] uint32 unknown1,
|
|
[in] uint32 unknown2,
|
|
[in] uint32 preferred_len,
|
|
[out] srvsvc_NetDiskCtr ctr,
|
|
[out] uint32 total,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x18 */
|
|
NTSTATUS srvsvc_18(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x19 */
|
|
NTSTATUS srvsvc_19(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1a */
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] uint8 *addr;
|
|
} srvsvc_TransportAddress;
|
|
|
|
typedef struct {
|
|
uint32 vcs;
|
|
unistr *name;
|
|
srvsvc_TransportAddress *addr;
|
|
uint32 addr_len;
|
|
unistr *net_addr;
|
|
} srvsvc_NetTransport0;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetTransport0 *array;
|
|
} srvsvc_NetTransportCtr0;
|
|
|
|
typedef struct {
|
|
uint32 vcs;
|
|
unistr *name;
|
|
srvsvc_TransportAddress *addr;
|
|
uint32 addr_len;
|
|
unistr *net_addr;
|
|
unistr *domain;
|
|
} srvsvc_NetTransport1;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetTransport1 *array;
|
|
} srvsvc_NetTransportCtr1;
|
|
|
|
typedef struct {
|
|
uint32 dummy;
|
|
} srvsvc_NetTransport2;
|
|
|
|
typedef struct {
|
|
uint32 count;
|
|
[size_is(count)] srvsvc_NetTransport2 *array;
|
|
} srvsvc_NetTransportCtr2;
|
|
|
|
typedef union {
|
|
[case(0)] srvsvc_NetTransportCtr0 *ctr0;
|
|
[case(1)] srvsvc_NetTransportCtr1 *ctr1;
|
|
[case(2)] srvsvc_NetTransportCtr2 *ctr2;
|
|
} srvsvc_NetTransportCtr;
|
|
|
|
WERROR srvsvc_NetTransportEnum(
|
|
[in] unistr *server_unc,
|
|
[in,out] uint32 level,
|
|
[in,out,switch_is(level)] srvsvc_NetTransportCtr ctr,
|
|
[in] uint32 preferred_len,
|
|
[out] uint32 total,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1b */
|
|
NTSTATUS srvsvc_1b(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1c */
|
|
NTSTATUS srvsvc_NET_REMOTE_TOD(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1d */
|
|
NTSTATUS srvsvc_1d(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1e */
|
|
NTSTATUS srvsvc_1e(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x1f */
|
|
NTSTATUS srvsvc_1f(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x20 */
|
|
NTSTATUS srvsvc_20(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x21 */
|
|
NTSTATUS srvsvc_NET_NAME_VALIDATE(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x22 */
|
|
NTSTATUS srvsvc_22(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x23 */
|
|
NTSTATUS srvsvc_23(
|
|
);
|
|
|
|
/******************/
|
|
/* 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_NetShareUnion ctr,
|
|
[in] uint32 preferred_len,
|
|
[out] uint32 totalentries,
|
|
[in,out] uint32 *resume_handle
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x25 */
|
|
NTSTATUS srvsvc_25(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x26 */
|
|
NTSTATUS srvsvc_26(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x27 */
|
|
NTSTATUS srvsvc_NET_FILE_QUERY_SECDESC(
|
|
);
|
|
|
|
/******************/
|
|
/* Function: 0x28 */
|
|
NTSTATUS srvsvc_NET_FILE_SET_SECDESC(
|
|
);
|
|
}
|