summaryrefslogtreecommitdiffstats
path: root/private/nw/nwlib/nwcapi32.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/nw/nwlib/nwcapi32.c')
-rw-r--r--private/nw/nwlib/nwcapi32.c798
1 files changed, 798 insertions, 0 deletions
diff --git a/private/nw/nwlib/nwcapi32.c b/private/nw/nwlib/nwcapi32.c
new file mode 100644
index 000000000..0fd0b4bb1
--- /dev/null
+++ b/private/nw/nwlib/nwcapi32.c
@@ -0,0 +1,798 @@
+/*++
+
+Copyright (C) 1993 Microsoft Corporation
+
+Module Name:
+
+ NWAPI32.C
+
+Abstract:
+
+ This module contains NetWare compatible APIs. The NWC* functions
+ are implemented as wrappers around NWP* or NW* functions.
+
+Author:
+
+ Chuck Y. Chan (ChuckC) 06-Mar-1995
+
+Revision History:
+
+ ChuckC Moved over from DSM to consolidate.
+
+--*/
+
+#include "procs.h"
+
+//
+// define define categories of errors
+//
+typedef enum _NCP_CLASS {
+ NcpClassConnect,
+ NcpClassBindery,
+ NcpClassDir
+} NCP_CLASS ;
+
+extern NWCCODE
+MapNtStatus(
+ const NTSTATUS ntstatus,
+ const NCP_CLASS ncpclass
+);
+
+extern DWORD
+SetWin32ErrorFromNtStatus(
+ NTSTATUS NtStatus
+) ;
+
+
+//
+// Function bodies
+//
+
+
+NWCCODE
+NWCAddTrusteeToDirectory(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE dirHandle,
+ const char *pszPath,
+ NWOBJ_ID dwTrusteeID,
+ NWACCESS_RIGHTS rightsMask
+ )
+{
+ return (NWAddTrusteeToDirectory(
+ hConn,
+ dirHandle,
+ pszPath,
+ dwTrusteeID,
+ rightsMask)) ;
+}
+
+NWCCODE
+NWCAllocPermanentDirectoryHandle(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE dirHandle,
+ char *pszDirPath,
+ NWDIR_HANDLE *pbNewDirHandle,
+ NWACCESS_RIGHTS *pbRightsMask
+ )
+{
+ return (NWAllocPermanentDirectoryHandle(
+ hConn,
+ dirHandle,
+ pszDirPath,
+ pbNewDirHandle,
+ pbRightsMask)) ;
+}
+
+NWCCODE
+NWCAllocTemporaryDirectoryHandle(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE dirHandle,
+ char *pszDirPath,
+ NWDIR_HANDLE *pbNewDirHandle,
+ NWACCESS_RIGHTS *pbRightsMask
+ )
+{
+ return (NWAllocTemporaryDirectoryHandle(
+ hConn,
+ dirHandle,
+ pszDirPath,
+ pbNewDirHandle,
+ pbRightsMask)) ;
+}
+
+NWCCODE
+NWCAttachToFileServer(
+ const char *pszServerName,
+ NWLOCAL_SCOPE ScopeFlag,
+ NWCONN_HANDLE *phNewConn
+ )
+{
+ return (NWAttachToFileServer(
+ pszServerName,
+ ScopeFlag,
+ phNewConn)) ;
+}
+
+NWCCODE
+NWCAttachToFileServerW(
+ const WCHAR *pszServerName,
+ NWLOCAL_SCOPE ScopeFlag,
+ NWCONN_HANDLE *phNewConn
+ )
+{
+ return (NWAttachToFileServerW(
+ pszServerName,
+ ScopeFlag,
+ phNewConn)) ;
+}
+
+NWCCODE
+NWCCheckConsolePrivileges(
+ NWCONN_HANDLE hConn
+ )
+{
+ return(NWCheckConsolePrivileges(hConn));
+}
+
+NWCCODE
+NWCDeallocateDirectoryHandle(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE dirHandle
+ )
+{
+ return(NWDeallocateDirectoryHandle(
+ hConn,
+ dirHandle)) ;
+}
+
+NWCCODE
+NWCDetachFromFileServer(
+ NWCONN_HANDLE hConn
+ )
+{
+ return(NWDetachFromFileServer(hConn)) ;
+}
+
+NWCCODE
+NWCGetFileServerVersionInfo(
+ NWCONN_HANDLE hConn,
+ VERSION_INFO *lpVerInfo
+ )
+{
+ return(NWGetFileServerVersionInfo(
+ hConn,
+ lpVerInfo)) ;
+}
+
+NWCCODE
+NWCGetInternetAddress(
+ NWCONN_HANDLE hConn,
+ NWCONN_NUM nConnNum,
+ NWNET_ADDR *pIntAddr
+ )
+{
+ return (NWGetInternetAddress(
+ hConn,
+ nConnNum,
+ pIntAddr)) ;
+}
+
+NWCCODE
+NWCGetObjectName(
+ NWCONN_HANDLE hConn,
+ NWOBJ_ID dwObjectID,
+ char *pszObjName,
+ NWOBJ_TYPE *pwObjType )
+{
+ return(NWGetObjectName(
+ hConn,
+ dwObjectID,
+ pszObjName,
+ pwObjType )) ;
+}
+
+
+NWCCODE
+NWCGetVolumeInfoWithNumber(
+ NWCONN_HANDLE hConn,
+ NWVOL_NUM nVolNum,
+ char *pszVolName,
+ NWNUMBER *pwTotalBlocks,
+ NWNUMBER *pwSectors,
+ NWNUMBER *pwAvailBlocks,
+ NWNUMBER *pwTotalDir,
+ NWNUMBER *pwAvailDir,
+ NWVOL_FLAGS *pfVolRemovable
+ )
+{
+ return(NWGetVolumeInfoWithNumber(
+ hConn,
+ nVolNum,
+ pszVolName,
+ pwTotalBlocks,
+ pwSectors,
+ pwAvailBlocks,
+ pwTotalDir,
+ pwAvailDir,
+ pfVolRemovable)) ;
+}
+
+NWCCODE
+NWCGetVolumeInfoWithHandle(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE nDirHand,
+ char *pszVolName,
+ NWNUMBER *pwTotalBlocks,
+ NWNUMBER *pwSectors,
+ NWNUMBER *pwAvailBlocks,
+ NWNUMBER *pwTotalDir,
+ NWNUMBER *pwAvailDir,
+ NWVOL_FLAGS *pfVolRemovable
+ )
+{
+ return(NWGetVolumeInfoWithHandle(
+ hConn,
+ nDirHand,
+ pszVolName,
+ pwTotalBlocks,
+ pwSectors,
+ pwAvailBlocks,
+ pwTotalDir,
+ pwAvailDir,
+ pfVolRemovable)) ;
+}
+
+NWCCODE
+NWCGetVolumeName(
+ NWCONN_HANDLE hConn,
+ NWVOL_NUM bVolNum,
+ char *pszVolName
+ )
+{
+ return(NWGetVolumeName(
+ hConn,
+ bVolNum,
+ pszVolName)) ;
+}
+
+NWCCODE
+NWCIsObjectInSet(
+ NWCONN_HANDLE hConn,
+ const char *lpszObjectName,
+ NWOBJ_TYPE wObjType,
+ const char *lpszPropertyName,
+ const char *lpszMemberName,
+ NWOBJ_TYPE wMemberType
+ )
+{
+ return(NWIsObjectInSet(
+ hConn,
+ lpszObjectName,
+ wObjType,
+ lpszPropertyName,
+ lpszMemberName,
+ wMemberType)) ;
+}
+
+
+NWCCODE
+NWCLoginToFileServer(
+ NWCONN_HANDLE hConn,
+ const char *pszUserName,
+ NWOBJ_TYPE wObjType,
+ const char *pszPassword
+ )
+{
+ return(NWLoginToFileServer(
+ hConn,
+ pszUserName,
+ wObjType,
+ pszPassword)) ;
+}
+
+NWCCODE
+NWCLogoutFromFileServer(
+ NWCONN_HANDLE hConn
+ )
+{
+ return(NWLogoutFromFileServer( hConn )) ;
+}
+
+NWCCODE
+NWCReadPropertyValue(
+ NWCONN_HANDLE hConn,
+ const char *pszObjName,
+ NWOBJ_TYPE wObjType,
+ char *pszPropName,
+ unsigned char ucSegment,
+ char *pValue,
+ NWFLAGS *pucMoreFlag,
+ NWFLAGS *pucPropFlag
+ )
+{
+ return(NWReadPropertyValue(
+ hConn,
+ pszObjName,
+ wObjType,
+ pszPropName,
+ ucSegment,
+ pValue,
+ pucMoreFlag,
+ pucPropFlag)) ;
+}
+
+NWCCODE
+NWCScanObject(
+ NWCONN_HANDLE hConn,
+ const char *pszSearchName,
+ NWOBJ_TYPE wObjSearchType,
+ NWOBJ_ID *pdwObjectID,
+ char *pszObjectName,
+ NWOBJ_TYPE *pwObjType,
+ NWFLAGS *pucHasProperties,
+ NWFLAGS *pucObjectFlags,
+ NWFLAGS *pucObjSecurity
+ )
+{
+ return(NWScanObject(
+ hConn,
+ pszSearchName,
+ wObjSearchType,
+ pdwObjectID,
+ pszObjectName,
+ pwObjType,
+ pucHasProperties,
+ pucObjectFlags,
+ pucObjSecurity)) ;
+}
+
+NWCCODE
+NWCScanProperty(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType,
+ char *pszSearchName,
+ NWOBJ_ID *pdwSequence,
+ char *pszPropName,
+ NWFLAGS *pucPropFlags,
+ NWFLAGS *pucPropSecurity,
+ NWFLAGS *pucHasValue,
+ NWFLAGS *pucMore
+ )
+{
+ return( NWScanProperty(
+ hConn,
+ pszObjectName,
+ wObjType,
+ pszSearchName,
+ pdwSequence,
+ pszPropName,
+ pucPropFlags,
+ pucPropSecurity,
+ pucHasValue,
+ pucMore)) ;
+}
+
+NWCCODE
+NWCGetFileServerDateAndTime(
+ NWCONN_HANDLE hConn,
+ BYTE *year,
+ BYTE *month,
+ BYTE *day,
+ BYTE *hour,
+ BYTE *minute,
+ BYTE *second,
+ BYTE *dayofweek
+ )
+{
+ return( NWGetFileServerDateAndTime(
+ hConn,
+ year,
+ month,
+ day,
+ hour,
+ minute,
+ second,
+ dayofweek ));
+}
+
+
+NWCCODE
+NWCAddTrustee(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE dirHandle,
+ const char *pszPath,
+ NWOBJ_ID dwTrusteeID,
+ NWRIGHTS_MASK rightsMask
+ )
+{
+ NTSTATUS NtStatus;
+
+ NtStatus = NWPAddTrustee(
+ hConn,
+ dirHandle,
+ pszPath,
+ dwTrusteeID,
+ rightsMask
+ );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassDir );
+}
+
+NWCCODE
+NWCDeleteObject(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType
+ )
+{
+ NTSTATUS NtStatus;
+
+ NtStatus = NWPDeleteObject( hConn,
+ pszObjectName,
+ wObjType );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCCreateObject(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType,
+ NWFLAGS ucObjectFlags,
+ NWFLAGS ucObjSecurity
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPCreateObject( hConn,
+ pszObjectName,
+ wObjType,
+ ucObjectFlags,
+ ucObjSecurity );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCCreateProperty(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType,
+ const char *pszPropertyName,
+ NWFLAGS ucObjectFlags,
+ NWFLAGS ucObjSecurity
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPCreateProperty( hConn,
+ pszObjectName,
+ wObjType,
+ pszPropertyName,
+ ucObjectFlags,
+ ucObjSecurity );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCDeleteProperty(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType,
+ const char *pszPropertyName
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPDeleteProperty( hConn,
+ pszObjectName,
+ wObjType,
+ pszPropertyName );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCWritePropertyValue(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType,
+ const char *pszPropertyName,
+ NWSEGMENT_NUM segmentNumber,
+ NWSEGMENT_DATA *segmentData,
+ NWFLAGS moreSegments
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPWritePropertyValue( hConn,
+ pszObjectName,
+ wObjType,
+ pszPropertyName,
+ segmentNumber,
+ segmentData,
+ moreSegments );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCGetObjectID(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType,
+ NWOBJ_ID *objectID
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPGetObjectID( hConn,
+ pszObjectName,
+ wObjType,
+ objectID );
+
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCRenameBinderyObject(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ const char *pszNewObjectName,
+ NWOBJ_TYPE wObjType
+ )
+{
+ NTSTATUS NtStatus;
+
+ NtStatus = NWPRenameBinderyObject(
+ hConn,
+ pszObjectName,
+ pszNewObjectName,
+ wObjType
+ );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCAddObjectToSet(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType,
+ const char *pszPropertyName,
+ const char *pszMemberName,
+ NWOBJ_TYPE memberType
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPAddObjectToSet( hConn,
+ pszObjectName,
+ wObjType,
+ pszPropertyName,
+ pszMemberName,
+ memberType );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCDeleteObjectFromSet(
+ NWCONN_HANDLE hConn,
+ const char *pszObjectName,
+ NWOBJ_TYPE wObjType,
+ const char *pszPropertyName,
+ const char *pszMemberName,
+ NWOBJ_TYPE memberType
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPDeleteObjectFromSet( hConn,
+ pszObjectName,
+ wObjType,
+ pszPropertyName,
+ pszMemberName,
+ memberType );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCCreateDirectory(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE dirHandle,
+ const char *pszPath,
+ NWACCESS_RIGHTS accessMask
+ )
+{
+ NTSTATUS NtStatus;
+
+ NtStatus = NWPCreateDirectory(
+ hConn,
+ dirHandle,
+ pszPath,
+ accessMask
+ );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+
+NWCCODE
+NWCScanForTrustees(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE dirHandle,
+ char *pszsearchDirPath,
+ NWSEQUENCE *pucsequenceNumber,
+ BYTE *numberOfEntries,
+ TRUSTEE_INFO *ti
+ )
+{
+ NTSTATUS NtStatus;
+
+ NtStatus = NWPScanForTrustees(
+ hConn,
+ dirHandle,
+ pszsearchDirPath,
+ pucsequenceNumber,
+ numberOfEntries,
+ ti
+ ) ;
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+
+NWCCODE
+NWCScanDirectoryForTrustees2(
+ NWCONN_HANDLE hConn,
+ NWDIR_HANDLE dirHandle,
+ char *pszsearchDirPath,
+ NWSEQUENCE *pucsequenceNumber,
+ char *pszdirName,
+ NWDATE_TIME *dirDateTime,
+ NWOBJ_ID *ownerID,
+ TRUSTEE_INFO *ti
+ )
+{
+ NTSTATUS NtStatus;
+
+ NtStatus = NWPScanDirectoryForTrustees2(
+ hConn,
+ dirHandle,
+ pszsearchDirPath,
+ pucsequenceNumber,
+ pszdirName,
+ dirDateTime,
+ ownerID,
+ ti
+ );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+
+NWCCODE
+NWCGetBinderyAccessLevel(
+ NWCONN_HANDLE hConn,
+ NWFLAGS *accessLevel,
+ NWOBJ_ID *objectID
+ )
+{
+ NTSTATUS NtStatus;
+
+ NtStatus = NWPGetBinderyAccessLevel(
+ hConn,
+ accessLevel,
+ objectID
+ );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCGetFileServerDescription(
+ NWCONN_HANDLE hConn,
+ char *pszCompany,
+ char *pszVersion,
+ char *pszRevision
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPGetFileServerDescription(
+ hConn,
+ pszCompany,
+ pszVersion,
+ pszRevision
+ );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCGetVolumeNumber(
+ NWCONN_HANDLE hConn,
+ char *pszVolume,
+ NWVOL_NUM *VolumeNumber
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPGetVolumeNumber(
+ hConn,
+ pszVolume,
+ VolumeNumber
+ );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}
+
+NWCCODE
+NWCGetVolumeUsage(
+ NWCONN_HANDLE hConn,
+ NWVOL_NUM VolumeNumber,
+ DWORD *TotalBlocks,
+ DWORD *FreeBlocks,
+ DWORD *PurgeableBlocks,
+ DWORD *NotYetPurgeableBlocks,
+ DWORD *TotalDirectoryEntries,
+ DWORD *AvailableDirectoryEntries,
+ BYTE *SectorsPerBlock
+ )
+{
+ NTSTATUS NtStatus ;
+
+ NtStatus = NWPGetVolumeUsage(
+ hConn,
+ VolumeNumber,
+ TotalBlocks,
+ FreeBlocks,
+ PurgeableBlocks,
+ NotYetPurgeableBlocks,
+ TotalDirectoryEntries,
+ AvailableDirectoryEntries,
+ SectorsPerBlock
+ );
+
+ (void) SetWin32ErrorFromNtStatus(NtStatus) ;
+
+ return MapNtStatus( NtStatus, NcpClassBindery );
+}