Annotation of mstools/h/lmshare.h, revision 1.1.1.1

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_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.