1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 7 * Source: $(DRUNTIMESRC core/sys/windows/_lmshare.d) 8 */ 9 /// Automatically imported and edited from the druntime module 10 /// core.sys.windows.lmshare for the auto-generated win32 package. 11 module win32.lmshare; 12 //version (Windows): 13 @system: 14 version (Win32_UseLib) pragma(lib, "netapi32"); 15 16 import win32.lmcons; 17 import win32.w32api, win32.windef; 18 19 20 enum SHARE_NETNAME_PARMNUM = 1; 21 enum SHARE_TYPE_PARMNUM = 3; 22 enum SHARE_REMARK_PARMNUM = 4; 23 enum SHARE_PERMISSIONS_PARMNUM = 5; 24 enum SHARE_MAX_USES_PARMNUM = 6; 25 enum SHARE_CURRENT_USES_PARMNUM = 7; 26 enum SHARE_PATH_PARMNUM = 8; 27 enum SHARE_PASSWD_PARMNUM = 9; 28 enum SHARE_FILE_SD_PARMNUM = 501; 29 enum SHARE_REMARK_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM; 30 enum SHARE_MAX_USES_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM; 31 enum SHARE_FILE_SD_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM; 32 33 enum SHI1_NUM_ELEMENTS = 4; 34 enum SHI2_NUM_ELEMENTS = 10; 35 36 enum STYPE_DISKTREE = 0; 37 enum STYPE_PRINTQ = 1; 38 enum STYPE_DEVICE = 2; 39 enum STYPE_IPC = 3; 40 enum STYPE_DFS = 100; 41 enum STYPE_SPECIAL = 0x80000000; 42 43 enum DWORD SHI_USES_UNLIMITED = -1; 44 45 enum SESS_GUEST = 1; 46 enum SESS_NOENCRYPTION = 2; 47 enum SESI1_NUM_ELEMENTS = 8; 48 enum SESI2_NUM_ELEMENTS = 9; 49 50 enum PERM_FILE_READ = 1; 51 enum PERM_FILE_WRITE = 2; 52 enum PERM_FILE_CREATE = 4; 53 54 struct FILE_INFO_2 { 55 DWORD fi2_id; 56 } 57 alias FILE_INFO_2* PFILE_INFO_2, LPFILE_INFO_2; 58 59 struct FILE_INFO_3 { 60 DWORD fi3_id; 61 DWORD fi3_permissions; 62 DWORD fi3_num_locks; 63 LPTSTR fi3_pathname; 64 LPTSTR fi3_username; 65 } 66 alias FILE_INFO_3* PFILE_INFO_3, LPFILE_INFO_3; 67 68 struct SHARE_INFO_0 { 69 LPTSTR shi0_netname; 70 } 71 alias SHARE_INFO_0* PSHARE_INFO_0, LPSHARE_INFO_0; 72 73 struct SHARE_INFO_1 { 74 LPTSTR shi1_netname; 75 DWORD shi1_type; 76 LPTSTR shi1_remark; 77 } 78 alias SHARE_INFO_1* PSHARE_INFO_1, LPSHARE_INFO_1; 79 80 struct SHARE_INFO_2 { 81 LPTSTR shi2_netname; 82 DWORD shi2_type; 83 LPTSTR shi2_remark; 84 DWORD shi2_permissions; 85 DWORD shi2_max_uses; 86 DWORD shi2_current_uses; 87 LPTSTR shi2_path; 88 LPTSTR shi2_passwd; 89 } 90 alias SHARE_INFO_2* PSHARE_INFO_2, LPSHARE_INFO_2; 91 92 struct SHARE_INFO_502 { 93 LPTSTR shi502_netname; 94 DWORD shi502_type; 95 LPTSTR shi502_remark; 96 DWORD shi502_permissions; 97 DWORD shi502_max_uses; 98 DWORD shi502_current_uses; 99 LPTSTR shi502_path; 100 LPTSTR shi502_passwd; 101 DWORD shi502_reserved; 102 PSECURITY_DESCRIPTOR shi502_security_descriptor; 103 } 104 alias SHARE_INFO_502* PSHARE_INFO_502, LPSHARE_INFO_502; 105 106 struct SHARE_INFO_1004 { 107 LPTSTR shi1004_remark; 108 } 109 alias SHARE_INFO_1004* PSHARE_INFO_1004, LPSHARE_INFO_1004; 110 111 struct SHARE_INFO_1006 { 112 DWORD shi1006_max_uses; 113 } 114 alias SHARE_INFO_1006* PSHARE_INFO_1006, LPSHARE_INFO_1006; 115 116 struct SHARE_INFO_1501 { 117 DWORD shi1501_reserved; 118 PSECURITY_DESCRIPTOR shi1501_security_descriptor; 119 } 120 alias SHARE_INFO_1501* PSHARE_INFO_1501, LPSHARE_INFO_1501; 121 122 struct SESSION_INFO_0 { 123 LPWSTR sesi0_cname; 124 } 125 alias SESSION_INFO_0* PSESSION_INFO_0, LPSESSION_INFO_0; 126 127 struct SESSION_INFO_1 { 128 LPTSTR sesi1_cname; 129 LPTSTR sesi1_username; 130 DWORD sesi1_num_opens; 131 DWORD sesi1_time; 132 DWORD sesi1_idle_time; 133 DWORD sesi1_user_flags; 134 } 135 alias SESSION_INFO_1* PSESSION_INFO_1, LPSESSION_INFO_1; 136 137 struct SESSION_INFO_2 { 138 LPTSTR sesi2_cname; 139 LPTSTR sesi2_username; 140 DWORD sesi2_num_opens; 141 DWORD sesi2_time; 142 DWORD sesi2_idle_time; 143 DWORD sesi2_user_flags; 144 LPWSTR sesi2_cltype_name; 145 } 146 alias SESSION_INFO_2* PSESSION_INFO_2, LPSESSION_INFO_2; 147 148 struct SESSION_INFO_10 { 149 LPWSTR sesi10_cname; 150 LPWSTR sesi10_username; 151 DWORD sesi10_time; 152 DWORD sesi10_idle_time; 153 } 154 alias SESSION_INFO_10* PSESSION_INFO_10, LPSESSION_INFO_10; 155 156 struct SESSION_INFO_502 { 157 LPWSTR sesi502_cname; 158 LPWSTR sesi502_username; 159 DWORD sesi502_num_opens; 160 DWORD sesi502_time; 161 DWORD sesi502_idle_time; 162 DWORD sesi502_user_flags; 163 LPWSTR sesi502_cltype_name; 164 LPWSTR sesi502_transport; 165 } 166 alias SESSION_INFO_502* PSESSION_INFO_502, LPSESSION_INFO_502; 167 168 struct CONNECTION_INFO_0 { 169 DWORD coni0_id; 170 } 171 alias CONNECTION_INFO_0* PCONNECTION_INFO_0, LPCONNECTION_INFO_0; 172 173 struct CONNECTION_INFO_1 { 174 DWORD coni1_id; 175 DWORD coni1_type; 176 DWORD coni1_num_opens; 177 DWORD coni1_num_users; 178 DWORD coni1_time; 179 LPWSTR coni1_username; 180 LPWSTR coni1_netname; 181 } 182 alias CONNECTION_INFO_1* PCONNECTION_INFO_1, LPCONNECTION_INFO_1; 183 184 extern (Windows) { 185 NET_API_STATUS NetShareAdd(LPWSTR,DWORD,PBYTE,PDWORD); 186 NET_API_STATUS NetShareEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); 187 NET_API_STATUS NetShareEnumSticky(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD resume_handle); 188 NET_API_STATUS NetShareGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*); 189 NET_API_STATUS NetShareSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD); 190 NET_API_STATUS NetShareDel(LPWSTR,LPWSTR,DWORD); 191 NET_API_STATUS NetShareDelSticky(LPWSTR,LPWSTR,DWORD); 192 NET_API_STATUS NetShareCheck(LPWSTR,LPWSTR,PDWORD); 193 NET_API_STATUS NetSessionEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); 194 NET_API_STATUS NetSessionDel(LPWSTR,LPWSTR,LPWSTR); 195 NET_API_STATUS NetSessionGetInfo(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*); 196 NET_API_STATUS NetConnectionEnum(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); 197 NET_API_STATUS NetFileClose(LPWSTR,DWORD); 198 NET_API_STATUS NetFileEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); 199 NET_API_STATUS NetFileGetInfo(LPWSTR,DWORD,DWORD,PBYTE*); 200 }