📄 srvsvc.idl
字号:
#include "idl_types.h"/* srvsvc interface definitions*/import "security.idl", "svcctl.idl";[ uuid("4b324fc8-1670-01d3-1278-5a47bf6ee188"), version(3.0), endpoint("ncacn_np:[\\pipe\\srvsvc]", "ncacn_ip_tcp:", "ncalrpc:"), pointer_default(unique), helpstring("Server Service")] interface srvsvc{ typedef bitmap svcctl_ServerType svcctl_ServerType; typedef bitmap security_secinfo security_secinfo;/**************************//* srvsvc_NetCharDev *//**************************/ typedef struct { [string,charset(UTF16)] uint16 *device; } srvsvc_NetCharDevInfo0; typedef struct { uint32 count; [size_is(count)] srvsvc_NetCharDevInfo0 *array; } srvsvc_NetCharDevCtr0; typedef struct { [string,charset(UTF16)] uint16 *device; uint32 status; [string,charset(UTF16)] uint16 *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,unique] [string,charset(UTF16)] uint16 *server_unc, [in,out] uint32 level, [in,out,switch_is(level)] srvsvc_NetCharDevCtr ctr, [in] uint32 max_buffer, [out] uint32 totalentries, [in,out,unique] uint32 *resume_handle ); /******************/ /* Function: 0x01 */ WERROR srvsvc_NetCharDevGetInfo( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in] [string,charset(UTF16)] uint16 device_name[], [in] uint32 level, [out,switch_is(level)] srvsvc_NetCharDevInfo info ); /******************/ /* Function: 0x02 */ WERROR srvsvc_NetCharDevControl( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in] [string,charset(UTF16)] uint16 device_name[], [in] uint32 opcode );/**************************//* srvsvc_NetCharDevQ *//**************************/ typedef struct { [string,charset(UTF16)] uint16 *device; } srvsvc_NetCharDevQInfo0; typedef struct { uint32 count; [size_is(count)] srvsvc_NetCharDevQInfo0 *array; } srvsvc_NetCharDevQCtr0; typedef struct { [string,charset(UTF16)] uint16 *device; uint32 priority; [string,charset(UTF16)] uint16 *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,unique] [string,charset(UTF16)] uint16 *server_unc, [in,unique] [string,charset(UTF16)] uint16 *user, [in,out] uint32 level, [in,out,switch_is(level)] srvsvc_NetCharDevQCtr ctr, [in] uint32 max_buffer, [out] uint32 totalentries, [in,out,unique] uint32 *resume_handle ); /******************/ /* Function: 0x04 */ WERROR srvsvc_NetCharDevQGetInfo( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in] [string,charset(UTF16)] uint16 queue_name[], [in] [string,charset(UTF16)] uint16 user[], [in] uint32 level, [out,switch_is(level)] srvsvc_NetCharDevQInfo info ); /******************/ /* Function: 0x05 */ WERROR srvsvc_NetCharDevQSetInfo( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in] [string,charset(UTF16)] uint16 queue_name[], [in] uint32 level, [in,switch_is(level)] srvsvc_NetCharDevQInfo info, [in,out,unique] uint32 *parm_error ); /******************/ /* Function: 0x06 */ WERROR srvsvc_NetCharDevQPurge( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in] [string,charset(UTF16)] uint16 queue_name[] ); /******************/ /* Function: 0x07 */ WERROR srvsvc_NetCharDevQPurgeSelf( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in] [string,charset(UTF16)] uint16 queue_name[], [in] [string,charset(UTF16)] uint16 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; [string,charset(UTF16)] uint16 *user; [string,charset(UTF16)] uint16 *share; } 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,unique] [string,charset(UTF16)] uint16 *server_unc, [in,unique] [string,charset(UTF16)] uint16 *path, [in,out] uint32 level, [in,out,switch_is(level)] srvsvc_NetConnCtr ctr, [in] uint32 max_buffer, [out] uint32 totalentries, [in,out,unique] 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; [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *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,unique] [string,charset(UTF16)] uint16 *server_unc, [in,unique] [string,charset(UTF16)] uint16 *path, [in,unique] [string,charset(UTF16)] uint16 *user, [in,out] uint32 level, [in,out,switch_is(level)] srvsvc_NetFileCtr ctr, [in] uint32 max_buffer, [out] uint32 totalentries, [in,out,unique] uint32 *resume_handle ); /******************/ /* Function: 0x0a */ WERROR srvsvc_NetFileGetInfo( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in] uint32 fid, [in] uint32 level, [out,switch_is(level)] srvsvc_NetFileInfo info ); /******************/ /* Function: 0x0b */ WERROR srvsvc_NetFileClose( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in] uint32 fid );/**************************//* srvsvc_NetSess *//**************************/ typedef struct { [string,charset(UTF16)] uint16 *client; } srvsvc_NetSessInfo0; typedef struct { uint32 count; [size_is(count)] srvsvc_NetSessInfo0 *array; } srvsvc_NetSessCtr0; typedef struct { [string,charset(UTF16)] uint16 *client; [string,charset(UTF16)] uint16 *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 { [string,charset(UTF16)] uint16 *client; [string,charset(UTF16)] uint16 *user; uint32 num_open; uint32 time; uint32 idle_time; uint32 user_flags; [string,charset(UTF16)] uint16 *client_type; } srvsvc_NetSessInfo2; typedef struct { uint32 count; [size_is(count)] srvsvc_NetSessInfo2 *array; } srvsvc_NetSessCtr2; typedef struct { [string,charset(UTF16)] uint16 *client; [string,charset(UTF16)] uint16 *user; uint32 time; uint32 idle_time; } srvsvc_NetSessInfo10; typedef struct { uint32 count; [size_is(count)] srvsvc_NetSessInfo10 *array; } srvsvc_NetSessCtr10; typedef struct { [string,charset(UTF16)] uint16 *client; [string,charset(UTF16)] uint16 *user; uint32 num_open; uint32 time; uint32 idle_time; uint32 user_flags; [string,charset(UTF16)] uint16 *client_type; [string,charset(UTF16)] uint16 *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,unique] [string,charset(UTF16)] uint16 *server_unc, [in,unique] [string,charset(UTF16)] uint16 *client, [in,unique] [string,charset(UTF16)] uint16 *user, [in,out] uint32 level, [in,out,switch_is(level)] srvsvc_NetSessCtr ctr, [in] uint32 max_buffer, [out] uint32 totalentries, [in,out,unique] uint32 *resume_handle ); /******************/ /* Function: 0x0d */ WERROR srvsvc_NetSessDel( [in,unique] [string,charset(UTF16)] uint16 *server_unc, [in,unique] [string,charset(UTF16)] uint16 *client, [in,unique] [string,charset(UTF16)] uint16 *user );/**************************//* srvsvc_NetShare *//**************************/ /* share types */ const uint32 STYPE_TEMPORARY = 0x40000000; /* share is a temporary one */ const uint32 STYPE_HIDDEN = 0x80000000; /* share is a hidden one */ typedef [v1_enum, flag(NDR_PAHEX)] enum { STYPE_DISKTREE = 0, STYPE_DISKTREE_TEMPORARY = STYPE_DISKTREE|STYPE_TEMPORARY, STYPE_DISKTREE_HIDDEN = STYPE_DISKTREE|STYPE_HIDDEN, STYPE_PRINTQ = 1, STYPE_PRINTQ_TEMPORARY = STYPE_PRINTQ|STYPE_TEMPORARY, STYPE_PRINTQ_HIDDEN = STYPE_PRINTQ|STYPE_HIDDEN, STYPE_DEVICE = 2, /* Serial device */ STYPE_DEVICE_TEMPORARY = STYPE_DEVICE|STYPE_TEMPORARY, STYPE_DEVICE_HIDDEN = STYPE_DEVICE|STYPE_HIDDEN, STYPE_IPC = 3, /* Interprocess communication (IPC) */ STYPE_IPC_TEMPORARY = STYPE_IPC|STYPE_TEMPORARY, STYPE_IPC_HIDDEN = STYPE_IPC|STYPE_HIDDEN } srvsvc_ShareType; typedef struct { [string,charset(UTF16)] uint16 *name; } srvsvc_NetShareInfo0; typedef struct { [string,charset(UTF16)] uint16 *name; srvsvc_ShareType type; [string,charset(UTF16)] uint16 *comment; } srvsvc_NetShareInfo1; typedef struct { [string,charset(UTF16)] uint16 *name; srvsvc_ShareType type; [string,charset(UTF16)] uint16 *comment; uint32 permissions; uint32 max_users; uint32 current_users; [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *password; } srvsvc_NetShareInfo2; typedef struct { [string,charset(UTF16)] uint16 *name; srvsvc_ShareType type; [string,charset(UTF16)] uint16 *comment; uint32 csc_policy; } srvsvc_NetShareInfo501; typedef struct { [string,charset(UTF16)] uint16 *name; srvsvc_ShareType type; [string,charset(UTF16)] uint16 *comment; uint32 permissions; int32 max_users; uint32 current_users; [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *password; /* maybe here is a struct sec_desc_buf following */ uint32 unknown; [subcontext(4)] security_descriptor *sd; } srvsvc_NetShareInfo502; typedef struct { [string,charset(UTF16)] uint16 *comment; } srvsvc_NetShareInfo1004; typedef struct { int32 max_users; } srvsvc_NetShareInfo1006; typedef bitmap { SHARE_1005_IN_DFS = 0x00000001, SHARE_1005_DFS_ROOT = 0x00000002 } NetShareInfo1005Flags; const uint32 SHARE_1005_CSC_POLICY_MASK = 0x00000030; const uint32 SHARE_1005_CSC_POLICY_SHIFT = 4; typedef struct { NetShareInfo1005Flags dfs_flags; } srvsvc_NetShareInfo1005; typedef struct { uint32 flags; [string,charset(UTF16)] uint16 *alternate_directory_name; } srvsvc_NetShareInfo1007; 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; [case(1004)] srvsvc_NetShareInfo1004 *info1004; [case(1005)] srvsvc_NetShareInfo1005 *info1005; [case(1006)] srvsvc_NetShareInfo1006 *info1006; [case(1007)] srvsvc_NetShareInfo1007 *info1007; [case(1501)] sec_desc_buf *info1501; [default] ; } srvsvc_NetShareInfo; typedef struct { uint32 count; [size_is(count)] srvsvc_NetShareInfo0 *array; } srvsvc_NetShareCtr0; typedef struct { uint32 count; [size_is(count)] srvsvc_NetShareInfo1 *array; } srvsvc_NetShareCtr1; typedef struct { uint32 count; [size_is(count)] srvsvc_NetShareInfo2 *array; } srvsvc_NetShareCtr2; typedef struct { uint32 count; [size_is(count)] srvsvc_NetShareInfo501 *array; } srvsvc_NetShareCtr501; typedef struct { uint32 count; [size_is(count)] srvsvc_NetShareInfo502 *array; } srvsvc_NetShareCtr502; typedef struct { uint32 count; [size_is(count)] srvsvc_NetShareInfo1004 *array;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -