summaryrefslogtreecommitdiffstats
path: root/private/nw/convert/nwconv/nwnetapi.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/nw/convert/nwconv/nwnetapi.h133
1 files changed, 133 insertions, 0 deletions
diff --git a/private/nw/convert/nwconv/nwnetapi.h b/private/nw/convert/nwconv/nwnetapi.h
new file mode 100644
index 000000000..d9089a520
--- /dev/null
+++ b/private/nw/convert/nwconv/nwnetapi.h
@@ -0,0 +1,133 @@
+/*+-------------------------------------------------------------------------+
+ | Copyright 1993-1994 (C) Microsoft Corporation - All rights reserved. |
+ +-------------------------------------------------------------------------+*/
+
+#ifndef _HNWNETAPI_
+#define _HNWNETAPI_
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+#ifndef NTSTATUS
+typedef LONG NTSTATUS;
+#endif
+
+typedef struct _USER_RIGHTS_LIST {
+ TCHAR Name[MAX_USER_NAME_LEN];
+ DWORD Rights;
+} USER_RIGHTS_LIST;
+
+int NWGetMaxServerNameLen();
+int NWGetMaxUserNameLen();
+
+BOOL NWObjectNameGet( DWORD ObjectID, LPTSTR ObjectName );
+
+VOID NWUserInfoGet(LPTSTR szUserName, VOID **UInfo);
+VOID NWUserInfoLog(LPTSTR szUserName, VOID *UInfo);
+DWORD NWServerSet(LPTSTR FileServer);
+DWORD NWServerFree();
+
+DWORD NWUsersEnum(USER_LIST **lpUsers, BOOL Display);
+DWORD NWGroupsEnum(GROUP_LIST **lpGroups, BOOL Display);
+DWORD NWGroupUsersEnum(LPTSTR GroupName, USER_LIST **lpUsers);
+DWORD NWUserEquivalenceEnum(LPTSTR UserName, USER_LIST **lpUsers);
+DWORD NWServerEnum(LPTSTR Container, SERVER_BROWSE_LIST **lpServList);
+DWORD NWSharesEnum(SHARE_LIST **lpShares);
+
+VOID NWUserDefaultsGet(VOID **UDefaults);
+VOID NWUserDefaultsMap(VOID *NWUDefaults, NT_DEFAULTS *NTDefaults);
+VOID NWUserDefaultsLog(VOID *UDefaults);
+VOID NWNetUserMapInfo (LPTSTR szUserName, VOID *UInfo, NT_USER_INFO *NT_UInfo );
+VOID NWFPNWMapInfo(VOID *NWUInfo, PFPNW_INFO fpnw);
+
+VOID NWUseDel(LPTSTR ServerName);
+BOOL NWIsAdmin(LPTSTR UserName);
+VOID NWServerInfoReset(SOURCE_SERVER_BUFFER *SServ);
+VOID NWServerInfoSet(LPTSTR ServerName, SOURCE_SERVER_BUFFER *SServ);
+BOOL NWServerValidate(HWND hWnd, LPTSTR ServerName, BOOL DupFlag);
+DWORD NWFileRightsEnum(LPTSTR FileName, USER_RIGHTS_LIST **lpUsers, DWORD *UserCount, BOOL DownLevel);
+LPTSTR NWRightsLog(DWORD Rights);
+LPTSTR NWSpecialNamesMap(LPTSTR Name);
+
+VOID NWServerTimeGet();
+
+typedef struct _NW_TO_NT_MAPPING {
+ ULONG NWRight ;
+ ULONG NTAccess ;
+} NW_TO_NT_MAPPING, *PNW_TO_NT_MAPPING ;
+
+
+//
+// structure used to define how the Rights for a Netware object maps
+// to the corresponding NT AccessMasks.
+//
+// first entry is the AceFlags to distinguish between ACE for the Object
+// and ACE for inheritted objects
+//
+// the GENERIC_MAPPING structure should match that already defined for
+// the NT object in question.
+//
+// the array of NW mappings defines the NT Access Mask for each NW Right
+// the object uses. the last entry should be {0, 0}.
+//
+// for example, file object mappings:
+//
+// RIGHTS_MAPPING FileRightsMapping =
+// {
+// 0,
+// { FILE_GENERIC_READ,
+// FILE_GENERIC_WRITE,
+// FILE_GENERIC_EXECUTE,
+// FILE_ALL_ACCESS
+// },
+// { { NW_FILE_READ, GENERIC_READ }
+// { NW_FILE_WRITE, GENERIC_WRITE }
+// { NW_FILE_CREATE, 0 }
+// { NW_FILE_DELETE, GENERIC_WRITE }
+// { NW_FILE_PERM, WRITE_DAC }
+// { NW_FILE_SCAN, 0 }
+// { NW_FILE_MODIFY, GENERIC_WRITE }
+// { NW_FILE_SUPERVISOR, GENERIC_ALL }
+// { 0, 0 }
+// }
+// } ;
+//
+//
+
+typedef struct _RIGHTS_MAPPING {
+ ULONG NtAceFlags ;
+ GENERIC_MAPPING GenericMapping ;
+ NW_TO_NT_MAPPING Nw2NtMapping[] ;
+} RIGHTS_MAPPING, *PRIGHTS_MAPPING ;
+
+
+// predefined mappings (defined in nwnetapi.c)
+extern RIGHTS_MAPPING FileRightsMapping ;
+extern RIGHTS_MAPPING DirRightsMapping ;
+extern RIGHTS_MAPPING PrintRightsMapping ;
+extern RIGHTS_MAPPING JobRightsMapping ;
+
+// define the NW_FILE_* rights
+#define NW_FILE_READ 0x0001
+#define NW_FILE_WRITE 0x0002
+#define NW_FILE_CREATE 0x0008
+#define NW_FILE_DELETE 0x0010
+#define NW_FILE_PERM 0x0020
+#define NW_FILE_SCAN 0x0040
+#define NW_FILE_MODIFY 0x0080
+#define NW_FILE_SUPERVISOR 0x0100
+
+#define NW_PRINT_USER 0x0001
+#define NW_PRINT_ADMIN 0x0002
+#define NW_PRINTJOB_ADMIN 0x0004
+
+NTSTATUS MapNwRightsToNTAccess( ULONG NWRights, PRIGHTS_MAPPING pMap, ACCESS_MASK *pAccessMask ) ;
+DWORD NWPrintOpsEnum(USER_LIST **lpUsers);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+