diff options
Diffstat (limited to 'private/nw/nwlib/nwcapi32.c')
-rw-r--r-- | private/nw/nwlib/nwcapi32.c | 798 |
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 ); +} |