Annotation of mstools/h/lmshare.h, revision 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.