|
|
/*++
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 ); }
NWCCODE NWCCreateQueue( NWCONN_HANDLE hConn, NWDIR_HANDLE dirHandle, const char NWFAR *pszQueueName, NWOBJ_TYPE wQueueType, const char NWFAR *pszPathName, NWOBJ_ID NWFAR *pdwQueueId ) { return (NWCreateQueue( hConn, dirHandle, pszQueueName, wQueueType, pszPathName, pdwQueueId )); }
NWCCODE NWCChangePropertySecurity( NWCONN_HANDLE hConn, const char NWFAR *pszObjName, NWOBJ_TYPE wObjType, const char NWFAR *pszPropertyName, NWFLAGS ucObjSecurity ) { return (NWChangePropertySecurity( hConn, pszObjName, wObjType, pszPropertyName, ucObjSecurity )); }
NWCCODE NWCDestroyQueue( NWCONN_HANDLE hConn, NWOBJ_ID dwQueueId ) { return (NWDestroyQueue( hConn, dwQueueId )); }
|