123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468 |
- /*++ BUILD Version: 0001 // Increment this if a change has global effects
- Copyright (c) 1990-1999 Microsoft Corporation
- Module Name:
- lmshare.h
- Abstract:
- This module defines the API function prototypes and data structures
- for the following groups of NT API functions:
- NetShare
- NetSession
- NetFile
- NetConnection
- Environment:
- User Mode - Win32
- Notes:
- You must include <windef.h> and <lmcons.h> before this file.
- --*/
- //
- // SHARE API
- //
- #ifndef _LMSHARE_
- #define _LMSHARE_
- #if _MSC_VER > 1000
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <lmcons.h>
- //
- // Function Prototypes - Share
- //
- NET_API_STATUS NET_API_FUNCTION
- NetShareAdd (
- IN LMSTR servername,
- IN DWORD level,
- IN LPBYTE buf,
- OUT LPDWORD parm_err
- );
- NET_API_STATUS NET_API_FUNCTION
- NetShareEnum (
- IN LMSTR servername,
- IN DWORD level,
- OUT LPBYTE *bufptr,
- IN DWORD prefmaxlen,
- OUT LPDWORD entriesread,
- OUT LPDWORD totalentries,
- IN OUT LPDWORD resume_handle
- );
- NET_API_STATUS NET_API_FUNCTION
- NetShareEnumSticky (
- IN LMSTR servername,
- IN DWORD level,
- OUT LPBYTE *bufptr,
- IN DWORD prefmaxlen,
- OUT LPDWORD entriesread,
- OUT LPDWORD totalentries,
- IN OUT LPDWORD resume_handle
- );
- NET_API_STATUS NET_API_FUNCTION
- NetShareGetInfo (
- IN LMSTR servername,
- IN LMSTR netname,
- IN DWORD level,
- OUT LPBYTE *bufptr
- );
- NET_API_STATUS NET_API_FUNCTION
- NetShareSetInfo (
- IN LMSTR servername,
- IN LMSTR netname,
- IN DWORD level,
- IN LPBYTE buf,
- OUT LPDWORD parm_err
- );
- NET_API_STATUS NET_API_FUNCTION
- NetShareDel (
- IN LMSTR servername,
- IN LMSTR netname,
- IN DWORD reserved
- );
- NET_API_STATUS NET_API_FUNCTION
- NetShareDelSticky (
- IN LMSTR servername,
- IN LMSTR netname,
- IN DWORD reserved
- );
- NET_API_STATUS NET_API_FUNCTION
- NetShareCheck (
- IN LMSTR servername,
- IN LMSTR device,
- OUT LPDWORD type
- );
- //
- // Data Structures - Share
- //
- typedef struct _SHARE_INFO_0 {
- LMSTR shi0_netname;
- } SHARE_INFO_0, *PSHARE_INFO_0, *LPSHARE_INFO_0;
- typedef struct _SHARE_INFO_1 {
- LMSTR shi1_netname;
- DWORD shi1_type;
- LMSTR shi1_remark;
- } SHARE_INFO_1, *PSHARE_INFO_1, *LPSHARE_INFO_1;
- typedef struct _SHARE_INFO_2 {
- LMSTR shi2_netname;
- DWORD shi2_type;
- LMSTR shi2_remark;
- DWORD shi2_permissions;
- DWORD shi2_max_uses;
- DWORD shi2_current_uses;
- LMSTR shi2_path;
- LMSTR shi2_passwd;
- } SHARE_INFO_2, *PSHARE_INFO_2, *LPSHARE_INFO_2;
- typedef struct _SHARE_INFO_501 {
- LMSTR shi501_netname;
- DWORD shi501_type;
- LMSTR shi501_remark;
- DWORD shi501_flags;
- } SHARE_INFO_501, *PSHARE_INFO_501, *LPSHARE_INFO_501;
- typedef struct _SHARE_INFO_502 {
- LMSTR shi502_netname;
- DWORD shi502_type;
- LMSTR shi502_remark;
- DWORD shi502_permissions;
- DWORD shi502_max_uses;
- DWORD shi502_current_uses;
- LMSTR shi502_path;
- LMSTR shi502_passwd;
- DWORD shi502_reserved;
- PSECURITY_DESCRIPTOR shi502_security_descriptor;
- } SHARE_INFO_502, *PSHARE_INFO_502, *LPSHARE_INFO_502;
- typedef struct _SHARE_INFO_1004 {
- LMSTR shi1004_remark;
- } SHARE_INFO_1004, *PSHARE_INFO_1004, *LPSHARE_INFO_1004;
- typedef struct _SHARE_INFO_1005 {
- DWORD shi1005_flags;
- } SHARE_INFO_1005, *PSHARE_INFO_1005, *LPSHARE_INFO_1005;
- typedef struct _SHARE_INFO_1006 {
- DWORD shi1006_max_uses;
- } SHARE_INFO_1006, *PSHARE_INFO_1006, *LPSHARE_INFO_1006;
- typedef struct _SHARE_INFO_1501 {
- DWORD shi1501_reserved;
- PSECURITY_DESCRIPTOR shi1501_security_descriptor;
- } SHARE_INFO_1501, *PSHARE_INFO_1501, *LPSHARE_INFO_1501;
- //
- // Special Values and Constants - Share
- //
- //
- // Values for parm_err parameter.
- //
- #define SHARE_NETNAME_PARMNUM 1
- #define SHARE_TYPE_PARMNUM 3
- #define SHARE_REMARK_PARMNUM 4
- #define SHARE_PERMISSIONS_PARMNUM 5
- #define SHARE_MAX_USES_PARMNUM 6
- #define SHARE_CURRENT_USES_PARMNUM 7
- #define SHARE_PATH_PARMNUM 8
- #define SHARE_PASSWD_PARMNUM 9
- #define SHARE_FILE_SD_PARMNUM 501
- //
- // Single-field infolevels for NetShareSetInfo.
- //
- #define SHARE_REMARK_INFOLEVEL \
- (PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM)
- #define SHARE_MAX_USES_INFOLEVEL \
- (PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM)
- #define SHARE_FILE_SD_INFOLEVEL \
- (PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM)
- #define SHI1_NUM_ELEMENTS 4
- #define SHI2_NUM_ELEMENTS 10
- //
- // Share types (shi1_type and shi2_type fields).
- //
- #define STYPE_DISKTREE 0
- #define STYPE_PRINTQ 1
- #define STYPE_DEVICE 2
- #define STYPE_IPC 3
- #define STYPE_TEMPORARY 0x40000000
- #define STYPE_SPECIAL 0x80000000
- #define SHI_USES_UNLIMITED (DWORD)-1
- //
- // Flags values for the 501 and 1005 levels
- //
- #define SHI1005_FLAGS_DFS 0x01 // Share is in the DFS
- #define SHI1005_FLAGS_DFS_ROOT 0x02 // Share is root of DFS
- #define CSC_MASK 0x30 // Used to mask off the following states
- #define CSC_CACHE_MANUAL_REINT 0x00 // No automatic file by file reintegration
- #define CSC_CACHE_AUTO_REINT 0x10 // File by file reintegration is OK
- #define CSC_CACHE_VDO 0x20 // no need to flow opens
- #define CSC_CACHE_NONE 0x30 // no CSC for this share
- //
- // The subset of 1005 infolevel flags that can be set via the API
- //
- #define SHI1005_VALID_FLAGS_SET CSC_MASK
- #endif // _LMSHARE_
- //
- // SESSION API
- //
- #ifndef _LMSESSION_
- #define _LMSESSION_
- //
- // Function Prototypes Session
- //
- NET_API_STATUS NET_API_FUNCTION
- NetSessionEnum (
- IN LMSTR servername OPTIONAL,
- IN LMSTR UncClientName OPTIONAL,
- IN LMSTR username OPTIONAL,
- IN DWORD level,
- OUT LPBYTE *bufptr,
- IN DWORD prefmaxlen,
- OUT LPDWORD entriesread,
- OUT LPDWORD totalentries,
- IN OUT LPDWORD resume_handle OPTIONAL
- );
- NET_API_STATUS NET_API_FUNCTION
- NetSessionDel (
- IN LMSTR servername OPTIONAL,
- IN LMSTR UncClientName,
- IN LMSTR username
- );
- NET_API_STATUS NET_API_FUNCTION
- NetSessionGetInfo (
- IN LMSTR servername OPTIONAL,
- IN LMSTR UncClientName,
- IN LMSTR username,
- IN DWORD level,
- OUT LPBYTE *bufptr
- );
- //
- // Data Structures - Session
- //
- typedef struct _SESSION_INFO_0 {
- LMSTR sesi0_cname; // client name (no backslashes)
- } SESSION_INFO_0, *PSESSION_INFO_0, *LPSESSION_INFO_0;
- typedef struct _SESSION_INFO_1 {
- LMSTR sesi1_cname; // client name (no backslashes)
- LMSTR sesi1_username;
- DWORD sesi1_num_opens;
- DWORD sesi1_time;
- DWORD sesi1_idle_time;
- DWORD sesi1_user_flags;
- } SESSION_INFO_1, *PSESSION_INFO_1, *LPSESSION_INFO_1;
- typedef struct _SESSION_INFO_2 {
- LMSTR sesi2_cname; // client name (no backslashes)
- LMSTR sesi2_username;
- DWORD sesi2_num_opens;
- DWORD sesi2_time;
- DWORD sesi2_idle_time;
- DWORD sesi2_user_flags;
- LMSTR sesi2_cltype_name;
- } SESSION_INFO_2, *PSESSION_INFO_2, *LPSESSION_INFO_2;
- typedef struct _SESSION_INFO_10 {
- LMSTR sesi10_cname; // client name (no backslashes)
- LMSTR sesi10_username;
- DWORD sesi10_time;
- DWORD sesi10_idle_time;
- } SESSION_INFO_10, *PSESSION_INFO_10, *LPSESSION_INFO_10;
- typedef struct _SESSION_INFO_502 {
- LMSTR sesi502_cname; // client name (no backslashes)
- LMSTR sesi502_username;
- DWORD sesi502_num_opens;
- DWORD sesi502_time;
- DWORD sesi502_idle_time;
- DWORD sesi502_user_flags;
- LMSTR sesi502_cltype_name;
- LMSTR sesi502_transport;
- } SESSION_INFO_502, *PSESSION_INFO_502, *LPSESSION_INFO_502;
- //
- // Special Values and Constants - Session
- //
- //
- // Bits defined in sesi1_user_flags.
- //
- #define SESS_GUEST 0x00000001 // session is logged on as a guest
- #define SESS_NOENCRYPTION 0x00000002 // session is not using encryption
- #define SESI1_NUM_ELEMENTS 8
- #define SESI2_NUM_ELEMENTS 9
- #endif // _LMSESSION_
- //
- // CONNECTION API
- //
- #ifndef _LMCONNECTION_
- #define _LMCONNECTION_
- //
- // Function Prototypes - CONNECTION
- //
- NET_API_STATUS NET_API_FUNCTION
- NetConnectionEnum (
- IN LMSTR servername OPTIONAL,
- IN LMSTR qualifier,
- IN DWORD level,
- OUT LPBYTE *bufptr,
- IN DWORD prefmaxlen,
- OUT LPDWORD entriesread,
- OUT LPDWORD totalentries,
- IN OUT LPDWORD resume_handle OPTIONAL
- );
- //
- // Data Structures - CONNECTION
- //
- typedef struct _CONNECTION_INFO_0 {
- DWORD coni0_id;
- } CONNECTION_INFO_0, *PCONNECTION_INFO_0, *LPCONNECTION_INFO_0;
- typedef struct _CONNECTION_INFO_1 {
- DWORD coni1_id;
- DWORD coni1_type;
- DWORD coni1_num_opens;
- DWORD coni1_num_users;
- DWORD coni1_time;
- LMSTR coni1_username;
- LMSTR coni1_netname;
- } CONNECTION_INFO_1, *PCONNECTION_INFO_1, *LPCONNECTION_INFO_1;
- #endif // _LMCONNECTION_
- //
- // FILE API
- //
- #ifndef _LMFILE_
- #define _LMFILE_
- //
- // Function Prototypes - FILE
- //
- NET_API_STATUS NET_API_FUNCTION
- NetFileClose (
- IN LMSTR servername OPTIONAL,
- IN DWORD fileid
- );
- NET_API_STATUS NET_API_FUNCTION
- NetFileEnum (
- IN LMSTR servername OPTIONAL,
- IN LMSTR basepath OPTIONAL,
- IN LMSTR username OPTIONAL,
- IN DWORD level,
- OUT LPBYTE *bufptr,
- IN DWORD prefmaxlen,
- OUT LPDWORD entriesread,
- OUT LPDWORD totalentries,
- IN OUT PDWORD_PTR resume_handle OPTIONAL
- );
- NET_API_STATUS NET_API_FUNCTION
- NetFileGetInfo (
- IN LMSTR servername OPTIONAL,
- IN DWORD fileid,
- IN DWORD level,
- OUT LPBYTE *bufptr
- );
- //
- // Data Structures - File
- //
- // File APIs are available at information levels 2 & 3 only. Levels 0 &
- // 1 are not supported.
- //
- typedef struct _FILE_INFO_2 {
- DWORD fi2_id;
- } FILE_INFO_2, *PFILE_INFO_2, *LPFILE_INFO_2;
- typedef struct _FILE_INFO_3 {
- DWORD fi3_id;
- DWORD fi3_permissions;
- DWORD fi3_num_locks;
- LMSTR fi3_pathname;
- LMSTR fi3_username;
- } FILE_INFO_3, *PFILE_INFO_3, *LPFILE_INFO_3;
- //
- // Special Values and Constants - File
- //
- //
- // bit values for permissions
- //
- #define PERM_FILE_READ 0x1 // user has read access
- #define PERM_FILE_WRITE 0x2 // user has write access
- #define PERM_FILE_CREATE 0x4 // user has create access
- #ifdef __cplusplus
- }
- #endif
- #endif // _LMFILE_
|