|
|
1.1 ! root 1: /*++ BUILD Version: 0001 // Increment this if a change has global effects ! 2: ! 3: Copyright (c) 1990-1993 Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: lmshare.h ! 8: ! 9: Abstract: ! 10: ! 11: This module defines the API function prototypes and data structures ! 12: for the following groups of NT API functions: ! 13: NetShare ! 14: NetSession ! 15: NetFile ! 16: NetConnection ! 17: ! 18: Author: ! 19: ! 20: Dan Lafferty (danl) 25-Jan-1991 ! 21: ! 22: Environment: ! 23: ! 24: User Mode - Win32 ! 25: ! 26: Notes: ! 27: ! 28: You must include <windef.h> and <lmcons.h> before this file. ! 29: ! 30: Revision History: ! 31: ! 32: 25-Jan-1991 Danl ! 33: Ported from LM2.0 ! 34: 14-Apr-1991 w-shanku ! 35: Changed parmnum values to be more consistent with OS/2 parmnums. ! 36: 19-Jul-1991 JohnRo ! 37: Added some OPTIONAL equates to NetConnectionEnum. ! 38: 20-Aug-1991 JohnRo ! 39: Added some OPTIONAL equates to NetFile APIs. ! 40: Changed LPSTR to LPTSTR. ! 41: 20-Nov-1991 JohnRo ! 42: Implement remote NetSession APIs. (Added OPTIONAL to NetSession APIs.) ! 43: Clarify that client name (arg to NetSession APIs) is a UNC computer ! 44: name, whereas the session info structures contain non-UNC names. ! 45: ! 46: --*/ ! 47: ! 48: // ! 49: // SHARE API ! 50: // ! 51: ! 52: #ifndef _LMSHARE_ ! 53: #define _LMSHARE_ ! 54: ! 55: #ifdef __cplusplus ! 56: extern "C" { ! 57: #endif ! 58: ! 59: // ! 60: // Function Prototypes - Share ! 61: // ! 62: ! 63: NET_API_STATUS NET_API_FUNCTION ! 64: NetShareAdd ( ! 65: IN LPTSTR servername, ! 66: IN DWORD level, ! 67: IN LPBYTE buf, ! 68: OUT LPDWORD parm_err ! 69: ); ! 70: ! 71: NET_API_STATUS NET_API_FUNCTION ! 72: NetShareEnum ( ! 73: IN LPTSTR servername, ! 74: IN DWORD level, ! 75: OUT LPBYTE *bufptr, ! 76: IN DWORD prefmaxlen, ! 77: OUT LPDWORD entriesread, ! 78: OUT LPDWORD totalentries, ! 79: IN OUT LPDWORD resume_handle ! 80: ); ! 81: ! 82: NET_API_STATUS NET_API_FUNCTION ! 83: NetShareEnumSticky ( ! 84: IN LPTSTR servername, ! 85: IN DWORD level, ! 86: OUT LPBYTE *bufptr, ! 87: IN DWORD prefmaxlen, ! 88: OUT LPDWORD entriesread, ! 89: OUT LPDWORD totalentries, ! 90: IN OUT LPDWORD resume_handle ! 91: ); ! 92: ! 93: NET_API_STATUS NET_API_FUNCTION ! 94: NetShareGetInfo ( ! 95: IN LPTSTR servername, ! 96: IN LPTSTR netname, ! 97: IN DWORD level, ! 98: OUT LPBYTE *bufptr ! 99: ); ! 100: ! 101: NET_API_STATUS NET_API_FUNCTION ! 102: NetShareSetInfo ( ! 103: IN LPTSTR servername, ! 104: IN LPTSTR netname, ! 105: IN DWORD level, ! 106: IN LPBYTE buf, ! 107: OUT LPDWORD parm_err ! 108: ); ! 109: ! 110: NET_API_STATUS NET_API_FUNCTION ! 111: NetShareDel ( ! 112: IN LPTSTR servername, ! 113: IN LPTSTR netname, ! 114: IN DWORD reserved ! 115: ); ! 116: ! 117: NET_API_STATUS NET_API_FUNCTION ! 118: NetShareDelSticky ( ! 119: IN LPTSTR servername, ! 120: IN LPTSTR netname, ! 121: IN DWORD reserved ! 122: ); ! 123: ! 124: NET_API_STATUS NET_API_FUNCTION ! 125: NetShareCheck ( ! 126: IN LPTSTR servername, ! 127: IN LPTSTR device, ! 128: OUT LPDWORD type ! 129: ); ! 130: ! 131: // ! 132: // Data Structures - Share ! 133: // ! 134: ! 135: typedef struct _SHARE_INFO_0 { ! 136: LPTSTR shi0_netname; ! 137: } SHARE_INFO_0, *PSHARE_INFO_0, *LPSHARE_INFO_0; ! 138: ! 139: typedef struct _SHARE_INFO_1 { ! 140: LPTSTR shi1_netname; ! 141: DWORD shi1_type; ! 142: LPTSTR shi1_remark; ! 143: } SHARE_INFO_1, *PSHARE_INFO_1, *LPSHARE_INFO_1; ! 144: ! 145: typedef struct _SHARE_INFO_2 { ! 146: LPTSTR shi2_netname; ! 147: DWORD shi2_type; ! 148: LPTSTR shi2_remark; ! 149: DWORD shi2_permissions; ! 150: DWORD shi2_max_uses; ! 151: DWORD shi2_current_uses; ! 152: LPTSTR shi2_path; ! 153: LPTSTR shi2_passwd; ! 154: } SHARE_INFO_2, *PSHARE_INFO_2, *LPSHARE_INFO_2; ! 155: ! 156: typedef struct _SHARE_INFO_502 { ! 157: LPTSTR shi502_netname; ! 158: DWORD shi502_type; ! 159: LPTSTR shi502_remark; ! 160: DWORD shi502_permissions; ! 161: DWORD shi502_max_uses; ! 162: DWORD shi502_current_uses; ! 163: LPTSTR shi502_path; ! 164: LPTSTR shi502_passwd; ! 165: DWORD shi502_reserved; ! 166: PSECURITY_DESCRIPTOR shi502_security_descriptor; ! 167: } SHARE_INFO_502, *PSHARE_INFO_502, *LPSHARE_INFO_502; ! 168: ! 169: typedef struct _SHARE_INFO_1004 { ! 170: LPTSTR shi1004_remark; ! 171: } SHARE_INFO_1004, *PSHARE_INFO_1004, *LPSHARE_INFO_1004; ! 172: ! 173: typedef struct _SHARE_INFO_1006 { ! 174: DWORD shi1006_max_uses; ! 175: } SHARE_INFO_1006, *PSHARE_INFO_1006, *LPSHARE_INFO_1006; ! 176: ! 177: typedef struct _SHARE_INFO_1501 { ! 178: DWORD shi1501_reserved; ! 179: PSECURITY_DESCRIPTOR shi1501_security_descriptor; ! 180: } SHARE_INFO_1501, *PSHARE_INFO_1501, *LPSHARE_INFO_1501; ! 181: ! 182: // ! 183: // Special Values and Constants - Share ! 184: // ! 185: ! 186: // ! 187: // Values for parm_err parameter. ! 188: // ! 189: ! 190: #define SHARE_NETNAME_PARMNUM 1 ! 191: #define SHARE_TYPE_PARMNUM 3 ! 192: #define SHARE_REMARK_PARMNUM 4 ! 193: #define SHARE_PERMISSIONS_PARMNUM 5 ! 194: #define SHARE_MAX_USES_PARMNUM 6 ! 195: #define SHARE_CURRENT_USES_PARMNUM 7 ! 196: #define SHARE_PATH_PARMNUM 8 ! 197: #define SHARE_PASSWD_PARMNUM 9 ! 198: #define SHARE_FILE_SD_PARMNUM 501 ! 199: ! 200: // ! 201: // Single-field infolevels for NetShareSetInfo. ! 202: // ! 203: ! 204: #define SHARE_REMARK_INFOLEVEL \ ! 205: (PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM) ! 206: #define SHARE_MAX_USES_INFOLEVEL \ ! 207: (PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM) ! 208: #define SHARE_FILE_SD_INFOLEVEL \ ! 209: (PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM) ! 210: ! 211: #define SHI1_NUM_ELEMENTS 4 ! 212: #define SHI2_NUM_ELEMENTS 10 ! 213: ! 214: ! 215: // ! 216: // Share types (shi1_type and shi2_type fields). ! 217: // ! 218: ! 219: #define STYPE_DISKTREE 0 ! 220: #define STYPE_PRINTQ 1 ! 221: #define STYPE_DEVICE 2 ! 222: #define STYPE_IPC 3 ! 223: ! 224: #define STYPE_SPECIAL 0x80000000 ! 225: ! 226: #define SHI_USES_UNLIMITED (DWORD)-1 ! 227: ! 228: #endif // _LMSHARE_ ! 229: ! 230: // ! 231: // SESSION API ! 232: // ! 233: ! 234: #ifndef _LMSESSION_ ! 235: #define _LMSESSION_ ! 236: ! 237: // ! 238: // Function Prototypes Session ! 239: // ! 240: ! 241: NET_API_STATUS NET_API_FUNCTION ! 242: NetSessionEnum ( ! 243: IN LPTSTR servername OPTIONAL, ! 244: IN LPTSTR UncClientName OPTIONAL, ! 245: IN LPTSTR username OPTIONAL, ! 246: IN DWORD level, ! 247: OUT LPBYTE *bufptr, ! 248: IN DWORD prefmaxlen, ! 249: OUT LPDWORD entriesread, ! 250: OUT LPDWORD totalentries, ! 251: IN OUT LPDWORD resume_handle OPTIONAL ! 252: ); ! 253: ! 254: NET_API_STATUS NET_API_FUNCTION ! 255: NetSessionDel ( ! 256: IN LPTSTR servername OPTIONAL, ! 257: IN LPTSTR UncClientName, ! 258: IN LPTSTR username ! 259: ); ! 260: ! 261: NET_API_STATUS NET_API_FUNCTION ! 262: NetSessionGetInfo ( ! 263: IN LPTSTR servername OPTIONAL, ! 264: IN LPTSTR UncClientName, ! 265: IN LPTSTR username, ! 266: IN DWORD level, ! 267: OUT LPBYTE *bufptr ! 268: ); ! 269: ! 270: ! 271: // ! 272: // Data Structures - Session ! 273: // ! 274: ! 275: typedef struct _SESSION_INFO_0 { ! 276: LPTSTR sesi0_cname; // client name (no backslashes) ! 277: } SESSION_INFO_0, *PSESSION_INFO_0, *LPSESSION_INFO_0; ! 278: ! 279: typedef struct _SESSION_INFO_1 { ! 280: LPTSTR sesi1_cname; // client name (no backslashes) ! 281: LPTSTR sesi1_username; ! 282: DWORD sesi1_num_opens; ! 283: DWORD sesi1_time; ! 284: DWORD sesi1_idle_time; ! 285: DWORD sesi1_user_flags; ! 286: } SESSION_INFO_1, *PSESSION_INFO_1, *LPSESSION_INFO_1; ! 287: ! 288: typedef struct _SESSION_INFO_2 { ! 289: LPTSTR sesi2_cname; // client name (no backslashes) ! 290: LPTSTR sesi2_username; ! 291: DWORD sesi2_num_opens; ! 292: DWORD sesi2_time; ! 293: DWORD sesi2_idle_time; ! 294: DWORD sesi2_user_flags; ! 295: LPTSTR sesi2_cltype_name; ! 296: } SESSION_INFO_2, *PSESSION_INFO_2, *LPSESSION_INFO_2; ! 297: ! 298: typedef struct _SESSION_INFO_10 { ! 299: LPTSTR sesi10_cname; // client name (no backslashes) ! 300: LPTSTR sesi10_username; ! 301: DWORD sesi10_time; ! 302: DWORD sesi10_idle_time; ! 303: } SESSION_INFO_10, *PSESSION_INFO_10, *LPSESSION_INFO_10; ! 304: ! 305: ! 306: // ! 307: // Special Values and Constants - Session ! 308: // ! 309: ! 310: ! 311: // ! 312: // Bits defined in sesi1_user_flags. ! 313: // ! 314: ! 315: #define SESS_GUEST 0x00000001 // session is logged on as a guest ! 316: #define SESS_NOENCRYPTION 0x00000002 // session is not using encryption ! 317: ! 318: #define SESI1_NUM_ELEMENTS 8 ! 319: #define SESI2_NUM_ELEMENTS 9 ! 320: ! 321: #endif // _LMSESSION_ ! 322: ! 323: // ! 324: // CONNECTION API ! 325: // ! 326: ! 327: #ifndef _LMCONNECTION_ ! 328: ! 329: #define _LMCONNECTION_ ! 330: ! 331: // ! 332: // Function Prototypes - CONNECTION ! 333: // ! 334: ! 335: NET_API_STATUS NET_API_FUNCTION ! 336: NetConnectionEnum ( ! 337: IN LPTSTR servername OPTIONAL, ! 338: IN LPTSTR qualifier, ! 339: IN DWORD level, ! 340: OUT LPBYTE *bufptr, ! 341: IN DWORD prefmaxlen, ! 342: OUT LPDWORD entriesread, ! 343: OUT LPDWORD totalentries, ! 344: IN OUT LPDWORD resume_handle OPTIONAL ! 345: ); ! 346: ! 347: // ! 348: // Data Structures - CONNECTION ! 349: // ! 350: ! 351: typedef struct _CONNECTION_INFO_0 { ! 352: DWORD coni0_id; ! 353: } CONNECTION_INFO_0, *PCONNECTION_INFO_0, *LPCONNECTION_INFO_0; ! 354: ! 355: typedef struct _CONNECTION_INFO_1 { ! 356: DWORD coni1_id; ! 357: DWORD coni1_type; ! 358: DWORD coni1_num_opens; ! 359: DWORD coni1_num_users; ! 360: DWORD coni1_time; ! 361: LPTSTR coni1_username; ! 362: LPTSTR coni1_netname; ! 363: } CONNECTION_INFO_1, *PCONNECTION_INFO_1, *LPCONNECTION_INFO_1; ! 364: ! 365: #endif // _LMCONNECTION_ ! 366: ! 367: // ! 368: // FILE API ! 369: // ! 370: ! 371: #ifndef _LMFILE_ ! 372: #define _LMFILE_ ! 373: ! 374: // ! 375: // Function Prototypes - FILE ! 376: // ! 377: ! 378: NET_API_STATUS NET_API_FUNCTION ! 379: NetFileClose ( ! 380: IN LPTSTR servername OPTIONAL, ! 381: IN DWORD fileid ! 382: ); ! 383: ! 384: NET_API_STATUS NET_API_FUNCTION ! 385: NetFileEnum ( ! 386: IN LPTSTR servername OPTIONAL, ! 387: IN LPTSTR basepath OPTIONAL, ! 388: IN LPTSTR username OPTIONAL, ! 389: IN DWORD level, ! 390: OUT LPBYTE *bufptr, ! 391: IN DWORD prefmaxlen, ! 392: OUT LPDWORD entriesread, ! 393: OUT LPDWORD totalentries, ! 394: IN OUT LPDWORD resume_handle OPTIONAL ! 395: ); ! 396: ! 397: NET_API_STATUS NET_API_FUNCTION ! 398: NetFileGetInfo ( ! 399: IN LPTSTR servername OPTIONAL, ! 400: IN DWORD fileid, ! 401: IN DWORD level, ! 402: OUT LPBYTE *bufptr ! 403: ); ! 404: ! 405: // ! 406: // Data Structures - File ! 407: // ! 408: ! 409: // File APIs are available at information levels 2 & 3 only. Levels 0 & ! 410: // 1 are not supported. ! 411: // ! 412: ! 413: typedef struct _FILE_INFO_2 { ! 414: DWORD fi2_id; ! 415: } FILE_INFO_2, *PFILE_INFO_2, *LPFILE_INFO_2; ! 416: ! 417: typedef struct _FILE_INFO_3 { ! 418: DWORD fi3_id; ! 419: DWORD fi3_permissions; ! 420: DWORD fi3_num_locks; ! 421: LPTSTR fi3_pathname; ! 422: LPTSTR fi3_username; ! 423: } FILE_INFO_3, *PFILE_INFO_3, *LPFILE_INFO_3; ! 424: ! 425: // ! 426: // Special Values and Constants - File ! 427: // ! 428: ! 429: // ! 430: // bit values for permissions ! 431: // ! 432: ! 433: #define PERM_FILE_READ 0x1 // user has read access ! 434: #define PERM_FILE_WRITE 0x2 // user has write access ! 435: #define PERM_FILE_CREATE 0x4 // user has create access ! 436: ! 437: #ifdef __cplusplus ! 438: } ! 439: #endif ! 440: ! 441: #endif // _LMFILE_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.