/*********************************************************************** * * Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; version 2.1 * of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, Novell, Inc. * * To contact Novell about this file by physical or electronic mail, * you may find current contact information at www.novell.com. * ***********************************************************************/ #if ! defined ( NWVOL_H ) #define NWVOL_H #if ! defined ( NTYPES_H ) #include "ntypes.h" #endif #if ! defined ( NWCALDEF_H ) #include "nwcaldef.h" #endif #if ! defined ( NWAPIDEF_H ) #include "nwapidef.h" #endif #include "npackon.h" #ifdef __cplusplus extern "C" { #endif /* define volume types */ #define VINetWare386 0 #define VINetWare286 1 #define VINetWare386v30 2 #define VINetWare386v31 3 /* define the extended volume information status flag bits */ #define NWSubAllocEnabledBit 0x01 #define NWCompressionEnabledBit 0x02 #define NWMigrationEnabledBit 0x04 #define NWAuditingEnabledBit 0x08 #define NWReadOnlyEnabledBit 0x10 #define NWPSSEnabledBit 0x80000000L /* define the constant for volume request flag for NWScanMountedVolumeList */ #define NW_VOLUME_NUMBER_ONLY 0 #define NW_VOLUME_NUMBER_AND_NAME 1 typedef struct { nuint32 objectID; nuint32 restriction; } NWOBJ_REST; typedef struct { nuint8 numberOfEntries; struct { nuint32 objectID; nuint32 restriction; } resInfo[12]; } NWVolumeRestrictions; typedef struct { nuint8 numberOfEntries; struct { nuint32 objectID; nuint32 restriction; } resInfo[16]; } NWVOL_RESTRICTIONS; typedef struct { nint32 systemElapsedTime; nuint8 volumeNumber; nuint8 logicalDriveNumber; nuint16 sectorsPerBlock; nuint16 startingBlock; nuint16 totalBlocks; nuint16 availableBlocks; nuint16 totalDirectorySlots; nuint16 availableDirectorySlots; nuint16 maxDirectorySlotsUsed; nuint8 isHashing; nuint8 isCaching; nuint8 isRemovable; nuint8 isMounted; nstr8 volumeName[16]; } VOL_STATS; typedef struct ExtendedVolInfo_tag { nuint32 volType; nuint32 statusFlag; nuint32 sectorSize; nuint32 sectorsPerCluster; nuint32 volSizeInClusters; nuint32 freeClusters; nuint32 subAllocFreeableClusters; nuint32 freeableLimboSectors; nuint32 nonfreeableLimboSectors; nuint32 availSubAllocSectors; /* non freeable */ nuint32 nonuseableSubAllocSectors; nuint32 subAllocClusters; nuint32 numDataStreams; nuint32 numLimboDataStreams; nuint32 oldestDelFileAgeInTicks; nuint32 numCompressedDataStreams; nuint32 numCompressedLimboDataStreams; nuint32 numNoncompressibleDataStreams; nuint32 precompressedSectors; nuint32 compressedSectors; nuint32 numMigratedDataStreams; nuint32 migratedSectors; nuint32 clustersUsedByFAT; nuint32 clustersUsedByDirs; nuint32 clustersUsedByExtDirs; nuint32 totalDirEntries; nuint32 unusedDirEntries; nuint32 totalExtDirExtants; nuint32 unusedExtDirExtants; nuint32 extAttrsDefined; nuint32 extAttrExtantsUsed; nuint32 DirectoryServicesObjectID; nuint32 volLastModifiedDateAndTime; } NWVolExtendedInfo; typedef struct NWVolMountNumWithName_tag { nuint32 volumeNumber; nstr8 volumeName[NW_MAX_VOLUME_NAME_LEN]; } NWVolMountNumWithName; N_EXTERN_LIBRARY( NWCCODE ) NWGetDiskUtilization ( NWCONN_HANDLE conn, nuint32 objID, nuint8 volNum, pnuint16 usedDirectories, pnuint16 usedFiles, pnuint16 usedBlocks ); N_EXTERN_LIBRARY( NWCCODE ) NWGetObjDiskRestrictions ( NWCONN_HANDLE conn, nuint8 volNumber, nuint32 objectID, pnuint32 restriction, pnuint32 inUse ); N_EXTERN_LIBRARY( NWCCODE ) NWScanVolDiskRestrictions ( NWCONN_HANDLE conn, nuint8 volNum, pnuint32 iterhandle, NWVolumeRestrictions N_FAR * volInfo ); N_EXTERN_LIBRARY( NWCCODE ) NWScanVolDiskRestrictions2 ( NWCONN_HANDLE conn, nuint8 volNum, pnuint32 iterhandle, NWVOL_RESTRICTIONS N_FAR * volInfo ); N_EXTERN_LIBRARY( NWCCODE ) NWRemoveObjectDiskRestrictions ( NWCONN_HANDLE conn, nuint8 volNum, nuint32 objID ); N_EXTERN_LIBRARY( NWCCODE ) NWSetObjectVolSpaceLimit ( NWCONN_HANDLE conn, nuint16 volNum, nuint32 objID, nuint32 restriction ); N_EXTERN_LIBRARY( NWCCODE ) NWGetVolumeInfoWithHandle ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, pnstr8 volName, pnuint16 totalBlocks, pnuint16 sectorsPerBlock, pnuint16 availableBlocks, pnuint16 totalDirEntries, pnuint16 availableDirEntries, pnuint16 volIsRemovableFlag ); N_EXTERN_LIBRARY( NWCCODE ) NWGetVolumeInfoWithNumber ( NWCONN_HANDLE conn, nuint16 volNum, pnstr8 volName, pnuint16 totalBlocks, pnuint16 sectorsPerBlock, pnuint16 availableBlocks, pnuint16 totalDirEntries, pnuint16 availableDirEntries, pnuint16 volIsRemovableFlag ); N_EXTERN_LIBRARY( NWCCODE ) NWGetVolumeName ( NWCONN_HANDLE conn, nuint16 volNum, pnstr8 volName ); N_EXTERN_LIBRARY( NWCCODE ) NWGetVolumeNumber ( NWCONN_HANDLE conn, const nstr8 N_FAR * volName, pnuint16 volNum ); N_EXTERN_LIBRARY( NWCCODE ) NWGetVolumeStats ( NWCONN_HANDLE conn, nuint8 volNum, VOL_STATS N_FAR * volInfo ); #if defined( N_PLAT_NLM ) #define NWGetExtendedVolumeInfo NWGetExtendedVolumeInfo2 #endif N_EXTERN_LIBRARY( NWCCODE ) NWGetExtendedVolumeInfo ( NWCONN_HANDLE conn, nuint16 volNum, NWVolExtendedInfo N_FAR * volInfo ); N_EXTERN_LIBRARY( NWCCODE ) NWScanMountedVolumeList ( NWCONN_HANDLE conn, nuint32 volRequestFlags, nuint32 nameSpace, pnuint32 iterHandle, nuint32 numberItems, pnuint32 numberReturned, NWVolMountNumWithName N_FAR * volMountArr ); #ifdef __cplusplus } #endif #include "npackoff.h" #endif