$#13452+KNetWare API

Copyright Notice

Accounting Services		Apple Filing Protocol Services
Bindery Services			Connection Services
Diagnostics Services		Directory Services
Error Code Global Constants		File Services
File Server Environment Services	Message Services
Miscellaneous Services		Name Space Services
Print Services			Print Server Services
Print Queue Services		Service Advertising Protocol
Synchronization Services		Transaction Tracking Services
Workstation Environment Services

$#2+KAccounting Services

Accounting Services Global Constants

AccountingInstalled		GetAccountStatus
SubmitAccountCharge		SubmitAccountHold
SubmitAccountNote

$#2+KApple Filing Protocol Services

AFPS Structures

AFPAllocTemporaryDirHandle	AFPCreateDirectory
AFPCreateFile			AFPDelete
AFPDirectoryEntry			AFPGetEntryIDFromName
AFPGetEntryIDFromNetWareHandle	AFPGetEntryIDFromPathName
AFPGetFileInformation		AFPOpenFileFork
AFPRename			AFPScanFileInformation
AFPSetFileInformation		AFPSupported

$#2+KBindery Services

Bindary Services Global Constants	Bindary Services Structures

AddBinderyObjectToSet		ChangeBinderyObjectPassword
ChangeBinderyObjectSecurity		ChangePropertySecurity
CloseBindery			CreateBinderyObject
CreateProperty			DeleteBinderyObject
DeleteBinderyObjectFromSet		DeleteProperty
GetBinderyAccessLevel		GetBinderyObjectDiskSpaceLeft
GetBinderyObjectID		GetBinderyObjectName
IsBinderyObjectInSet		OpenBindery
ReadPropertyValue			RenameBinderyObject
ScanBinderyObject			ScanBinderyObjectTrusteePaths
ScanProperty			VerifyBinderyObjectPassword
WritePropertyValue

$#2+KConnection Services

Connection Services Structures

AttachToFileServer			AttachToFileServerWithAddress
DetachFromFileServer		EnterLoginArea
GetConnectionInformation		GetConnectionNumber
GetInternetAddress			GetObjectConnectionNumbers
GetStationAddress			LoginToFileServer
Logout				LogoutFromFileServer

$#2+KDiagnostics Services

Diagnostic Services Global Constants	Diagnostic Services Structures

AbortSendingPackets		GetIPXSPXVersion
GetIPXStatistics			GetSPXStatistics
ReturnReceivedPacketCount		StartCountingPkts
StartSendingPkts

GetBridgeDriverConfiguration		GetBridgeDriverStatistics
GetBridgeDriverStatus		GetShellDriverConfiguration
GetShellDriverStatistics

BeginDiagnostics			EndDiagnostics
FindComponentOffset		GetOSVersionInfo
GetPrimaryServerNumber		GetServerAddressTable
GetServerNameTable		GetShellAddress
GetShellStatistics			GetShellVersionInfo
GetAllKnownNetWorks		GetAllKnownServers
GetBridgeStatistics			GetLocalTables
GetSpecificNetworkInfo		GetSpecificServerInfo

$#2+KDirectory Services

Directory Services Global Constants	Directory Services Structures

AddTrusteeToDirectory		AllocPermanentDirectoryHandle
AllocTemporaryDirectoryHandle	ClearVolRestrictions
CreateDirectory			DeallocateDirectoryHandle
DeleteDirectory			DeleteTrustee
DeleteTrusteeFromDirectory		GetCurrentDirectory
GetDirectoryHandle			GetDirectoryPath
GetDirEntry			GetDirInfo
GetDriveInformation		GetEffectiveDirectoryRights
GetEffectiveRights			GetObjectDiskRestrictions
GetSearchDriveVector		GetVolumeInformation
GetVolumeInfoWithHandle		GetVolumeInfoWithNumber
GetVolumeName			GetVolumeNumber
GetVolUsage			IsSearchDrive
MapDrive			MapDriveUsingString
MapV2TrusteeRightsToV3		MapV3TrusteeRightsToV2
ModifyMaximumRightsMask		MoveEntry
RenameDirectory			RestoreDirectoryHandle
SaveDirectoryHandle		ScanDirectoryForTrustees
ScanDirectoryInformation		ScanDirEntry
ScanDirRestrictions			ScanEntryForTrustees
ScanVolForRestrictions		SetDirectoryHandle
SetDirectoryInformation		SetDirRestriction
SetDrivePath			SetEntry
SetSearchDriveVector		SetTrustee
SetVolRestriction

$#2+KError Code Global Constants

uint SERVER_NOT_IN_USE				= 0
uint SHELL_VERSION_TOO_OLD			= 0
uint SUCCESSFUL					= 0
uint TTS_NOT_AVAILABLE				= 0
uint SEMAPHORE_OVERFLOW			= 1
uint SERVER_IN_USE				= 1
uint TTS_AVAILABLE				= 1
uint INVALID_MODE				= 125
uint FILE_IN_USE_ERROR				= 128
uint NO_MORE_FILE_HANDLES			= 129
uint NO_OPEN_PRIVILEGES				= 130
uint IO_ERROR_NETWORK_DISK			= 131
uint NO_CREATE_PRIVILEGES			= 132
uint NO_CREATE_DELETE_PRIVILEGES		= 133
uint CREATE_FILE_EXISTS_READ_ONLY		= 134
uint WILD_CARDS_IN_CREATE_FILE_NAME		= 135
uint INVALID_FILE_HANDLE			= 136
uint NO_SEARCH_PRIVILEGES			= 137
uint NO_DELETE_PRIVILEGES			= 138
uint NO_RENAME_PRIVILEGES			= 139
uint NO_MODIFY_PRIVILEGES			= 140
uint SOME_FILES_AFFECTED_IN_USE			= 141
uint NO_FILES_AFFECTED_IN_USE			= 142
uint SOME_FILES_AFFECTED_READ_ONLY		= 143
uint NO_FILES_AFFECTED_READ_ONLY		= 144
uint SOME_FILES_RENAMED_NAME_EXISTS		= 145
uint NO_FILES_RENAMED_NAME_EXISTS		= 146
uint NO_READ_PRIVILEGES				= 147
uint NO_WRITE_PRIVILEGES_OR_READONLY		= 148
uint FILE_DETACHED				= 149
uint SERVER_OUT_OF_MEMORY			= 150
uint NO_DISK_SPACE_FOR_SPOOL_FILE		= 151
uint VOLUME_DOES_NOT_EXIST			= 152
uint DIRECTORY_FULL				= 153
uint ERR_DIRECTORY_FULL				= 153
uint RENAMING_ACROSS_VOLUMES			= 154
uint BAD_DIRECTORY_HANDLE			= 155
uint INVALID_PATH				= 156
uint NO_MORE_TRUSTEES				= 156
uint NO_MORE_DIRECTORY_HANDLES		= 157
uint INVALID_FILENAME				= 158
uint DIRECTORY_ACTIVE				= 159
uint DIRECTORY_NOT_EMPTY			= 160
uint DIRECTORY_IO_ERROR				= 161
uint READ_FILE_WITH_RECORD_LOCKED		= 162
uint NW_BAD_DISK_NUMBER			= 163
uint NW_UNUSED_DISK_NUMBER			= 164
uint SEARCH_DRIVE_VECTOR_FULL			= 176
uint DRIVE_IS_NOT_MAPPED			= 177
uint CANT_MAP_LOCAL_DRIVE			= 178
uint INVALID_MAP_TYPE				= 179
uint INVALID_DRIVE_LETTER			= 180
uint NO_DRIVE_AVAILABLE				= 181
uint WORKSTATION_OUT_OF_MEMORY		= 182
uint NO_SUCH_SEARCH_DRIVE			= 183
uint PATH_ENVIRON_VARIABLE_INVALID		= 184
uint NO_ACCT_PRIVLEGES				= 192
uint LOGIN_DENIED_NO_ACCOUNT_BALANCE		= 193
uint NO_ACCT_BALANCE				= 193
uint ACCT_CREDIT_LIMIT_EXCEEDED			= 194
uint LOGIN_DENIED_NO_CREDIT			= 194
uint ACCT_TOO_MANY_HOLDS			= 195
uint INTRUDER_DETECTION_LOCK			= 197
uint NO_CONSOLE_OPERATOR			= 198
uint PASSWORD_NOT_UNIQUE			= 215
uint PASSWORD_TOO_SHORT			= 216
uint LOGIN_DENIED_NO_CONNECTION		= 217
uint UNAUTHORIZED_LOGIN_TIME			= 218
uint UNAUTHORIZED_LOGIN_STATION		= 219
uint ACCOUNT_DISABLED				= 220
uint PASSWORD_HAS_EXPIRED_NO_GRACE		= 222
uint PASSWORD_HAS_EXPIRED			= 223
uint NOT_ITEM_PROPERTY				= 232
uint WRITE_PROPERTY_TO_GROUP			= 232
uint MEMBER_ALREADY_EXISTS			= 233
uint NO_SUCH_MEMBER				= 234
uint NOT_GROUP_PROPERTY			= 235
uint NO_SUCH_SEGMENT				= 236
uint PROPERTY_ALREADY_EXISTS			= 237
uint OBJECT_ALREADY_EXISTS			= 238
uint INVALID_NAME				= 239
uint WILD_CARD_NOT_ALLOWED			= 240
uint IPX_NOT_INSTALLED				= 240
uint INVALID_BINDERY_SECURITY			= 241
uint NO_OBJECT_READ_PRIVILEGE			= 242
uint NO_OBJECT_RENAME_PRIVILEGE			= 243
uint NO_OBJECT_DELETE_PRIVILEGE			= 244
uint NO_OBJECT_CREATE_PRIVILEGE			= 245
uint NO_PROPERTY_DELETE_PRIVILEGE		= 246
uint NOT_SAME_LOCAL_DRIVE			= 246
uint NO_PROPERTY_CREATE_PRIVILEGE		= 247
uint TARGET_DRIVE_NOT_LOCAL			= 247
uint ALREADY_ATTACHED_TO_SERVER		= 248
uint NO_PROPERTY_WRITE_PRIVILEGE		= 248
uint NOT_ATTACHED_TO_SERVER			= 248
uint NO_FREE_CONNECTION_SLOTS			= 249
uint NO_PROPERTY_READ_PRIVILEGE			= 249
uint NO_MORE_SERVER_SLOTS			= 250
uint TEMP_REMAP_ERROR				= 250
uint INVALID_PARAMETERS			= 251
uint NO_SUCH_PROPERTY				= 251
uint UNKNOWN_REQUEST_				= 251
uint INTERNET_PACKET_REQT_CANCELED		= 252
uint UNKNOWN_FILE_SERVER			= 252
uint MESSAGE_QUEUE_FULL			= 252
uint NO_SUCH_OBJECT				= 252
uint BAD_STATION_NUMBER			= 253
uint INVALID_PACKET_LENGTH			= 253
uint UNKNOWN_REQUEST				= 253
uint FIELD_ALREADY_LOCKED			= 253
uint TTS_DISABLED				= 253
uint FSCOPY_DIFFERENT_NETWORKS			= 253
uint BINDERY_LOCKED				= 254
uint DIRECTORY_LOCKED				= 254
uint INVALID_SEMAPHORE_NAME_LENGTH		= 254
uint IMPLICIT_TRANSACTION_ACTIVE		= 254
uint PACKET_NOT_DELIVERABLE			= 254
uint SERVER_BINDERY_LOCKED			= 254
uint SOCKET_TABLE_FULL				= 254
uint SPOOL_DIRECTORY_ERROR			= 254
uint SUPERVISOR_HAS_DISABLED_LOGIN		= 254
uint TIMEOUT_FAILURE				= 254
uint TRANSACTION_ENDS_RECORDS_LOCKED		= 254
uint BAD_PRINTER_ERROR				= 255
uint BAD_RECORD_OFFSET				= 255
uint BINDERY_FAILURE				= 255
uint CLOSE_FCB_ERROR				= 255
uint EXPLICIT_TRANSACTION_ACTIVE		= 255
uint EXPLICIT_TRANSACTION_NOT_ACTIVE		= 255
uint FILE_EXTENSION_ERROR			= 255
uint FILE_NAME_ERROR				= 255
uint HARDWARE_FAILURE				= 255
uint INVALID_DIRECTORY_HANDLE			= 255
uint INVALID_DRIVE_NUMBER			= 255
uint INVALID_INITIAL_SEMAPHORE_VALUE		= 255
uint INVALID_SEMAPHORE_HANDLE			= 255
uint IO_BOUND_ERROR				= 255
uint NO_FILES_FOUND_ERROR			= 255
uint NO_RECORD_FOUND				= 255
uint NO_RESPONSE_FROM_SERVER			= 255
uint NO_SUCH_OBJECT_OR_BAD_PASSWORD		= 255
uint OLD_BETA_OR_BAD_DLL_PATH			= 255
uint PATH_ALREADY_EXISTS			= 255
uint PATH_NOT_LOCATABLE			= 255
uint QUEUE_FULL_ERROR				= 255
uint REQUEST_NOT_OUTSTANDING			= 255
uint SOCKET_ALREADY_OPEN			= 255
uint SOCKET_CLOSED				= 255
uint TRANSACTION_NOT_YET_WRITTEN		= 255
uint INVALID_CONNECTION_ID			= 257

//errors numbers 512 through 1023 are reserved for user interface

uint UNEXPECTED_INTERNAL_CONDITION		= 2989
uint ENVIRONMENT_OVERFLOW			= 65535
uint NO_SUCH_ENVIRON_VARIABLE			= 65535

$#2+KFile Services

File Services Global Contants		File Services Structures

EraseFiles			FileServerFileCopy
GetExtendedFileAttributes		PurgeAllErasedFiles
PurgeErasedFiles			PurgeSalvagableFile
RecoverSalvagableFile		RestoreErasedFile
ScanFileEntry			ScanFileInformation
ScanFilePhysical			ScanSalvagableFiles
SetExtendedFileAttributes		SetFileInformation

$#2+KFile Server Environment Services

File Server Environment Services Structures

CheckConsolePrivileges		CheckNetWareVersion
ClearConnectionNumber		DisableFileServerLogin
DisableTransactionTracking		DownFileServer
EnableFileServerLogin		EnableTransactionTracking
GetConnectionsOpenFiles		GetConnectionsSemaphores
GetConnectionsTaskInformation	GetConnectionsUsageStats
GetConnectionsUsingFile		GetDiskCacheStats
GetDiskChannelStats		GetDiskUtilization
GetDriveMappingTable		GetFileServerDateAndTime
GetFileServerDescriptionStrings	GetFileServerLANIOStats
GetFileServerLoginStatus		GetFileServerMiscInformation
GetFileServerName			GetFileSystemStats
GetLANDriverConfigInfo		GetLogicalRecordInformation
GetLogicalRecordByConnection	GetPathFromDirectoryEntry
GetPhysicalDiskStats		GetPhysicalRecordLocksByFile
GetPhysRecLockByConnectAndFile	GetSemaphoreInformation
GetServerInformation		SendConsoleBroadcast
SetFileServerDateAndTime

$#2+KMessage Services

BroadcastToConsole		CheckPipeStatus
CloseMessagePipe			DisableBroadcasts
EnableBroadcasts			GetBroadcastMessage
GetBroadcastMode			GetPersonalMessage
LogNetWorkMessage		OpenMessagePipe
SendBroadcastMessage		SendPersonalMessage
SetBroadcastMode

$#2+KMiscellaneous Services

ASCIIZToLenStr			ConvertNameToFullPath
ConvertNameToVolumePath		GetFullPath
GetNetworkSerialNumber		IntSwap
IsV3Supported			LenToASCIIZStr
LongSwap			ParsePath
StripFileServerFromPath		VerifyNetworkSerialNumber

$#2+KName Space Services

//All Name Space functions apply to NetWare 3.x/4.x only

Name Space Services Global Constants

FillNameSpaceBuffer		GetDataStreamInfo
GetNameSpaceEntry		GetNameSpaceInfo
GetNumNameSpaceAndDataStreams

$#2+KPrint Services

Print Services Global Constants	Print Services Structures

CancelLPTCapture			CancelSpecificLPTCapture
EndLPTCapture			EndSpecificLPTCapture
FlushLPTCapture			FlushSpecificLPTCapture
GetBannerUserName		GetDefaultCaptureFlags
GetDefaultLocalPrinter		GetLPTCaptureStatus
GetPrinterQueue			GetPrinterStatus
GetSpecificCaptureFlags		SetBannerUserName
SetCapturePrintJob			SetCapturePrintQueue
SetDefaultCaptureFlags		SetDefaultLocalPrinter
SetSpecificCaptureFlags		SetSpoolFlags
SpecifyCaptureFile			StartLPTCapture
StartSpecificLPTCapture

$#2+KPrint Server Services

Print Server Services Global Constants	Print Server Services Structures

PSAbortPrintJob			PSAddNotifyObject
PSAddQueueToPrinter		PSAttachPrintServerToFileServer
PSAttachToPrintServer		PSCancelDownRequest
PSChangeNotifyInterval		PSChangeQueuePriority
PSChangeServiceMode		PSDeleteNotifyObject
PSDeleteQueueFromPrinter		PSDetachFromPrintServer
PSDetachPrtServerFromFileServer	PSDownPrintServer
PSEjectForm			PSGetAttachedServers
PSGetNextRemotePrinter		PSGetNotifyObject
PSGetPrintersServicingQueue		PSGetPrinterStatus
PSGetPrintJobStatus		PSGetPrintServerInfo
PSGetQueuesServiced		PSLoginToPrintServer
PSMarkTopOfForm			PSRequestRemotePrinter
PSRewindPrintJob			PSSetMountedForm
PSSetRemoteMode			PSStartPrinter
PSStopPrinter

$#2+KPrint Queue Services

Print Queue Services Global Constants	Print Queue Services Structures

AbortServicingQueueJobAndFile	AttachQueueServerToQueue
ChangeQueueJobEntry		ChangeQueueJobPosition
ChangeToClientRights		CloseFileAndAbortQueueJob
CloseFileAndStartQueueJob		CreateQueue
CreateQueueJobAndFile		DestroyQueue
DetachQueueServerFromQueue	FinishServicingQueueJobAndFile
GetQueueJobList			GetQueueJobsFileSize
ReadQueueCurrentStatus		ReadQueueJobEntry
ReadQueueServerCurrentStatus	RemoveJobFromQueue
RestoreQueueServerRights		ServiceQueueJobAndOpenFile
SetQueueCurrentStatus		SetQueueServerCurrentStatus

$#2+KService Advertising Protocol

Service Advertising Protocol Structures

AdvertiseService			QueryServices
ShutdownSAP

$#2+KSynchronization Services

ClearFile				ClearFileSet
ClearLogicalRecord			ClearLogicalRecordSet
ClearPhysicalRecord		ClearPhysicalRecordSet
CloseSemaphore			ExamineSemaphore
GetLockMode			LockFileSet
LockLogicalRecordSet		LockPhysicalRecordSet
LogFile				LogLogicalRecord
LogPhysicalRecord			OpenSemaphore
ReleaseFile			ReleaseFileSet
ReleaseLogicalRecord		ReleaseLogicalRecordSet
ReleasePhysicalRecord		ReleasePhysicalRecordSet
SetLockMode			SignalSemaphore
WaitOnSemaphore

$#2+KTransaction Tracking Services

Transaction Tracking Services Structures

TTSAbortTransaction		TTSBeginTransaction
TTSEndTransaction		TTSGetApplicationThresholds
TTSGetStats			TTSGetWorkstationThresholds
TTSIsAvailable			TTSSetApplicationThresholds
TTSSetWorkstationThresholds	TTSTransactionStatus

$#2+KWorkstation Environment Services

EndOfJob			GetConnectionID
GetDefaultConnectionID		GetNetWareShellVersion
GetNumberOfLocalDrives		GetPreferredConnectionID
GetPrimaryConnectionID		GetWorkstationEnvironment
IsConnectionIDInUse		SetEndOfJobStatus
SetNetWareErrorMode		SetPreferredConnectionID
SetPrimaryConnectionID

$#2+KAccountingInstalled

Function Integer AccountingInstalled ( int ConnectionID ) Library "NWNETAPI.DLL"

$#2+KGetAccountStatus

Function Integer GetAccountStatus ( int BinderyObjectType, string BinderyObjectName, ref int Balance, ref int Limit, ref int Holds ) Library "NWNETAPI.DLL"

$#2+KSubmitAccountCharge

Function Integer SubmitAccountCharge  ( int BinderyObjectType, string
BinderyObjectName, int ServiceType, int ChargeAmount, int CancelHoldAmount, int CommentType, string Comment ) Library "NWNETAPI.DLL"

$#2+KSubmitAccountHold

Function Integer SubmitAccountHold ( int BinderyObjectType, string 
BinderyObjectName, int ReserveAmount ) Library "NWNETAPI.DLL"

$#2+KSubmitAccountNote

Function Integer SubmitAccountNote ( int BinderyObjectType, string 
BinderyObjectName, int ServiceType, int CommentType, int CommentLen, string 
Comment ) Library "NWNETAPI.DLL"

$#2+KAccounting Services Global Constants

int CHARGE_RECORD			= 1
int NOTE_RECORD				= 2

int CONNECT_TIME_CHARGE_NOTE		= 1
int DISK_STORAGE_CHARGE_NOTE		= 2
int LOGIN_NOTE				= 3
int LOGOUT_NOTE			= 4
int ACCOUNT_LOCKED_NOTE		= 5
int SERVER_TIME_MODIFIED_NOTE		= 6

$#2+KAFPAllocTemporaryDirHandle

Function Integer AFPAllocTemporaryDirHandle ( int ConnectionID, int VolumeNum, int AFPEntryID, string AFPPathString, int NetWareDirectoryHandle, int AccessRights ) LIBRARY "NWNETAPI.DLL"

$#2+KAFPCreateDirectory

Function Integer AFPCreateDirectory ( int ConnectionID, int VolumeNum, long AFPEntryID, AFP_FINDER_INFO FinderInfo, ref string AFPPathString, ref int NewAFPEntryID ) Library "NWNETAPI.DLL"

$#2+KAFPCreateFile

Function Integer AFPCreateFile ( int ConnectionID, int VolumeNum, long AFPEntryID, int DeleteExistingFile, long FinderInfo, string AFPPathString, long NewAFPEntryID ) Library "NWNETAPI.DLL"

$#2+KAFPDelete

Function Integer AFPDelete ( int ConnectionID, int VolumeNum, long AFPEntryID, string AFPPathString ) Library "NWNETAPI.DLL"

$#2+KAFPDirectoryEntry

Function Integer AFPDirectoryEntry ( int ConnectionID, int DirectoryHandle, string PathName ) Library "NWNETAPI.DLL"

$#2+KAFPGetEntryIDFromName

Function Integer AFPGetEntryIDFromName ( int ConnectionID, int VolumeNum, long AFPEntryID, string AFPPathString, ref long NewAFPEntryID ) Library "NWNETAPI.DLL"

$#2+KAFPGetEntryIDFromNetWareHandle

Function Integer AFPGetEntryIDFromNetWareHandle ( FILE_HANDLE NetWareHandle, ref int VolumeNum, ref long AFPEntryID, ref int ForkIndicator ) Library "NWNETAPI.DLL"

$#2+KAFPGetEntryIDFromPathName

Function Integer AFPGetEntryIDFromPathName ( int ConnectionID, long DirectoryHandle, string PathName, ref long AFPEntryID ) Library "NWNETAPI.DLL"

$#2+KAFPGetFileInformation

Integer Function AFPGetFileInformation ( int ConnectionID, int VolumeNum, long AFPEntryID, int RequestBitMap, string AFPPathString, int StructSize, AFP_FILE_INFO AFPFileInfo ) Library "NWNETAPI.DLL"

$#2+KAFPOpenFileFork

Function Integer AFPOpenFileFork ( int ConnectionID, int VolumeNum, long AFPEntryID, int ForkIndicator, int AccessMode, string AFPPathString, ref long FileID, ref long ForkLength, ref int NetWareHandle, ref int FileHandle ) Library "NWNETAPI.DLL"

$#2+KAFPRename

Function Integer AFPRename ( int ConnectionID, int VolumeNum, long AFPSourceEntryID, long AFPDestEntryID, string AFPSourcePath, string AFPDestPath) Library "NWNETAPI.DLL"

$#2+KAFPScanFileInformation

Function Integer AFPScanFileInformation ( int ConnectionID, int VolumeNum, long AFPEntryID, ref long AFPLastSeenID, int SearchBitMap, int RequestBitMap, string AFPPath, int StructSize, AFP_FILE_INFO AFPFileInfo ) Library "NWNETAPI.DLL"

$#2+KAFPSetFileInformation

Function Integer AFPSetFileInformation ( int ConnectionID, int VolumeNum, long AFPEntryID, int RequestBitMap, string AFPPathString, int StructSize, AFP_SET_INFO AFPSetInfo ) Library "NWNETAPI.DLL"

$#2+KAFPSupported

Function Integer AFPSupported ( int ConnectionID ) Library "NWNETAPI.DLL"

$#2+KAFPS Structures

FILE_HANDLE
AFP_FINDER_INFO
AFP_FILE_INFO
AFP_SET_INFO

$#2+KFILE_HANDLE

Handle			string

$#2+KAFP_FINDER_INFO

Info			string

$#2+KAFP_FILE_INFO

EntryID			long
ParentID			long
Attributes		integer
DataForkLength		long
ResourceForkLength	long
NumOffspring		integer
CreationDate		integer
AccessDate		integer
ModifyDate		integer
ModifyTime		integer
BackupDate		integer
BackupTime		integer
FinderInfo		AFP_FINDER_INFO
Longname		string
Pad1			string
OwnerID			long
ShortName		string
Pad2			string
AccessPrivileges		integer

$#2+KAFP_SET_INFO

Attributes		integer
CreationDate		integer
AccessDate		integer
ModifyDate		integer
ModifyTime		integer
BackupDate		integer
BackupTime		integer
FinderInfo		AFP_FINDER_INFO

$#2+KAddBinderyObjectToSet

Function Integer AddBinderyObjectToSet ( string ObjectName, int ObjectType, string PropertyName, string MemberName, int MemberType ) Library "NWNETAPI.DLL"

$#2+KChangeBinderyObjectPassword

Function Integer ChangeBinderyObjectPassword ( string ObjectName, int ObjectType, string OldPassword, string NewPassword ) Library "NWNETAPI.DLL"

$#2+KChangeBinderyObjectSecurity

Function Integer ChangeBinderyObjectSecurity ( string ObjectName, int ObjectType, int NewObjectSecurity ) Library "NWNETAPI.DLL"

$#2+KChangePropertySecurity

Function Integer ChangePropertySecurity ( string ObjectName, int ObjectType, string PropertyName, int NewPropertySecurity ) Library "NWNETAPI.DLL"

$#2+KCloseBindery

Function Integer CloseBindery ( ) Library "NWNETAPI.DLL"

$#2+KCreateBinderyObject

Function Integer CreateBinderyObject ( string ObjectName, int ObjectType, int ObjectFlag, int ObjectSecurity ) Library "NWNETAPI.DLL"

$#2+KCreateProperty

Function Integer CreateProperty ( string ObjectName, int ObjectType, string PropertyName, int PropertyFlags, int PropertySecurity ) Library "NWNETAPI.DLL"

$#2+KDeleteBinderyObject

Function Integer DeleteBinderyObject ( string ObjectName, int ObjectType ) Library "NWNETAPI.DLL"

$#2+KDeleteBinderyObjectFromSet

Function Integer DeleteBinderyObjectFromSet ( string ObjectName, int ObjectType, string PropertyName, string MemberName, int MemberType ) Library "NWNETAPI.DLL"

$#2+KDeleteProperty

Function Integer DeleteProperty ( string ObjectName, int ObjectType, string PropertyName ) Library "NWNETAPI.DLL"

$#2+KGetBinderyAccessLevel

Function Integer GetBinderyAccessLevel  ( ref int SecurityAccessLevel, ref long ObjectID ) Library "NWNETAPI.DLL"

$#2+KGetBinderyObjectDiskSpaceLeft

Function Integer GetBinderyObjectDiskSpaceLeft ( int ConnectionID, int BinderyObjectID, long SystemElapsedTime, ref long UnusedDiskBlocks, ref int RestrictionEnforced ) Library "NWNETAPI.DLL"

$#2+KGetBinderyObjectID

Function Integer GetBinderyObjectID ( string ObjectName, int ObjectType, ref long ObjectID ) Library "NWNETAPI.DLL"

$#2+KGetBinderyObjectName

Function Integer GetBinderyObjectName ( long ObjectID, string ObjectName, ref int ObjectType ) Library "NWNETAPI.DLL"

$#2+KIsBinderyObjectInSet

Function Integer IsBinderyObjectInSet ( string ObjectName, int ObjectType, string PropertyName, string MemberName, int MemberType ) Library "NWNETAPI.DLL"

$#2+KOpenBindery

Function Integer OpenBindery ( ) Library "NWNETAPI.DLL"

$#2+KReadPropertyValue

Function Integer ReadPropertyValue ( string ObjectName, int ObjectType, string PropertyName, int SegmentNumber, PROPERTY_VALUE PropertyValue, ref int MoreSegments, ref int PropertyFlags ) Library "NWNETAPI.DLL"

$#2+KRenameBinderyObject

Function Integer RenameBinderyObject ( string ObjectName, string NewObjectName, int ObjectType ) Library "NWNETAPI.DLL"

$#2+KScanBinderyObject

Function Integer ScanBinderyObject ( string SearchObjectName, int SearchObjectType, ref long ObjectID, string ObjectName, int ObjectType, ref int ObjectHasProperties, ref int ObjectFlag, ref int ObjectSecurity ) Library "NWNETAPI.DLL"

$#2+KScanBinderyObjectTrusteePaths

Function Integer ScanBinderyObjectTrusteePaths ( long ObjectID, int VolumeNumber, ref int SequenceNumber, ref int TrusteeAccessMask, string TrusteePathName ) Library "NWNETAPI.DLL"

//TrusteePathName must be initialized to 255 characters

$#2+KScanProperty

Function Integer ScanProperty ( string ObjectName, int ObjectType, string SearchPropertyName, ref long SequenceNumber, string PropertyName, ref int PropertyFlags, ref int PropertySecurity, ref int PropertyHasValue, ref int MoreProperties ) Library "NWNETAPI.DLL"

$#2+KVerifyBinderyObjectPassword

Function Integer VerifyBinderyObjectPassword ( string ObjectName, int ObjectType, string Password ) Library "NWNETAPI.DLL"

$#2+KWritePropertyValue

Function Integer WritePropertyValue ( string objectName, int ObjectType, string PropertyName, int SegmentNumber,  PROPERTY_VALUE PropertyValue, int MoreSegments ) Library "NWNETAPI.DLL"

$#2+KBindary Services Global Constants

ObjectType
ObjectSecurity
PropertyHasValue

$#2KObjectType

int OT_WILD				= -1 // Matches any type
int OT_UNKNOWN			= 0  // Unknown object type
int OT_USER				= 1  // The object is a "user"
int OT_USER_GROUP			= 2  // A group of users
int OT_PRINT_QUEUE			= 3  // Services print queues
int OT_FILE_SERVER			= 4  // The object serves files
int OT_JOB_SERVER			= 5
int OT_GATEWAY				= 6
int OT_PRINT_SERVER			= 7
int OT_ARCHIVE_QUEUE			= 8
int OT_ARCHIVE_SERVER			= 9  // Services backup jobs
int OT_JOB_QUEUE			= 10
int OT_ADMINISTRATION			= 11
int OT_NAS_SNA_GATEWAY		= 33
int OT_NACS				= 35
int OT_REMOTE_BRIDGE_SERVER		= 36
int OT_BRIDGE_SERVER			= 38
int OT_TCPIP_GATEWAY			= 39
int OT_GATE				= 41
int OT_TIME_SYNCHRONIZATION_SERVER	= 45
int OT_ARCHIVE_SRV			= 46
int OT_ADVERTISING_PRINT_SERVER		= 71
int OT_BTRIEVE_VAP_NLM_5XX		= 75
int OT_SQL_VAP_NLM			= 76
int OT_XTREE_NETWORK			= 77
int OT_BTRIEVE_VAP_NLM_4XX		= 80
int OT_APPLETALK_GATEWAY		= 83
int OT_X25_GATEWAY			= 88
int OT_WAN_COPY				= 114
int OT_TES_NETWARE_VMS			= 122
int OT_NETWARE_ACCESS_SERVER		= 152
int OT_PORTABLE_NETWARE			= 158
int OT_COMPAQ_IDA_STATUS_MONITOR	= 172
int OT_NETWARE_386_SERVER		= 263
int OT_CSA_MUX				= 276
int OT_CSA_LCA				= 277
int OT_CSA_CM				= 278
int OT_CSA_SMA				= 279
int OT_CSA_DBA				= 280
int OT_CSA_NMA				= 281
int OT_CSA_SSA				= 282
int OT_CSA_STATUS			= 283
int OT_CSA_APPC				= 286
int OT_SNA_TEST				= 294
int OT_CSA_TRACE				= 298
int OT_COMMUNICATIONS_EXECUTIVE		= 304
int OT_NNS_DOMAIN			= 307
int OT_NNS_PROFILE			= 309
int OT_NNS_QUEUE				= 311
int OT_WORDPERFECT_NETWORK		= -2184

$#2KObjectSecurity

int BS_ANY_READ		= 0 // Readable by anyone
int BS_LOGGED_READ		= 1 // Must be logged in to read
int BS_OBJECT_READ		= 2 // Readable by same object or super
int BS_SUPER_READ		= 3 // Readable by supervisor only
int BS_BINDERY_READ		= 4 // Readable only by the bindery
int BS_ANY_WRITE		= 0 // Writeable by anyone
int BS_LOGGED_WRITE		= 16 // Must be logged in to write
int BS_OBJECT_WRITE		= 32 // Writeable by same object or super
int BS_SUPER_WRITE		= 48 // Writeable only by the supervisor
int BS_BINDERY_WRITE		= 64 // Writeable by the bindery only

$#2KPropertyHasValue

int BF_STATIC			= 0
int BF_DYNAMIC			= 1
int BF_ITEM			= 0
int BF_SET			= 2

$#2+KBindary Services Structures

PROPERTY_VALUE

$#2KPROPERTY_VALUE

PropertyValue[ ]		string

$#2+KAttachToFileServer

Function Integer AttachToFileServer ( string ServerName, ref int ConnectionID ) Library "NWNETAPI.DLL"

$#2+KAttachToFileServerWithAddress

Function Integer AttachToFileServerWithAddress ( string ServerName, ref int ConnectionID, int NetAddress ) Library "NWNETAPI.DLL"

$#2+KDetachFromFileServer

Function Integer DetachFromFileServer ( int ConnectionID ) Library "NWNETAPI.DLL"

$#2+KEnterLoginArea

Function Integer EnterLoginArea ( string LoginSubdirectoryName, int NumberOfLocalDrives ) Library "NWNETAPI.DLL"

$#2+KGetConnectionInformation

Function Integer GetConnectionInformation ( long ConnectionNumber, string ObjectName, ref int ObjectType, ref int ObjectID, ref DATE_AND_TIME loginTime ) Library "NWNETAPI.DLL"

$#2+KGetConnectionNumber

Function Long GetConnectionNumber ( ) Library "NWNETAPI.DLL"

$#2+KGetInternetAddress

Function Integer GetInternetAddress ( long ConnectionNumber, ref long NetworkNumber, ref NodeAddress PhysicalNodeAddress, ref int SocketNumber ) Library "NWNETAPI.DLL"

$#2+KGetObjectConnectionNumbers

Function Integer GetObjectConnectionNumbers ( string ObjectName, int ObjectType, ref long NumberOfConnections, ref long ConnectionList, long MaxConnections ) Library "NWNETAPI.DLL"

$#2+KGetStationAddress

Function Integer GetStationAddress ( ref NodeAddress PhysicalNodeAddress ) Library "NWNETAPI.DLL"

$#2+KLoginToFileServer

Function Integer LoginToFileServer ( string ObjectName, int ObjectType, string ObjectPassword ) Library "NWNETAPI.DLL"

$#2+KLogout

Function Integer Logout ( ) Library "NWNETAPI.DLL"

$#2+KLogoutFromFileServer

Function Integer LogoutFromFileServer ( int ConnectionID ) Library "NWNETAPI.DLL"

$#2+KConnection Services Structures

DATE_AND_TIME

$#2KDATE_AND_TIME

Year	string
Month	string
Date	string
Hour	string
Minute	string
Second	string
Day	string

$#2+KAbortSendingPackets

Function Integer AbortSendingPackets ( int ConnectionID, int ComponentNumber ) Library "NWIPXSPX.DLL"

$#2+KGetIPXSPXVersion

Function Integer GetIPXSPXVersion ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref ReturnReceivedPacketStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetIPXStatistics

Function Integer GetIPXStatistics ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref IPXStatisticsStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetSPXStatistics

Function Integer GetSPXStatistics ( int ConnectionID, int 
ComponentNumber, ref AllResponseData Response, ref SPXStatisticsStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KStartCountingPkts

Function Integer StartCountingPkts ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref StartCountingPacketsStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KStartSendingPkts

Function Integer StartSendingPktsTimed ( int ConnectionID, int ComponentNumber, ref SendPacketsRequestStruct RequestData, ref AllResponseData Response, ref SendPacketsResponseStruct ResponseData, int Ticks ) Library "NWIPXSPX.DLL"

$#2+KGetBridgeDriverConfiguration

Function Integer GetBridgeDriverConfiguration ( int ConnectionID, int ComponentNumber, int LANBoardNumber, ref AllResponseData Response, ref DriverConfigurationStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetBridgeDriverStatistics

Function Integer GetBridgeDriverStatistics ( int ConnectionID, int ComponentNumber, int LANBoardNumber, ref AllResponseData Response, ref DriverStatisticsStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetBridgeDriverStatus

Function Integer GetBridgeDriverStatus ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref BridgeDriverStatusStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetShellDriverConfiguration

Function Integer GetShellDriverConfiguration ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref DriverConfigurationStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetShellDriverStatistics

Function Integer GetShellDriverStatistics ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref DriverStatisticsStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KBeginDiagnostics

Function Integer BeginDiagnostics ( ref BeginDiagnosticStruct Destination, ref int ConnectionID, ref ComponentList CompList ) Library "NWIPXSPX.DLL"

$#2+KEndDiagnostics

Function Integer EndDiagnostics ( int ConnectionID ) Library "NWIPXSPX.DLL"

$#2+KFindComponentOffset

Function Integer FindComponentOffset ( ref ComponentList CompList, int ComponentID ) Library "NWIPXSPX.DLL"

$#2+KGetOSVersionInfo

Function Integer GetOSVersionInfo ( int ConnectionID, int ComponentNumber, ref AllResponseData response, ref OSVersionStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetServerAddressTable

Function Integer GetServerAddressTable ( int ConnectionID, int ComponentNumber,  ref AllResponseData Response, ref ServerAddressTableStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetServerNameTable

Function Integer GetServerNameTable ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref ServerNameTableStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetShellAddress

Function Integer GetShellAddress ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref IPXAddress ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetShellStatistics

Function Integer GetShellStatistics ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref ShellStatisticsStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetAllKnownNetWorks

Function Integer GetAllKnownNetWorks ( int ConnectionID, int ComponentNumber, int NextNetworkOffset, ref AllResponseData Response, ref AllKnownNetworksStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetBridgeStatistics

Function Integer GetBridgeStatistics ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref BridgeStatisticsStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetLocalTables

Function Integer GetLocalTables ( int ConnectionID, int 
ComponentNumber, ref AllResponseData Response, ref LocalTablesStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetSpecificNetworkInfo

Function Integer GetSpecificNetworkInfo ( int ConnectionID, int ComponentNumber, ref long NetworkAddress, ref SpecificNetworkInfoStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KDiagnostic Services Global Constants

int MAX_NETWORKS				= 120
int MAX_SERVERS				= 150
int MAX_NODES					= 120
int MAX_EXCLUSIONS				= 80

int MAX_COMPONENTS				= 10
int MAX_LOCAL_NETWORKS			= 4
int MAX_ROUTES					= 47

int MAX_IPX_PACKET_SIZE			= 576

int IPX_SPX_COMPONENT				= 0
int BRIDGE_DRIVER_COMPONENT			= 1
int SHELL_DRIVER_COMPONENT			= 2
int SHELL_COMPONENT				= 3
int VAP_SHELL_COMPONENT			= 4
int BRIDGE_COMPONENT				= 5
int FILE_SERVER_COMPONENT			= 6
int NONDEDICATED_IPX_SPX_COMPONENT		= 7
int IPX_ONLY					= 8

int NO_ERRORS					= 0
int COULD_NOT_GET_LOCAL_TARGET		= 255
int COULD_NOT_OPEN_SOCKET			= 254
int COULD_NOT_BEGIN_CONNECTION		= 253
int COULD_NOT_ESTABLISH_CONNECTION		= 252
int COULD_NOT_TERMINATE_CONNECTION		= 251
int BAD_CONNECTION_ID				= 250
int COULD_NOT_SEND_REQUEST			= 249
int RECEIVED_REPLY_IN_ERROR			= 248
int NETWORK_NOT_FOUND				= 239
int NO_RESPONSE_FROM_DESTINATION		= 238
int RESPONSE_COMPLETION_CODE_BAD		= 237
int LIST_SIZE_TOO_SMALL				= 236
int INTERNAL_LIST_ERROR				= 235
int NODE_NOT_FOUND_OR_NO_RESPONSE		= 234
int MEMORY_ALLOCATION_ERROR			= 233
int VERSION_DOES_NOT_SUPPORT			= 232

$#2+KDiagnostic Services Structures

NodeAddress
IPXAddress
IPXHeader 
SPXHeader
ECBFragment
ECB
CONNECTION_INFO
BeginDiagnosticStruct
AllResponseData
IPXSPXVersion
IPXStatisticsStruct
SPXStatisticsStruct
ReturnReceivedPacketStruct
StartCountingPacketsStruct
SendPacketsRequestStruct
SendPacketsResponseStruct
DriverConfigurationStruct
DriverStatisticsStruct
BridgeDriverStatusStruct
ComponentList
OSVersionStruct
PrimaryServerStruct
ServerAddressTableStruct
ServerNameTableStruct
ShellStatisticsStruct
ShellVersionStruct
AllKnownNetworksStruct
ServerInfoStruct
AllKnownServersStruct
BridgeStatisticsStruct
LOCAL_ADDRESS
RoutingInfoStruct
SpecificNetworkInfoStruct
RouteSourceInfoStruct
SpecificServerInfoStruct

$#2KNodeAddress

NodeHi		long
NodeLo		integer

$#2KIPXAddress

Network			long
NodeAddr		NodeAddress
Socket			integer

$#2KIPXHeader

CheckSum		integer
Length			integer
TransportControl		string
PacketType		string
Destination		IPXAddress
Source			IPXAddress

$#2KSPXHeader

CheckSum			integer
Length				integer
TransportControl			string
PacketType			string
Destination			IPXAddress
Source				IPXAddress
ConnectionControl			string
DataStreamType			string
SourceConnectionID		integer //high-low unsigned
DestConnectionID			integer //high-low unsigned
SequenceNumber			integer //high-low unsigned
AcknowledgeNumber		integer //high-low unsigned
AllocationNumber			integer //high-low unsigned

$#2KECBFragment

Address		long
Size		integer

$#2KECB

LinkAddress			long
EsrAddress			long
InUseFlag			string
CompletionCode			string
SocketNumber			integer
IpxWorkspace			string
DriverWorkspace			string
ImmediateAddress			IPXAddress
FragmentCount			integer
FragmentDescriptor			ECBFragment

$#2KCONNECTION_INFO

ConnectionState			string
ConnectionFlags			string
SourceConnectionID		integer //high-low byte order
DestinationConnectionID		integer //hi-lo
SequenceNumber			integer //hi-lo
AcknowlegeNumber		integer //hi-lo
AllocationNumber			integer //hi-lo
RemoteAcknowledgeNumber		integer //hi-lo
RemoteAllocationNumber		integer //hi-lo
ConnectionSocket			integer
ImmediateAddress			IPXAddress
Destination			IPXAddress
RetransmissionCount		integer //hi-lo
EstimatedRoundTripDelay		integer //hi-lo
RetransmittedPackets		integer //hi-lo
SuppressedPackets			integer //hi-lo

$#2KBeginDiagnosticStruct //same as IPXAddress

Network			long
NodeAddr		NodeAddress
Socket			integer

$#2KAllResponseData

CompletionCode	string
IntervalMarker	long

$#2KIPXSPXVersion

IPXMajorVersion		string
IPXMinorVersion		string
SPXMajorVersion		string
SPXMinorVersion		string

$#2KIPXStatisticsStruct

SendPacketCount			long
MalformedPacketCount		integer
GetECBRequestCount		long
GetECBFailureCount		long
AesEventCount			long
PostponedAESEventCount		integer
MaxConfiguredSocketsCount		integer
MaxOpenSocketsCount		integer
OpenSocketFailureCount		integer
ListenECBCount			long
EcbCancelFailureCount		integer
FindRouteFailureCount		integer

$#2KSPXStatisticsStruct

MaxConnectionsCount			integer
MaxUsedConnectionsCount			integer
EstablishConnectionRequest			integer
EstablishConnectionFailure			integer
ListenConnectionRequestCount		integer
ListenConnectionFailureCount		integer
SendPacketCount				long
WindowChokeCount			long
BadSendPacketCount			integer
SendFailureCount				integer
AbortConnectionCount			integer
ListenPacketCount				long
BadListenPacketCount			integer
IncomingPacketCount			long
BadIncomingPacketCount			integer
SuppressedPacketCount			integer
NoSessionListenECBCount			integer
WatchdogDestroySessionCount		integer

$#2KReturnReceivedPacketStruct

ReceivedPackets	integer

$#2KStartCountingPacketsStruct

DestinationSocket		integer

$#2KSendPacketsRequestStruct

Target			BeginDiagnosticStruct
ImmediateAddress		string
NumberOfPackets		integer
TimerTickInterval		string
PacketsPerTickInterval	string
PacketSize		integer
ChangeSize		integer

$#2KSendPacketsResponseStruct

NumberOfTransmitErrors	integer

$#2KDriverConfigurationStruct

NetworkAddr			long
NodeAddr			NodeAddress
LanMode			string
NodeAddressType			string
MaxDataSize			integer
Reserved1			integer
LanHardwareID			string
TransportTime			integer
Reserved2			string
MajorVersion			string
MinorVersion			string
EthernetFlagBits			string
SelectedConfiguration		string
LanDescription			string
IOAddress1			integer
IODecodeRange1			integer
IOAddress2			integer
IODecodeRange2			integer
MemoryAddress1			string
MemoryDecodeRange1		integer
MemoryAddress2			string
MemoryDecodeRange2		string
InterruptIsUsed1			string
InterruptLine1			string
InterruptIsUsed2			string
InterruptLine2			string
DMAIsUsed1			string
DMALine1				string
DMAIsUsed2			string
DMALine2				string
MicroChannelFlagBits		string
Reserved3			string
TextDescription			string

$#2KDriverStatisticsStruct

DriverVersion			string
StatisticsVersion			string
TotalTxPacketCount		long
TotalRxPacketCount		long
NoECBAvailableCount		integer
PacketTxTooBigCount		integer
PacketTxTooSmallCount		integer
PacketRxOverflowCount		integer
PacketRxTooBigCount		integer
PacketRxTooSmallCount		integer
PacketTxMiscErrorCount		integer
PacketRxMiscErrorCount		integer
RetryTxCount			integer
ChecksumErrorCount		integer
HardwareRxMismatchCount		integer
NumberOfCustomVariables		integer
VariableData			string

$#2KBridgeDriverStatusStruct

BoardStatus	string

$#2KComponentList

Components	string

$#2KOSVersionStruct

MachineID	string
VersionData	string

$#2KPrimaryServerStruct

Number	string

$#2KServerAddressTableStruct

ServerUsed		string
OrderNumber		string
ServerNetwork		long
ServerNode		NodeAddress
ServerSocket		integer
ReceivedTimeout		integer
ImmediateNode		NodeAddress
SequenceNumber		string
ConnectionNumber		long
ConnectionOK		string
MaximumTimeout		integer
Reserved		string

$#2KServerNameTableStruct

NameTable0	string
NameTable1	string
NameTable2	string
NameTable3	string
NameTable4	string
NameTable5	string
NameTable6	string
NameTable7	string

$#2KShellStatisticsStruct

ShellRequestsCount			long
OperatorAbortsCount			integer
TimeoutsCount				integer
WriteErrorCount				integer
InvalidReplyHeaderCount			integer
InvalidSlotCount				integer
InvalidSequenceNumberCount		integer
ErrorReceivingCount			integer
NoRouterFoundCount			integer
BeingProcessedCount			integer
UnknownErrorCount			integer
InvalidServerSlotCount			integer
NetworkGoneCount				integer
Reserved				integer
AllocateCannotFindRouteCount		integer
AllocateNoSlotsAvailableCount		integer
AllocateServerIsDownCount			integer

$#2KShellVersionStruct

Minor		string
Major		string
Rev		string

$#2KAllKnownNetworksStruct

NumberOfNetworkAddresses	integer
NetworkAddresses[128]	long  //up to 128 4-byte addresses

$#2KServerInfoStruct

ServerType	integer
ServerName	string

$#2KAllKnownServersStruct

NumberOfServers		integer
ServerInfo[50]		ServerInfoStruct

$#2KBridgeStatisticsStruct

TooManyHopsCount		integer
UnknownNetworkCount		integer
NoSpaceForServiceCount		integer
NoReceiveBuffersCount		integer
NotMyNetwork			integer
NetBIOSPropogateCount		long
TotalPacketsServiced		long
TotalPacketsRouted		long

$#2KLOCAL_ADDRESS

Address			string
Reserved		string

$#2KLocalTablesStruct

LocalNetNumbers[16]	long //16 4-byte net numbers
LocalNodeAddresses[16]	LOCAL_ADDRESS

$#2KRoutingInfoStruct

RouterForwardingAddress		long
RouterBoardNumber		string
Reserved			string
RouteHops			string
RouteTime			string

$#2KSpecificNetworkInfoStruct

NetworkAddress		long
HopsToNet		string
Reserved		string
RouteTimeToNet		integer
NumberOfKnownRouters	integer
RoutingInfo[47]		RoutingInfoStruct  //up to 47 structures

$#2KRouteSourceInfoStruct

RouteSourceAddress	NodeAddress
RouteHopsToSource	integer
Reserved		string

$#2KSpecificServerInfoStruct

ServerInfo		ServerInfoStruct
ServerAddress		BeginDiagnosticStruct
HopsToServer		integer
Reserved		integer
NumberOfRoutes		integer
RouteSourceInfo[47]	RouteSourceInfoStruct

$#2+KReturnReceivedPacketCount

Function Integer ReturnReceivedPacketCount ( int ConnectionID, int ComponentNumber, ref AllResponseData Response , ref ReturnReceivedPacketStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetPrimaryServerNumber

Function Integer GetPrimaryServerNumber ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref PrimaryServerStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetShellVersionInfo

Function Integer GetShellVersionInfo ( int ConnectionID, int ComponentNumber, ref AllResponseData Response, ref ShellVersionStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetAllKnownServers

Function Integer GetAllKnownServers ( int ConnectionID, int ComponentNumber, int NumberServersToSkip, ref AllResponseData Response, ref AllKnownServersStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KGetSpecificServerInfo

Function Integer GetSpecificServerInfo ( int ConnectionID, int ComponentNumber, ref ServerInfoStruct Server, ref AllResponseData Response, ref SpecificServerInfoStruct ResponseData ) Library "NWIPXSPX.DLL"

$#2+KAddTrusteeToDirectory

Function Integer AddTrusteeToDirectory ( int DirHandle, string DirPath, long TrusteeObjectID, int TrusteeRightsMask ) Library "NWNETAPI.DLL"

$#2+KAllocPermanentDirectoryHandle

Function Integer AllocPermanentDirectoryHandle ( int DirHandle, string DirPath, int DriveLetter, ref int NewDirHandle, ref int EffectiveRightsMask ) Library "NWNETAPI.DLL"

$#2+KAllocTemporaryDirectoryHandle

Function Integer AllocTemporaryDirectoryHandle ( int DirHandle, string DirPath, int DriveLetter, ref int NewDirHandle, ref int EffectiveRightsMask ) Library "NWNETAPI.DLL"

$#2+KClearVolRestrictions

Function Integer ClearVolRestrictions ( int ServerConnID, int VolNumber, long ObjectID ) Library "NWNETAPI.DLL"

$#2+KCreateDirectory

Function Integer CreateDirectory ( int DirHandle, string DirPath, int MaximumRightsMask ) Library "NWNETAPI.DLL"

$#2+KDeallocateDirectoryHandle

Function Integer DeallocateDirectoryHandle ( int DirHandle ) Library "NWNETAPI.DLL"

$#2+KDeleteDirectory

Function Integer DeleteDirectory ( int DirHandle, string DirPath ) Library "NWNETAPI.DLL"

$#2+KDeleteTrustee

Function Integer DeleteTrustee ( int ServerConnID, int DirHandle, string Path, long ObjectID ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KDeleteTrusteeFromDirectory

Function Integer DeleteTrusteeFromDirectory ( int DirHandle, string DirPath, long TrusteeObjectID ) Library "NWNETAPI.DLL"

$#2+KGetCurrentDirectory

Function Integer GetCurrentDirectory ( int DriveNumber, string Directory ) Library "NWNETAPI.DLL"

$#2+KGetDirectoryHandle

Function Integer GetDirectoryHandle ( int DriveNumber ) Library "NWNETAPI.DLL"

$#2+KGetDirectoryPath

Function Integer GetDirectoryPath ( int DirHandle, string DirPath ) Library "NWNETAPI.DLL"

//DirPath must be initialized to 255 bytes

$#2+KGetDirEntry

Function Integer GetDirEntry ( int ServerConnID, int DirHandle, ref NWDIR_ENTRY DirEntry ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KGetDirInfo

Function Integer GetDirInfo ( int ServerConnID, int DirHandle, ref NWDIR_INFO DirInfo ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KGetDriveInformation

Function Integer GetDriveInformation ( int DriveNumber, ref int ConnectionID, ref int DirHandle ) Library "NWNETAPI.DLL"

$#2+KGetEffectiveDirectoryRights

Function Integer GetEffectiveDirectoryRights ( int DirHandle, string DirPath, ref int EffectiveRightsMask ) Library "NWNETAPI.DLL"

$#2+KGetEffectiveRights

Function Integer GetEffectiveRights ( int ServerConnID, int DirHandle, string Path, ref int Rights ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KGetObjectDiskRestrictions

Function Integer GetObjectDiskRestrictions ( int ServerConnID, int VolNumber, long ObjectID, ref long VolRestrictions, ref long BlocksInUse ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KGetSearchDriveVector

Function Integer GetSearchDriveVector ( ref DRIVE_VECTOR VectorBuffer ) Library "NWNETAPI.DLL"

//VectorBuffer must be initialized to 17 bytes

$#2+KGetVolumeInformation

Function Integer GetVolumeInformation ( int ConnectionID, int VolumeNumber, int StructSize, ref VOLUME_STATS VolStats ) Library "NWNETAPI.DLL"

$#2+KGetVolumeInfoWithHandle

Function Integer GetVolumeInfoWithHandle ( int DirHandle, string VolumeName, ref int TotalBlocks, ref int SectorsPerBlock, ref int AvailableBlocks, ref int TotalDirectorySlots, ref int AvailableDirectorySlots, ref int VolumeIsRemovable ) Library "NWNETAPI.DLL"

//VolumeName must be initialized to 16 bytes

$#2+KGetVolumeInfoWithNumber

Function Integer GetVolumeInfoWithNumber ( int VolNumber, string VolumeName, ref int TotalBlocks, ref int SectorsPerBlock, ref int AvailableBlocks, ref int TotalDirectorySlots, ref int AvailableDirectorySlots, ref int VolumeIsRemovable ) Library "NWNETAPI.DLL"

//volumeName must be initialized to 16 bytes

$#2+KGetVolumeName

Function Integer GetVolumeName ( int VolumeNumber, string VolumeName ) Library "NWNETAPI.DLL"

//VolumeName must be initialized to 16 bytes

$#2+KGetVolumeNumber

Function Integer GetVolumeNumber ( string VolumeName, ref int VolumeNumber ) Library "NWNETAPI.DLL"

$#2+KGetVolUsage

Function Integer GetVolUsage ( int ServerConnID, int VolNumber, ref NWVOL_USAGE VolUsage ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KIsSearchDrive

Function Integer IsSearchDrive ( int DriveLetter ) Library "NWNETAPI.DLL"

$#2+KMapDrive

Function Integer MapDrive ( int ConnectionID, int BaseDriveNumber, string DirectoryPath, int SearchFlag, int SearchOrder, string DriveLetter ) Library "NWNETAPI.DLL"

$#2+KMapDriveUsingString

Function Integer MapDriveUsingString ( string MapType, string Drive, string MapString ) Library "NWNETAPI.DLL"

$#2+KMapV2TrusteeRightsToV3

Function Long MapV2TrusteeRightsToV3 ( int TrusteeRightsV2 ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KMapV3TrusteeRightsToV2

Function Integer MapV3TrusteeRightsToV2 ( long TrusteeRightsV3 ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KModifyMaximumRightsMask

Function Integer ModifyMaximumRightsMask ( int DirectoryHandle, string DirectoryPath, int RevokeRightsMask, int GrantRightsMask ) Library "NWNETAPI.DLL"

$#2+KMoveEntry

Function Integer MoveEntry ( int ServerConnID, int SourceAttributes, int SourceDirHandle, string SourcePath, int DestDirHandle, string DestPath ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KRenameDirectory

Function Integer RenameDirectory ( int DirectoryHandle, string DirectoryPath, string NewDirectoryName ) Library "NWNETAPI.DLL"

$#2+KRestoreDirectoryHandle

Function Integer RestoreDirectoryHandle ( string saveBuffer, ref int NewDirectoryHandle, ref int EffectiveRightsMask ) Library "NWNETAPI.DLL"

//2.x only
//saveBuffer must be initialized to 14 characters

$#2+KSaveDirectoryHandle

Function Integer SaveDirectoryHandle ( int DirectoryHandle, string SaveBuffer ) Library "NWNETAPI.DLL"

//2.x only

$#2+KScanDirectoryForTrustees

Function Integer ScanDirectoryForTrustees ( int DirectoryHandle, string DirectoryPath, ref int SequenceNumber, string DirectoryName, ref long CreationDateAndTime, ref long OwnerID, ref long TrusteeIDs[5], ref string TrusteeRights ) Library "NWNETAPI.DLL"

//2.x only
//directoryName must be initialized to 16 bytes
//trusteeIDs is an array of 5 Longs
//trusteeRights must be initialized to 5 bytes

$#2+KScanDirectoryInformation

Function Integer ScanDirectoryInformation ( int DirectoryHandle, string SearchDirectoryPath, ref int SequenceNumber, string DirectoryName, ref long CreationDateAndTime, ref long OwnerObjectID, ref int MaximumRightsMask ) Library "NWNETAPI.DLL"

//DirectoryName must be initialized to 16 bytes

$#2+KScanDirEntry

Function Integer ScanDirEntry ( int ServerConnID, int DirHandle, string SearchPath, int SearchAttributes, ref int Sequence, ref NWDIR_ENTRY DirEntry ) Library "NWNETAPI.DLL"

$#2+KScanDirRestrictions

Function Integer ScanDirRestrictions ( int ServerConnID, int DirHandle, string Buffer, int NumberOfStructures ) Library "NWNETAPI.DLL"

//3.x/4.x only
//buffer must be initialized to ((numberOfStructures * 9) + 1) bytes

$#2+KScanEntryForTrustees

For NetWare 2.x:

Function Integer ScanEntryForTrustees ( int ServerConnID, int DirectoryHandle, string DirectoryPath, ref TRUSTEE_BUFFER_2X TrusteeBuffer, int TrusteeSetNumber, int TrusteeGroupsToReturn ) Library "NWNETAPI.DLL"

For NetWare 3.x and 4.x:

Function Integer ScanEntryForTrustees ( int ServerConnID, int DirectoryHandle, string DirectoryPath, ref TRUSTEE_BUFFER_3X TrusteeBuffer, int TrusteeSetNumber, int TrusteeGroupsToReturn ) Library "NWNETAPI.DLL"

$#2+KScanVolForRestrictions

Function Integer ScanVolForRestrictions ( int ServerConnID, int VolumeNumber, ref int Sequence, ref NWBUFFER Buffer ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KSetDirectoryHandle

Function Integer SetDirectoryHandle ( int SourceDirectoryHandle, string SourceDirectoryPath, int TargetDirectoryHandle ) Library "NWNETAPI.DLL"

$#2+KSetDirectoryInformation

Function Integer SetDirectoryInformation ( int DirectoryHandle, string DirectoryPath, long NewCreationDateAndTime, long NewOwnerObjectID, int NewRightsMask ) Library "NWNETAPI.DLL"

$#2+KSetDirRestriction

Function Integer SetDirRestriction ( int ServerConnID, int DirHandle, long Restriction ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KSetDrivePath

Function Integer SetDrivePath ( int DriveNumber, int 
BaseDriveNumber, string Path, int PermanentFlag ) Library "NWNETAPI.DLL"

$#2+KSetEntry

Function Integer SetEntry ( int ServerConnID, int DirHandle, int SearchAttributes, long EntryID, long ChangeBits, ref  NWDIR_ENTRY DirEntry ) Library "NWNETAPI.DLL"

Or

Function Integer SetEntry ( int ServerConnID, int DirHandle, int SearchAttributes, long EntryID, long ChangeBits, ref NWFILE_ENTRY FileEntry ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KSetSearchDriveVector

Function Integer SetSearchDriveVector ( string VectorBuffer ) Library "NWNETAPI.DLL"

$#2+KSetTrustee

Function Integer SetTrustee ( int ServerConnID, int DirHandle, string DirPath, long TrusteeObjectID, long TrusteeRightsMask ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KSetVolRestriction

Function Integer SetVolRestriction ( int ServerConnID, int VolNumber, long ObjectID, long Restriction ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KDirectory Services Global Constants

//Modify flags for SetEntry
int M_MODIFY_NAME		= 1
int M_FILE_ATTRIBUTES		= 2
int M_CREATE_DATE		= 4
int M_CREATE_TIME		= 8
int M_OWNER_ID			= 16
int M_LAST_ARCHIVED_DATE		= 32
int M_LAST_ARCHIVED_TIME		= 64
int M_LAST_ARCHIVED_ID		= 128
int M_LAST_UPDATED_DATE		= 256
int M_LAST_UPDATED_TIME		= 512
int M_LAST_UPDATED_ID		= 1024
int M_LAST_ACCESSED_DATE	= 2048
int M_INHERITED_RIGHTS_MASK	= 4096
int M_MAXIMUM_SPACE		= 8192
int M_MAC_MODIFY_NAME		= 1
int M_MAC_FINDER_INFO		= 2
int M_MAC_PRODOS_INFO		= 4

int NWMAX_VOL_NAME		= 48
int NCP_MAX_BUFFER		= 512

//Drive constants
int NO_BASE_DRIVE		= 255
int TEMPORARY_DRIVE		= 0
int PERMANENT_DRIVE		= 1
int TEMP_DRIVE			= 26
int TEMP_DRIVE1			= 27
int TEMP_DRIVE2			= 28
int TEMP_DRIVE3			= 29

//Search drive flags
int DRIVE_ADD			= 1
int DRIVE_INSERT			= 2
int DRIVE_DELETE			= 3
int MAX_NETWARE_SEARCH_DRIVES	= 16

//Drive flags
int DRIVE_LOCAL			= 128
int DRIVE_PERMANENT		= 1
int DRIVE_TEMPORARY		= 2
int DRIVE_NETWORK		= 3

//Trustee rights for v2.x
int TA_NONE			= 0
int TA_READ			= 1
int TA_WRITE			= 2
int TA_OPEN			= 4
int TA_CREATE			= 8
int TA_DELETE			= 16
int TA_OWNERSHIP			= 32
int TA_SEARCH			= 64
int TA_MODIFY			= 128
int TA_ALL			= 255

//Trustee rights for v3.x/4.x
int TR_NONE			= 0
int TR_READ			= 1
int TR_WRITE			= 2
int TR_CREATE			= 8
int TR_ERASE			= 16
int TR_ACCESS			= 32
int TR_FILE			= 64
int TR_MODIFY			= 128
int TR_SUPERVISOR		= 256
int TR_NORMAL			= 255
int TR_ALL			= 511

//Set numTrusteeEntries to the number of trustees that the
//  ScanEntryForTrustees function is to return data for.
//  Used in the TRUSTEE_BUFFER_3X type below
int NumTrusteeEntries		= 4

$#2+KDirectory Services Structures

NWDIR_ENTRY
NWFILE_ENTRY
NWDIR_INFO
DRIVE_VECTOR
VOLUME_STATS
NWVOL_USAGE
NWBUFFER
TRUSTEE_BUFFER_2X
TRUSTEE_BUFFER_3X

$#2KNWDIR_ENTRY

Sequence			long
Reserved1		long
Attributes			long
Reserved2		integer
NSType			string
NameLength		string
Name			string
CreationDate		integer
CreationTime		integer
OwnerID			long
LastArchivedDate		integer
LastArchivedTime		integer
LastArchiverID		long
ModifyDate		integer
ModifyTime		integer
Reserved3		string
InheritedRightsMask		integer
Reserved4		string

$#2KNWFILE_ENTRY

Sequence			long
Reserved1		long
Attributes			long
Reserved2		integer
NSType			string
NameLength		string
Name			string
CreationDate		integer
CreationTime		integer
OwnerID			long
LastArchivedDate		integer
LastArchivedTime		integer
LastArchiverID		long
ModifyDate		integer
ModifyTime		integer
LastModifierID		long
DataForkSize		long
Reserved3		string
InheritedRightsMask		integer
LastAccessDate		integer
Reserved4		string

$#2KNWDIR_INFO

TotalBlocks	long
FreeBlocks	long
TotalDirEntries	long
AvailDirEntries	long
Flags		long //currently unused
SectorsPerBlock	string
VolumeName	string

$#2KDRIVE_VECTOR

Vector		string

$#2KVOLUME_STATS

SystemElapsedTime	long
VolumeNumber		string
LogicalDriveNumber		string
SectorsPerBlock		integer
StartingBlock		integer
TotalBlocks		integer
AvailableBlocks		integer
TotalDirectorySlots		integer
AvailableDirectorySlots	integer
MaxDirectorySlotsUsed	integer
IsHashing			string
IsCaching			string
IsRemovable		string
IsMounted			string
VolumeName		string

$#2KNWVOL_USAGE

TotalBlocks		long
FreeBlocks		long
PurgableBlocks		long
NotYetPurgableBlocks	long
TotalDirEntries		long
AvailDirEntries		long
MaxDirEntriesUsed		long
Unused			string
BlockSize			integer
IsHashing			string
IsRemovable		string
VolName			string

$#2KNWBUFFER

Buffer		string

$#2KTRUSTEE_BUFFER_2X

DirName		string
Created		string
OwnerID		long
OID[5]		long
Rights[5]		string

$#2KTRUSTEE_BUFFER_3X

NumEntriesReturned		string
OID[numTrusteeEntries]	long
Rights[numTrusteeEntries]	integer

$#2+KEraseFiles

Function Integer EraseFiles ( int DirHandle, string FilePath, int SearchAttributes ) Library "NWNETAPI.DLL"

$#2+KFileServerFileCopy

Function Integer FileServerFileCopy ( int SourceFileHandle, int DestFileHandle, long SourceFileOffset, long DestFileOffset, long BytesToCopy, ref long BytesCopied ) Library "NWNETAPI.DLL"

$#2+KGetExtendedFileAttributes

Function Integer GetExtendedFileAttributes ( string FilePath, 
ref int ExtendedFileAttrib ) Library "NWNETAPI.DLL"

$#2+KPurgeAllErasedFiles

Function Integer PurgeAllErasedFiles ( ) Library "NWNETAPI.DLL"

//2.x only

$#2+KPurgeErasedFiles

Function Integer PurgeErasedFiles ( ) Library "NWNETAPI.DLL"

//2.x only

$#2+KPurgeSalvagableFile

Function Integer PurgeSalvagableFile ( int ServerConnID, int DirHandle, ref long EntryID, string FileName ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KRecoverSalvagableFile

Function Integer RecoverSalvagableFile ( int ServerConnID, int DirHandle, long EntryID, string FileName, string NewName ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KRestoreErasedFile

Function Integer RestoreErasedFile ( int DirHandle, string VolName, string ErasedFileName, string RestoredFileName ) Library "NWNETAPI.DLL"

//2.x only
//erasedFileName and restoredFileName must be initialized to 13 characters

$#2+KScanFileEntry

Function Integer ScanFileEntry ( int ServerConnID, int DirHandle, string SearchPath, int SearchAttrib, ref long Sequence, ref NWFILE_ENTRY FileEntry ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KScanFileInformation

Function Integer ScanFileInformation ( int DirHndl, string Path, int SrchAttrib, ref int Seq, string FileName, ref int Attrib, ref int ExtAttrib, ref long Size, ref int Creat, ref int LastAcc, ref long Updated, ref long Archived, ref long Owner ) Library "NWNETAPI.DLL"

//FileName must be initialized to 15 bytes

$#2+KScanFilePhysical

Function Integer ScanFilePhysical ( int ServerConnID, int DirHandle, string SearchPath, int SearchAttrib, ref long Sequence, ref NWPHYS_ENTRY FileEntry ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KScanSalvagableFiles

Function Integer ScanSalvagableFiles ( int ServerConnID, int DirHandle, ref long EntryID, ref NWSALV_ENTRY SalvEntry ) Library "NWNETAPI.DLL"

//3.x/4.x only

$#2+KSetExtendedFileAttributes

Function Integer SetExtendedFileAttributes ( string FilePath, int ExtFileAttrib ) Library "NWNETAPI.DLL"

$#2+KSetFileInformation

Function Integer SetFileInformation ( int DirHndl, string Path, int SearchAttrib, int Attrib, int ExtAttrib, int Created, int LastAcc, long Updated, long Archived, long Owner ) Library "NWNETAPI.DLL"

$#2+KFile Services Global Constants

//File attributes
int FA_NORMAL		= 0
int FA_READ_ONLY		= 1
int FA_HIDDEN		= 2
int FA_SYSTEM		= 4
int FA_EXECUTE_ONLY	= 8
int FA_DIRECTORY		= 16
int FA_ARCHIVE		= 32
int FA_SHARABLE		= 128

//Extended file attributes
int FA_TRANSACTIONAL	= 16
int FA_INDEXED		= 32
int FA_READ_AUDIT		= 64
int FA_WRITE_AUDIT	= 128

$#2+KFile Services Structures

NWFILE_ENTRY
FORK_SIZE
NWPHYS_ENTRY
NWSALV_ENTRY

$#2KFORK_SIZE

logical		long
physical		long

$#2KNWPHYS_ENTRY

Sequence			long
Reserved1		long
Attributes			long
Reserved2		integer
NSType			string
NameLength		string
Name			string
CreationDate		integer
CreationTime		integer
OwnerID			long
LastArchivedDate		integer
LastArchivedTime		integer
LastArchiverID		long
ModifyDate		integer
ModifyTime		integer
LastModifierID		long
DataForkSize		long
Reserved3		string
InheritedRightsMask		integer
LastAccessDate		integer
Reserved4		string
ForkSize1			FORK_SIZE
ForkSize2			FORK_SIZE
ForkSize3			FORK_SIZE
ForkSize4			FORK_SIZE
ForkSize5			FORK_SIZE

$#2KNWSALV_ENTRY

EntryID			long
Attributes			long
NameSpaceType		string
NameLength		string
Name			string
LastArchiveDateAndTime	long
LastArchiverID		long
ModifyDateAndTime		long
LastModifierID		long
DataForkSize		long
LastAccessedDate		integer
DeletedFileTime		long
DeletedDateAndTime	long
DeletorID			long

$#2+KCheckConsolePrivileges

Function Integer CheckConsolePrivileges ( ) Library "NWNETAPI.DLL"

$#2+KCheckNetWareVersion

Function Integer CheckNetWareVersion ( int MinVersion, int MinSubVersion, int MinRevision, int MinSFT, int MinTTS ) Library "NWNETAPI.DLL"

$#2+KClearConnectionNumber

Function Integer ClearConnectionNumber ( long ConnNumber ) Library "NWNETAPI.DLL"

//documentation says 2.x only, but it works in 3.x

$#2+KDisableFileServerLogin

Function Integer DisableFileServerLogin ( ) Library "NWNETAPI.DLL"

$#2+KDisableTransactionTracking

Function Integer DisableTransactionTracking ( ) Library "NWNETAPI.DLL"

$#2+KDownFileServer

Function Integer DownFileServer ( int ForceFlag ) Library "NWNETAPI.DLL"

$#2+KEnableFileServerLogin

Function Integer EnableFileServerLogin ( ) Library "NWNETAPI.DLL"

$#2+KEnableTransactionTracking

Function Integer EnableTransactionTracking ( ) Library "NWNETAPI.DLL"

$#2+KGetConnectionsOpenFiles

Function Integer GetConnectionsOpenFiles ( int ConnID, long ConnNum, ref int LastRecord, ref int LastTask, int StructSize, ref CON_OPEN_FILES OpenFiles ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetConnectionsSemaphores

Function Integer GetConnectionsSemaphores ( int ConnID, long ConnNum, ref int LastRecord, ref int LastTask, int StructSize, ref CONN_SEMAPHORE ConnSemaphores ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetConnectionsTaskInformation

Function Integer GetConnectionsTaskInformation ( int ConnID, long ConnNum, ref int TaskPointer, int StructSize, ref CONN_TASK_INFO ConnTaskInfo ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetConnectionsUsageStats

Function Integer GetConnectionsUsageStats ( int ConnID, long ConnNum, int StructSize, ref CONN_USAGE ConnUsage ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetConnectionsUsingFile

Function Integer GetConnectionsUsingFile ( int ConnID, ref int LastRecord, ref int TaskID, int DirHandle, string FilePath, int StructSize, ref CONN_USING_FILE FileUse ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetDiskCacheStats

Function Integer GetDiskCacheStats ( int ConnID, int StructSize, ref DISK_CACHE_STATS CacheStats ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetDiskChannelStats

Function Integer GetDiskChannelStats ( int ConnID, int ChannelNumber, int StructSize, ref DISK_CHANNEL_STATS ChannelStats ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetDiskUtilization

Function Integer GetDiskUtilization ( long ObjectID, int VolNumber, ref int UsedDirectories, ref int UsedFiles, ref int UsedBlocks ) Library "NWNETAPI.DLL"

$#2+KGetDriveMappingTable

Function Integer GetDriveMappingTable ( int ConnID, int StructSize, ref DRIVE_MAP_TABLE DriveMappingTable ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetFileServerDateAndTime

Subroutine GetFileServerDateAndTime ( ref DATE_AND_TIME DateAndTime ) Library "NWNETAPI.DLL"

$#2+KGetFileServerDescriptionStrings

Function Integer GetFileServerDescriptionStrings ( string CompanyName, string Revision, string RevisionDate, string CopyrightNotice ) Library "NWNETAPI.DLL"

//CompanyName, Revision, and CopyrightNotice must be initialized to 80 bytes
//RevisionDate must be initialized to 24 bytes

$#2+KGetFileServerLANIOStats

Declare Function GetFileServerLANIOStats ( int ConnID, int StructSize, ref SERVER_LAN_IO ServerLANIOStats ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetFileServerLoginStatus

Function Integer GetFileServerLoginStatus ( ref int LoginEnabledFlag ) Library "NWNETAPI.DLL"

$#2+KGetFileServerMiscInformation

Function Integer GetFileServerMiscInformation ( int ConnID, int StructSize, ref SERVER_MISC_INFO MiscInfo ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetFileServerName

Subroutine GetFileServerName ( int ConnID, string FileServerName ) Library "NWNETAPI.DLL"

$#2+KGetFileSystemStats

Function Integer GetFileSystemStats ( int ConnID, int StructSize, ref FILE_SYS_STATS FileSysStats ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetLANDriverConfigInfo

Function Integer GetLANDriverConfigInfo ( int ConnID, int LANBoardNumber, int StructSize, ref LAN_CONFIG LANConfig ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetLogicalRecordInformation

Function Integer GetLogicalRecordInformation ( int ConnID, string LogicalRecordName, ref int LastRecord, ref int LastTask, int StructSize, ref LOGICAL_REC_INFO LogicalRecordInfo ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetLogicalRecordByConnection

Function Integer GetLogicalRecordByConnection ( int ConnID, long ConnNum, ref int LastRecord, ref int LastTask, int StructSize, ref LOGICAL_RECORD LogicalRecord ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetPathFromDirectoryEntry

Function Integer GetPathFromDirectoryEntry ( int ConnID, int VolumeNumber, int DirectoryEntry, string Path ) Library "NWNETAPI.DLL"

//2.x only
//Path must be initialized to 255 bytes

$#2+KGetPhysicalDiskStats

Function Integer GetPhysicalDiskStats ( int connID, int 
PhysDiskNumber, int StructSize, ref PHYS_DISK_STATS PhysDiskStats , string 
DriveDefinition ) Library "NWNETAPI.DLL"

//2.x only
//DriveDefinition must be initialized to ?? bytes

$#2+KGetPhysicalRecordLocksByFile

Function Integer GetPhysicalRecordLocksByFile ( int ConnID, int DirHandle, string FilePath, ref int LastRecord, ref int LastTask, int StructSize, ref PHYS_REC_LOCK RecordLock ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetPhysRecLockByConnectAndFile

Function Integer GetPhysRecLockByConnectAndFile ( int ConnID, long ConnNum, int VolNum, int DirHandle, string FilePath, ref int LastRecord, ref int LastTask, int StructSize, ref SHORT_PHYS_REC_LOCK RecLock ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetSemaphoreInformation

Function Integer GetSemaphoreInformation ( int ConnID, string SemaphoreName, ref int LastRecord, ref int LastTask, ref long OpenCount, ref int SemaphoreValue, ref long ConnNum, ref int TaskNumber ) Library "NWNETAPI.DLL"

//2.x only

$#2+KGetServerInformation

Function Integer GetServerInformation ( int StructSize, ref FILE_SERV_INFO ServerInfo ) Library "NWNETAPI.DLL"

//documentation says 2.x only, but it works in 3.x

$#2+KSendConsoleBroadcast

Function Integer SendConsoleBroadcast ( string Message, int ConnCount, ref long ConnList ) Library "NWNETAPI.DLL"

$#2+KSetFileServerDateAndTime

Function Integer SetFileServerDateAndTime ( int TheYear, int TheMonth, int TheDay, int TheHour, int TheMin, int TheSec ) Library "NWNETAPI.DLL"

$#2+KFile Server Environmental Services Structures

CON_OPEN_FILES
CONN_SEMAPHORE
CONN_TASK_INFO
CONN_USAGE
CONN_USING_FILE
DISK_CACHE_STATS
DISK_CHANNEL_STATS
DRIVE_MAP_TABLE
SERVER_LAN_IO
SERVER_MISC_INFO
FILE_SYS_STATS
LAN_CONFIG
LOGICAL_REC_INFO
LOGICAL_RECORD
PHYS_DISK_STATS
PHYS_REC_LOCK
SHORT_PHYS_REC_LOCK
FILE_SERV_INFO

$#2KCON_OPEN_FILES

TaskNumber	string
LockStatus	string
AccessFlag	string
LockType		string
VolumeNumber	string
Reserved		string
DirectoryEntry	integer
FileName		string

$#2KCONN_SEMAPHORE

OpenCount		long
SemaphoreValue		string
TaskNumber		string
SemaphoreName		string

$#2KCONN_TASK_INFO

LockStatus		string
WaitingTaskNumber		string
BeginAddress		long
EndAddress		long
VolumeNumber		string
NumberOfTasks		string
DirectoryEntry		integer
LockedName		string
TaskNumber		string
TaskState			string

$#2KCONN_USAGE

SystemElapsedTime	long
BytesRead		string
BytesWritten		string
TotalRequestPackets	long

$#2KCONN_USING_FILE

UseCount			integer
OpenCount		integer
OpenForReadCount		long
OpenForWriteCount		long
DenyReadCount		long
DenyWriteCount		long
Reserved1		integer
Locked			string
Reserved2		string
LogicalConnNumber		long
TaskNumber		string
LockType			string
AccessFlags		string
LockStatus		string

$#2KDISK_CACHE_STATS

SystemElapsedTime	long
CacheBufferCount		integer
CacheBufferSize		integer
DirtyCacheBuffers		integer
CacheReadRequests	long
CacheWriteRequests	long
CacheHits			long
CacheMisses		long
PhysicalReadRequests	long
PhysicalWriteRequests	long
PhysicalReadErrors		integer
PhysicalWriteErrors		integer
CacheGetRequests		long
CacheFullWriteRequests	long
CachePartialWriteRequests	long
BackgroundDirtyWrites	long
BackgroundAgedWrites	long
TotalCacheWrites		long
CacheAllocations		long
ThrashingCount		integer
LRUBlockWasDirtyCount	integer
ReadBeyondWriteCount	integer
FragmentedWriteCount	integer
CacheHitOnUnavailCount	integer
CacheBlockScrappedCount	integer

$#2KDISK_CHANNEL_STATS

SystemElapsedTime	long
ChannelState		integer
ChannelSyncState		integer
DriverType		string
DriverMajorVersion		string
DriverMinorVersion		string
DriverDescription		string
IOAddr1			integer
IOAddr1Size		integer
IOAddr2			integer
IOAddr2Size		integer
SharedMem1Seg		string
SharedMem1Off		integer
SharedMem2Seg		string
SharedMem2Off		integer
Interrupt1Used		string
Interrupt1			string
Interrupt2Used		string
Interrupt2			string
DMAChannel1Used		string
DMAChannel1		string
DMAChannel2Used		string
DMAChannel2		string
Reserved2		integer
ConfigDescription		string

$#2KDRIVE_MAP_TABLE

SystemElapsedTime	long
SFTLevel			string
LogicalDriveCount		string
PhysicalDriveCount		string
DiskChannelTable		string
PendingIOCommands	integer
MappingTable		string
DriveMirrorTable		string
DeadMirrorTable		string
RemirroredDrive		string
Reserved			string
RemirroredBlock		long
SFTErrorTable		string

$#2KSERVER_LAN_IO

SystemElapsedTime		long
MaxRoutingBuffersAvail		integer
MaxRoutingBuffersUsed		integer
RoutingBuffersInUse			integer
TotalFileServicePackets		long
FileServicePacketsBuffered		integer
InvalidConnPacketCount		long
BadLogicalConnCount		long
PacketsRcvdDuringProcCount		integer
ReprocessedRequestCount		integer
BadSequenceNumberPacketCount	integer
DuplicateReplyCount		integer
AcknowledgementsSent		integer
BadRequestTypeCount		integer
AttachDuringProcCount		integer
AttachWhileAttachingCount		integer
ForgedDetachRequestCount		integer
BadConnNumberOnDetachCount	long
DetachDuringProcCount		integer
RepliesCanceledCount		integer
HopCountDiscardCount		integer
UnknownNetDiscardCount		integer
NoDGroupBufferDiscardCount		integer
OutPacketNoBufferDiscardCount	integer
IPXNotMyNetworkCount		integer
NetBIOSPropagationCount		long
TotalOtherPackets			long
TotalRoutedPackets			long

$#2KSERVER_MISC_INFO

SystemElapsedTime	long
ProcessorType		string
Reserved			string
ServiceProcessCount	string
ServerUtilizationPercent	string
MaxBinderyObjectsAvail	integer
MaxBinderyObjectsUsed	integer
BinderyObjectsInUse	integer
ServerMemoryInK		integer
DynamicAreaCount		integer
DynamicSpace1		long
MaxUsedDynamicSpace1	long
DynamicSpaceInUse1	long
DynamicSpace2		long
MaxUsedDynamicSpace2	long
DynamicSpaceInUse2	long
DynamicSpace3		long
MaxUsedDynamicSpace3	long
DynamicSpaceInUse3	long

$#2KFILE_SYS_STATS

SystemElapsedTime	long
MaxOpenFiles		integer
MaxFilesOpen		integer
CurrOpenFiles		integer
TotalFilesOpened		long
TotalReadRequests		long
TotalWriteRequests		long
CurrChangedFATSectors	integer
TotalChangedFATSectors	long
FATWriteErrors		integer
FatalFATWriteErrors		integer
FATScanErrors		integer
MaxIndexFilesOpened	integer
CurrOpenIndexedFiles	integer
AttachedIndexFiles		integer
AvailableindexFiles		integer

$#2KLAN_CONFIG

NetworkAddress		long
HostAddress1		long
HostAddress2		integer
LANDriverInstalled		string
OptionNumber		string
ConfigurationText1		string
ConfiguratinoText2		string

$#2KLOGICAL_REC_INFO

CurrentUseCount		integer
ShareableLockCount	integer
Reserved1		integer
Locked			string
Reserved2		string
LogicalConnectionNumber	long
TaskNumber		string
LockStatus		string

$#2KLOGICAL_RECORD

TaskNumber	string
LockStatus	string
LogicalLockName	string

$#2KPHYS_DISK_STATS

SystemElapsedTime	long
DiskChannel		string
DiskRemovable		string
DriveType		string
ControllerDriverNumber	string
ControllerNumber		string
ControllerType		string
DriveSize			long
DriveCylinders		integer
DriveHeads		string
SectorsPerTrack		string
IOErrorCount		integer
HotFixStart		long
HotFixSize		integer
HotFixSizeAvailable		integer
HotFixDisabled		string

$#2KPHYS_REC_LOCK

PhysicalRecordLockCount	string
Reserved			string
LoggedCount		integer
ShareLockCount		integer
RecordStart		long
RecordEnd		long
ConnectionNumber		long
TaskNumber		string
LockType			string

$#2KSHORT_PHYS_REC_LOCK

TaskNumber	string
LockFlag		string
RecordStart	long
RecordEnd	long

$#2KFILE_SERV_INFO

ServerName		string
NetwareVersion		string
NetwareSubVersion		string
MaxConnectionsSupported	long
ConnectionsInUse		long
MaxVolumesSupported	integer
RevisionLevel		string
SFTLevel			string
TTSLevel			string
PeakConnectionsUsed	long
AccountingVersion		string
VAPversion		string
QueueingVersion		string
PrintServerVersion		string
VirtualConsoleVersion	string
SecurityRestrictionLevel	string
InternetBridgeSupport	string

$#2+KBroadcastToConsole

Function Integer BroadcastToConsole ( string Message ) Library "NWNETAPI.DLL"

$#2+KCheckPipeStatus

Function Integer CheckPipeStatus ( ref long ConnectionList, ref int ResultList, ref long ConnectionCount ) Library "NWNETAPI.DLL"

//2.x only

$#2+KCloseMessagePipe

Function Integer CloseMessagePipe ( ref long ConnectionList, ref int ResultList, ref long ConnectionCount ) Library "NWNETAPI.DLL"

//2.x only

$#2+KDisableBroadcasts

Function Integer DisableBroadcasts ( ) Library "NWNETAPI.DLL"

$#2+KEnableBroadcasts

Function Integer EnableBroadcasts ( ) Library "NWNETAPI.DLL"

$#2+KGetBroadcastMessage

Function Integer GetBroadcastMessage ( string MessageBuffer ) Library "NWNETAPI.DLL"

//MessageBuffer must be initialized to 56 bytes

$#2+KGetBroadcastMode

Function Integer GetBroadcastMode ( ) Library "NWNETAPI.DLL"

$#2+KGetPersonalMessage

Function Integer GetPersonalMessage ( string MessageBuffer, 
ref long SourceConnection ) Library "NWNETAPI.DLL"

//2.x only
//MessageBuffer must be initialized to 127 bytes

$#2+KLogNetWorkMessage

Function Integer LogNetWorkMessage ( string Message ) Library "NWNETAPI.DLL"

//2.x only

$#2+KOpenMessagePipe

Function Integer OpenMessagePipe ( ref long ConnectionList, ref int ResultList, long ConnectionCount ) Library "NWNETAPI.DLL"

//2.x only

$#2+KSendBroadcastMessage

Function Integer SendBroadcastMessage ( string Message, ref long ConnectionList, ref int ResultList, long ConnectionCount ) Library "NWNETAPI.DLL"

$#2+KSendPersonalMessage

Function Integer SendPersonalMessage ( string Message, ref long ConnectionList, ref int ResultList, int ConnectionCount ) Library "NWNETAPI.DLL"

//2.x only 

$#2+KSetBroadcastMode

Function Integer SetBroadcastMode ( int BroadcastMode ) Library "NWNETAPI.DLL"

$#2+KASCIIZToLenStr

Function Integer ASCIIZToLenStr ( string DestStr, string SrcStr ) Library "NWNETAPI.DLL"

//DestStr must be initialized to the length of SrcStr (including terminating null)

$#2+KConvertNameToFullPath

Function Integer ConvertNameToFullPath ( string PartialPath, string FullPath ) Library "NWNETAPI.DLL"

//FullPath must be initialized to 255 bytes

$#2+KConvertNameToVolumePath

Function Integer ConvertNameToVolumePath ( string FileName, string Path ) Library "NWNETAPI.DLL"

//Path must be initialized to 255 bytes

$#2+KGetFullPath

Function Integer GetFullPath ( int Drive, string Path ) Library "NWNETAPI.DLL"

//Path must be initialized to 255 bytes

$#2+KGetNetworkSerialNumber

Function Integer GetNetworkSerialNumber ( ref long SerialNumber, ref int ApplicationNumber ) Library "NWNETAPI.DLL"

$#2+KIntSwap

Function Integer IntSwap ( int UnswappedInteger ) Library "NWNETAPI.DLL"

$#2+KIsV3Supported

Function Integer IsV3Supported ( int ServerConnID ) Library "NWNETAPI.DLL"

$#2+KLenToASCIIZStr

Function Integer LenToASCIIZStr ( srting DestStr, string SrcStr ) Library "NWNETAPI.DLL"

//DestStr must be initialized to the length of scrStr$

$#2+KLongSwap

Function Long LongSwap ( long UnswappedLong ) Library "NWNETAPI.DLL"

$#2+KParsePath

Function Integer ParsePath ( string Path, string Server, string Volume, string Directories ) Library "NWNETAPI.DLL"

//Server must be initialized to 48 bytes
//Volume must be initialized to 16 bytes
//Directories must be initialized to 255 bytes

$#2+KStripFileServerFromPath

Function Integer StripFileServerFromPath ( string Path, string Server ) Library "NWNETAPI.DLL"

//Server must be initialized to 48 bytes

$#2+KVerifyNetworkSerialNumber

Function Integer VerifyNetworkSerialNumber ( long SerialNumber, ref int ApplicationNumber ) Library "NWNETAPI.DLL"

$#2+KFillNameSpaceBuffer

Function Integer FillNameSpaceBuffer ( int ServerConnID, int VolumeNumber, ref NWBUFFER Buffer ) Library "NWNETAPI.DLL"

$#2+KGetDataStreamInfo

Function Integer GetDataStreamInfo ( ref NWBUFFER Buffer, int DataStreamType, string DataStreamName, ref int VolSupports ) Library "NWNETAPI.DLL"

$#2+KGetNameSpaceEntry

Function Integer GetNameSpaceEntry ( int ServerConnID, int VolumeNum, ref long Sequence, int NsType, ref [Any] EntryInfo ) Library "NWNETAPI.DLL"

$#2+KGetNameSpaceInfo

Function Integer GetNameSpaceInfo ( ref NWBUFFER Buffer, int NsType, string NameSpaceName, ref int OsReady, ref int VolSupports ) Library "NWNETAPI.DLL"

$#2+KGetNumNameSpaceAndDataStreams

Function Integer GetNumNameSpaceAndDataStreams ( ref NWBUFFER Buffer, ref int NumNameSpaces, ref int NumDataStreams ) Library "NWNETAPI.DLL"

$#2+KName Space Services Global Constants

int DOS_NAME_SPACE	= 0
int MAC_NAME_SPACE	= 1

$#2+KCancelLPTCapture

Function Integer CancelLPTCapture ( ) Library "NWNETAPI.DLL"

$#2+KCancelSpecificLPTCapture

Function Integer CancelSpecificLPTCapture ( int LptDevice ) Library "NWNETAPI.DLL"

$#2+KEndLPTCapture

Function Integer EndLPTCapture ( ) Library "NWNETAPI.DLL"

$#2+KEndSpecificLPTCapture

Function Integer EndSpecificLPTCapture ( int LptDevice ) Library "NWNETAPI.DLL"

$#2+KFlushLPTCapture

Function Integer FlushLPTCapture ( ) Library "NWNETAPI.DLL"

$#2+KFlushSpecificLPTCapture

Function Integer FlushSpecificLPTCapture ( int LptDevice ) Library "NWNETAPI.DLL"

$#2+KGetBannerUserName

Function Integer GetBannerUserName ( string UserName ) Library "NWNETAPI.DLL"

$#2+KGetDefaultCaptureFlags

Function Integer GetDefaultCaptureFlags ( ref CAPTURE_FLAGS CaptureFlags ) Library "NWNETAPI.DLL"

$#2+KGetDefaultLocalPrinter

Function Integer GetDefaultLocalPrinter ( ) Library "NWNETAPI.DLL"

$#2+KGetLPTCaptureStatus

Function Integer GetLPTCaptureStatus ( ref int ServerNumber ) Library "NWNETAPI.DLL"

$#2+KGetPrinterQueue

Function Integer GetPrinterQueue ( int PrinterNumber, ref long QueueID ) Library "NWNETAPI.DLL"

$#2+KGetPrinterStatus

Function Integer GetPrinterStatus ( int PrinterNumber, ref int PrinterHalted, ref int PrinterOffLine, ref int FormType, ref int TargetPrinter ) Library "NWNETAPI.DLL"

$#2+KGetSpecificCaptureFlags

Function Integer GetSpecificCaptureFlags ( int LocalLPTDevice, ref CAPTURE_FLAGS CaptureFlags ) Library "NWNETAPI.DLL"

$#2+KSetBannerUserName

Function Integer SetBannerUserName ( string UserName ) Library "NWNETAPI.DLL"

$#2+KSetCapturePrintJob

Function Integer SetCapturePrintJob ( int LptDevice, int JobNumber, ref FILE_HANDLE JobFileHandle ) Library "NWNETAPI.DLL"

$#2+KSetCapturePrintQueue

Function Integer SetCapturePrintQueue ( int LptDevice, int ConnID, long QueueID ) Library "NWNETAPI.DLL"

$#2+KSetDefaultCaptureFlags

Function Integer SetDefaultCaptureFlags ( ref SET_CAPTURE_FLAGS setCaptureFlags ) Library "NWNETAPI.DLL"*

$#2+KSetDefaultLocalPrinter

Function Integer SetDefaultLocalPrinter ( int LptDevice ) Library "NWNETAPI.DLL"

$#2+KSetSpecificCaptureFlags

Function Integer SetSpecificCaptureFlags ( int LptDevice, ref SET_CAPTURE_FLAGS setCaptureFlags ) Library "NWNETAPI.DLL"

$#2+KSetSpoolFlags

Function Integer SetSpoolFlags ( int PrintFlags, int TabSize, int PrinterNumber, int NumberOfCopies, int FormType, int BannerName ) Library "NWNETAPI.DLL"

$#2+KSpecifyCaptureFile

Function Integer SpecifyCaptureFile ( int DriveHandle, string FilePath ) Library "NWNETAPI.DLL"

$#2+KStartLPTCapture

Function Integer StartLPTCapture ( ) Library "NWNETAPI.DLL"

$#2+KStartSpecificLPTCapture

Function Integer StartSpecificLPTCapture ( int LptDevice ) Library "NWNETAPI.DLL"

$#2+KPrint Services Global Constants

int CAPTURE_IS_NOT_ACTIVE	= 0
int CAPTURE_IS_ACTIVE		= 255

$#2+KPrint Services Structures

CAPTURE_FLAGS
SET_CAPTURE_FLAGS

$#2KCAPTURE_FLAGS

Status			string
Flags			string
TabSize			string
ServerPrinter		string
NumberOfCopies		string
FormType			string
Reserved1		string
BannerText		string
Reserved2		string
LocalLPTDevice		string
FlushCaptureTimeoutCount	integer
FlushCaptureOnDeviceClose	string
MaxLines			integer
MaxChars			integer
FormName		string
LPTCaptureFlag		string
FileCaptureFlag		string
TimingOutFlag		string
PrinterSetupBuffer		long
PrinterResetBuffer		long
ConnectionIDQueuePrintJob	string
CaptureInProgress		string
PrintQueueFlag		string
PrintJobValid		string
PrintQueueID		long
PrintJobNumber		integer

$#2KSET_CAPTURE_FLAGS

Status			string
Flags			string
TabSize			string
ServerPrinter		string
NumberOfCopies		string
FormType			string
Reserved1		string
BannerText		string
Reserved2		string
LocalLPTDevice		string
FlushCaptureTimeoutCount	integer
FlushCaptureOnDeviceClose	string
MaxLines			integer
MaxChars			integer
FormName		string
Reserved3		string

$#2+KPSAbortPrintJob

Function Integer PSAbortPrintJob ( int SpxConn, int Printer, int JobOutcome ) Library "NWPSERV.DLL"

$#2+KPSAddNotifyObject

Function Integer PSAddNotifyObject ( int SpxConn, int Printer, string FileServer, string ObjectName, int ObjectType, int FirstNotif, int NextNotif ) Library "NWPSERV.DLL"

$#2+KPSAddQueueToPrinter

Function Integer PSAddQueueToPrinter ( int SpxConn, int Pprinter, string FileServer, string Queue, int Priority ) Library "NWPSERV.DLL"

$#2+KPSAttachPrintServerToFileServer

Function Integer PSAttachPrintServerToFileServer ( int SpxConn, string FileServer, string Password ) Library "NWPSERV.DLL"

$#2+KPSAttachToPrintServer

Function Integer PSAttachToPrintServer ( string PrintServerName, ref int ConnectionID ) Library "NWPSERV.DLL"

$#2+KPSCancelDownRequest

Function Integer PSCancelDownRequest ( int SpxConn ) Library "NWPSERV.DLL"

$#2+KPSChangeNotifyInterval

Function Integer PSChangeNotifyInterval ( int SpxConn, int Printer, string FileServer, string ObjectName, int ObjectType, int FirstNotif, int NextNotif ) Library "NWPSERV.DLL"

$#2+KPSChangeQueuePriority

Function Integer PSChangeQueuePriority ( int SpxConn, int Printer, string FileServer, string Queue, int Priority ) Library "NWPSERV.DLL"

$#2+KPSChangeServiceMode

Function Integer PSChangeServiceMode ( int SpxConn, int Printer, int ServiceMode ) Library "NWPSERV.DLL"

$#2+KPSDeleteNotifyObject

Function Integer PSDeleteNotifyObject ( int SpxConn, int Printer, string FileServer, string ObjectName, int ObjectType ) Library "NWPSERV.DLL"

$#2+KPSDeleteQueueFromPrinter

Function Integer PSDeleteQueueFromPrinter ( int SpxConn, int Printer, string FileServer, string Queue, int Immed, int JobOutcome ) Library "NWPSERV.DLL"

$#2+KPSDetachFromPrintServer

Function Integer PSDetachFromPrintServer ( int ConnID ) Library "NWPSERV.DLL"

$#2+KPSDetachPrtServerFromFileServer

Function Integer PSDetachPrtServerFromFileServer ( int SpxConn, string FileServer, int  Immed, int JobOutcome ) Library "NWPSERV.DLL"

$#2+KPSDownPrintServer

Function Integer PSDownPrintServer ( int SpxConn, int Immed, int JobOutcome ) Library "NWPSERV.DLL"

$#2+KPSEjectForm

Function Integer PSEjectForm ( int SpxConn, int Printer ) Library "NWPSERV.DLL"

$#2+KPSGetAttachedServers

Function Integer PSGetAttachedServers ( int SpxConn, ref int Sequence, string FileServer ) Library "NWPSERV.DLL"

$#2+KPSGetNextRemotePrinter

Function Integer PSGetNextRemotePrinter ( int SpxConn, ref int Printer, ref int PrinterType, string PrinterName ) Library "NWPSERV.DLL"

$#2+KPSGetNotifyObject

Function Integer PSGetNotifyObject ( int SpxConn, int Printer, ref int Sequence, string FileServer, string ObjectName, ref int ObjectType, ref int FirstNotif, ref int NextNotif ) Library "NWPSERV.DLL"

$#2+KPSGetPrintersServicingQueue

Function Integer PSGetPrintersServicingQueue ( int SpxConn, string FileServer, string Queue, int MaxPrinter, ref int NumPrinters, ref int PrinterList ) Library "NWPSERV.DLL"

//PrinterList must be initialized to MaxPrinters bytes

$#2+KPSGetPrinterStatus

Function Integer PSGetPrinterStatus ( int SpxConn, int Printer, ref int Status, ref int Problem, ref int HasJob, ref int ServiceMode, ref int FormNumber, string FormName, string PrinterName ) Library "NWPSERV.DLL"

$#2+KPSGetPrintJobStatus

Function Integer PSGetPrintJobStatus ( int SpxConn, int Printer, string FileServer, string QueueName, ref int JobNumber, string JobDesc, ref int CopiesToPrint, ref long JobSize, ref int CopyiesDone, ref long BytesIntoCopy, ref int NeededForm, ref int Text ) Library "NWPSERV.DLL"

$#2+KPSGetPrintServerInfo

Function Integer PSGetPrintServerInfo ( int SpxConn, ref PS_INFO Info, int Size ) Library "NWPSERV.DLL"

$#2+KPSGetQueuesServiced

Function Integer PSGetQueuesServiced ( int SpxConn, int Printer, ref int Sequence, string FileServer, string Queue, ref int Priority ) Library "NWPSERV.DLL"

$#2+KPSLoginToPrintServer

Function Integer PSLoginToPrintServer ( int SpxConn, ref int ClientAccessLevel ) Library "NWPSERV.DLL"

$#2+KPSMarkTopOfForm

Function Integer PSMarkTopOfForm ( int SpxConn, int Printer, int Character ) Library "NWPSERV.DLL"

$#2+KPSRequestRemotePrinter

Function Integer PSRequestRemotePrinter ( int SpxConn, ref REMOTE_INFO PrinterInfo ) Library "NWPSERV.DLL"

$#2+KPSRewindPrintJob

Function Integer PSRewindPrintJob ( int SpxConn, int Printer, int ByPage, int Relative, int Copy, long Offset ) Library "NWPSERV.DLL"

$#2+KPSSetMountedForm

Function Integer PSSetMountedForm ( int SpxConn, int Printer, int FormNumber ) Library "NWPSERV.DLL"

$#2+KPSSetRemoteMode

Function Integer PSSetRemoteMode ( int SpxConn, int Printer, int Mode ) Library "NWPSERV.DLL"

$#2+KPSStartPrinter

Function Integer PSStartPrinter ( int SpxConn, int Printer ) Library "NWPSERV.DLL"

$#2+KPSStopPrinter

Function Integer PSStopPrinter ( int SpxConn, int Printer, int JobOutcome ) Library "NWPSERV.DLL"

$#2+KPrint Server Services Global Constants

//Print server status
int RUNNING				= 0
int GOING_DOWN				= 1
int DOWN					= 2
int INITIALIZING				= 3

//Printer status
int PRINTER_RUNNING			= 0
int PRINTER_OFFLINE			= 1
int PRINTER_PAPER_OUT			= 2

//printControlFlags
int SUPPRESS_FF				= 2048
int NOTIFY_USER				= 4096
int TEXT_MODE				= 16384
int PRINT_BANNER				= 32768

//Queue service modes
int QUEUE_ONLY				= 0
int QUEUE_BEFORE_FORM			= 1
int FORM_ONLY				= 2
int FORM_BEFORE_QUEUE			= 3

//Port configuration values
int BAUD_RATE_0300			= 0
int BAUD_RATE_0600			= 1
int BAUD_RATE_1200			= 2
int BAUD_RATE_2400			= 3
int BAUD_RATE_4800			= 4
int BAUD_RATE_9600			= 5

int STOP_BITS_1				= 0
int STOP_BITS_1_5				= 1
int STOP_BITS_2				= 2

int PARITY_NONE				= 0
int PARITY_EVEN				= 1
int PARITY_ODD				= 2

//Printer types
int P_PAR_1				= 0
int P_PAR_2				= 1
int P_PAR_3				= 2
int P_SER_1				= 3
int P_SER_2				= 4
int P_SER_3				= 5
int P_SER_4				= 6
int P_REM_PAR_1				= 7
int P_REM_PAR_2				= 8
int P_REM_PAR_3				= 9
int P_REM_SER_1				= 10
int P_REM_SER_2				= 11
int P_REM_SER_3				= 12
int P_REM_SER_4				= 13
int P_REM_OTHER				= 14
int P_ELSEWHERE				= 15

//ObjectType for job owner (for notify object APIs)
int JOB_OWNER				= -1

//Job outcomes
int PLACE_ON_HOLD			= 0
int RETURN_TO_QUEUE			= 1
int THROW_AWAY				= 2

//Remote printer modes
int REMOTE_SHARED			= 0
int REMOTE_PRIVATE			= 1

//Printer status
int PSTAT_WAITING_FOR_JOB		= 0
int PSTAT_WAITING_FOR_FORM		= 1
int PSTAT_PRINTING_JOB			= 2
int PSTAT_PAUSED				= 3
int PSTAT_STOPPED			= 4
int PSTAT_MARK_EJECT			= 5
int PSTAT_READY_TO_GO_DOWN		= 6
int PSTAT_NOT_CONNECTED			= 7
int PSTAT_PRIVATE				= 8

//Print server communication errors
int PSC_NO_AVAILABLE_SPX_CONNECTS	= 64
int PSC_SPX_NOT_INITIALIZED		= 65
int PSC_NO_SUCH_PRINT_SERVER		= 66
int PSC_UNABLE_TO_GET_SERVER_ADDR	= 67
int PSC_UNABLE_TO_CONNECT_TO_SERVER	= 68
int PSC_NO_AVAILABLE_IPX_SOCKETS		= 69
int PSC_ALREADY_ATTACHED_TO_PSERVER	= 70
int PSC_IPX_NOT_INITIALIZED			= 71

//Print server error codes
int PSE_TOO_MANY_FILE_SERVERS		= 257
int PSE_UNKNOWN_FILE_SERVER		= 258
int PSE_BINDERY_LOCKED			= 259
int PSE_SERVER_MAXED_OUT		= 260
int PSE_NO_RESPONSE			= 261
int PSE_ALREADY_ATTACHED		= 262
int PSE_CANT_ATTACH			= 263
int PSE_NO_ACCOUNT_BALANCE		= 264
int PSE_NO_CREDIT_LEFT			= 265
int PSE_INTRUDER_DETECTION_LOCK		= 266
int PSE_TOO_MANY_CONNECTIONS		= 267
int PSE_ACCOUNT_DISABLED			= 268
int PSE_UNAUTHORIZED_TIME		= 269
int PSE_UNAUTHORIZED_STATION		= 270
int PSE_NO_MORE_GRACE			= 271
int PSE_LOGIN_DISABLED			= 272
int PSE_ILLEGAL_ACCT_NAME		= 273
int PSE_PASSWORD_HAS_EXPIRED		= 274
int PSE_ACCESS_DENIED			= 275
int PSE_CANT_LOGIN			= 276
int PSE_NO_SUCH_QUEUE			= 512
int PSE_NOT_AUTHORIZED_FOR_QUEUE	= 513
int PSE_QUEUE_HALTED			= 514
int PSE_UNABLE_TO_ATTACH_TO_QUEUE	= 515
int PSE_TOO_MANY_QUEUE_SERVERS		= 516
int PSE_INVALID_REQUEST			= 768
int PSE_NOT_ENOUGH_MEMORY		= 769
int PSE_NO_SUCH_PRINTER			= 770
int PSE_INVALID_PARAMETER		= 771
int PSE_PRINTER_BUSY			= 772
int PSE_CANT_DETACH_PRIMARY_SERVER	= 773
int PSE_GOING_DOWN			= 774
int PSE_NOT_CONNECTED			= 775
int PSE_ALREADY_IN_USE			= 776
int PSE_NO_JOB_ACTIVE			= 777
int PSE_NOT_ATTACHED_TO_SERVER		= 778
int PSE_ALREADY_IN_LIST			= 779
int PSE_DOWN				= 780
int PSE_NOT_IN_LIST			= 781
int PSE_NO_RIGHTS			= 782
int PSE_UNABLE_TO_VERIFY_IDENTITY		= 1024
int PSE_NOT_REMOTE_PRINTER		= 1025

//Client privilege levels for print server
int PS_LIMITED				= 0 // Limited access only
int PS_USER				= 1 // User access
int PS_OPERATOR				= 2 // Operator access

$#2+KPrint Server Services Structures

PS_INFO
REMOTE_INFO

$#2KPS_INFO

Status		string
NumPrinters	string
NumModes	string
MajorVersion	string
MinorVersion	string
Revision		string
SerialNumber	string
ServerType	string

$#2KREMOTE_INFO

PrinterType	integer
UseInterrupts	integer
IrqNumber	integer
NumBlocks	integer
UseXonXoff	integer
BaudRate		integer
DataBits		integer
StopBits		integer
Parity		integer
Socket		integer

$#2+KAbortServicingQueueJobAndFile

Function Integer AbortServicingQueueJobAndFile ( long QueueID, long JobNumber, int FileHandle ) Library "NWNETAPI.DLL"

$#2+KAttachQueueServerToQueue

Function AttachQueueServerToQueue ( long QueueID ) Library "NWNETAPI.DLL"

$#2+KChangeQueueJobEntry

Function Integer ChangeQueueJobEntry ( long QueueID, ref JOB_STRUCT Job ) Library "NWNETAPI.DLL"

$#2+KChangeQueueJobPosition

Function Integer ChangeQueueJobPosition ( long QueueID, long JobNumber, int NewPosition ) Library "NWNETAPI.DLL"

$#2+KChangeToClientRights

Function Integer ChangeToClientRights ( long QueueID, long JobNumber ) Library "NWNETAPI.DLL"

$#2+KCloseFileAndAbortQueueJob

Function Integer CloseFileAndAbortQueueJob ( long QueueID, long JobNumber, int FileHandle ) Library "NWNETAPI.DLL"

$#2+KCloseFileAndStartQueueJob

Function CloseFileAndStartQueueJob ( long QueueID, long JobNumber, int FileHandle ) Library "NWNETAPI.DLL"

$#2+KCreateQueue

Function CreateQueue ( string QueueName, int QueueType, int DirectoryHandle, string PathName, ref long QueueID ) Library "NWNETAPI.DLL"

$#2+KCreateQueueJobAndFile

Function CreateQueueJobAndFile ( long QueueID, ref JOB_STRUCT Job, ref int FileHandle ) Library "NWNETAPI.DLL"

$#2+KDestroyQueue

Function Integer DestroyQueue ( long QueueID ) Library "NWNETAPI.DLL"

$#2+KDetachQueueServerFromQueue

Function Integer DetachQueueServerFromQueue ( long QueueID ) Library "NWNETAPI.DLL"

$#2+KFinishServicingQueueJobAndFile

Function FinishServicingQueueJobAndFile ( long QueueID, long JobNumber, long Charge, int FileHandle ) Library "NWNETAPI.DLL"

$#2+KGetQueueJobList

Function Integer GetQueueJobList ( long QueueID, ref long JobCount, ref long JobNumberList, long MaxJobNumbers ) Library "NWNETAPI.DLL"

$#2+KGetQueueJobsFileSize

Function Integer GetQueueJobsFileSize ( long QueueID, long JobNumber, ref long FileSize ) Library "NWNETAPI.DLL"

$#2+KReadQueueCurrentStatus

Function Integer ReadQueueCurrentStatus ( long QueueID, ref long QueueStatus, ref long NumberOfJobs, ref long NumberOfServers, ref long ServerIDList [ ], ref long ServerStationList [ ], long MaxNumberOfServers ) Library "NWNETAPI.DLL"

//ServerIDList is an array of MaxNumberOfServers longs
//ServerStationList is an array of MaxNumberOfServers longs

$#2+KReadQueueJobEntry

Function Integer ReadQueueJobEntry ( long QueueID, long JobNumber, ref JOB_STRUCT Job ) Library "NWNETAPI.DLL"

$#2+KReadQueueServerCurrentStatus

Function Integer ReadQueueServerCurrentStatus ( long QueueID, long ServerID, long ServerStation, ref STATUS_RECORD ServerStatusRecord ) Library "NWNETAPI.DLL"

$#2+KRemoveJobFromQueue

Function Integer RemoveJobFromQueue ( long QueueID, long JobNumber ) Library "NWNETAPI.DLL"

$#2+KRestoreQueueServerRights

Function Integer RestoreQueueServerRights ( ) Library "NWNETAPI.DLL"

$#2+KServiceQueueJobAndOpenFile

Function Integer ServiceQueueJobAndOpenFile ( long QueueID, int TargetJobType, ref JOB_STRUCT Job, ref int FileHandle ) Library "NWNETAPI.DLL"

$#2+KSetQueueCurrentStatus

Function Integer SetQueueCurrentStatus ( long QueueID, long QueueStatus ) Library "NWNETAPI.DLL"

$#2+KSetQueueServerCurrentStatus

Function Integer SetQueueServerCurrentStatus ( long QueueID, ref STATUS_RECORD ServerStatusRecord ) Library "NWNETAPI.DLL"

$#2KPrint Queue Services Global Constants

//Queue Job Control Flags
int QF_OPERATOR_HOLD		= 128
int QF_USER_HOLD			= 64
int QF_ENTRY_OPEN		= 32
int QF_SERVICE_RESTART		= 16
int QF_AUTO_START		= 8

//Queue Status Flags
int QS_CANT_ADD_JOBS		= 1
int QS_SERVERS_CANT_ATTACH	= 2
int QS_CANT_SERVICE_JOBS		= 4

//Error return codes
int Q_ERROR			= 208
int NO_QUEUE			= 209
int NO_Q_SERVER			= 210
int NO_Q_RIGHTS			= 211
int Q_FULL			= 212
int NO_Q_JOB			= 213
int NO_JOB_RIGHTS		= 214
int Q_SERVICING			= 215
int STN_NOT_SERVER		= 217
int Q_NOT_ACTIVE			= 216
int Q_HALTED			= 218
int MAX_Q_SERVERS		= 219

$#2KPrint Queue Services Structures

JOB_STRUCT
STATUS_RECORD

$#2KJOB_STRUCT

Reserved			string
ClientStation		long
ClientTaskNumber		long
ClientIDNumber		long
TargetServerIDNumber	long
TargetExecutionTime	string
JobEntryTime		string
JobNumber		long
JobType			integer
JobPosition		integer
JobControlFlags		integer
JobFileName		string
JobFileHandle		string
ServerStation		long
ServerTaskNumber		long
ServerIDNumber		long
TextJobDescription		string
ClientRecordArea		string

$#2KSTATUS_RECORD

Record			string

$#2+KAdvertiseService

Function Integer AdvertiseService ( int ServerType, string ServerName, ref int ServerSocket ) Library "NWIPXSPX.DLL"

$#2+KQueryServices

Function Integer QueryServices ( int QueryType, int ServerType, int ReturnSize, ref SAP ServiceBuffer ) Library "NWIPXSPX.DLL"

$#2+KShutdownSAP

Function Integer ShutdownSAP ( string ServerName ) Library "NWIPXSPX.DLL"

$#2+KService Advertising Protocol Structures

SAP

$#2KSAP

Header			IPXHeader
ResponseType		integer
ServerType		integer
ServerName		string
Network			long
Node			NodeAddress
Socket			integer
InterveningNetworks		integer

$#2+KClearFile

Function Integer ClearFile ( string FileName ) Library "NWNETAPI.DLL"

$#2+KClearFileSet

Function Integer ClearFileSet ( ) Library "NWNETAPI.DLL"

$#2+KClearLogicalRecord

Function Integer ClearLogicalRecord ( string LogicalRecordName ) Library "NWNETAPI.DLL"

$#2+KClearLogicalRecordSet

Function Integer ClearLogicalRecordSet ( ) Library "NWNETAPI.DLL"

$#2+KClearPhysicalRecord

Function Integer ClearPhysicalRecord ( int FileHandle, long RecordStartOffset, long RecordLength ) Library "NWNETAPI.DLL"

$#2+KClearPhysicalRecordSet

Function Integer ClearPhysicalRecordSet ( ) Library "NWNETAPI.DLL"

$#2+KCloseSemaphore

Function Integer CloseSemaphore ( long SemaphoreHandle ) Library "NWNETAPI.DLL"

$#2+KExamineSemaphore

Function Integer ExamineSemaphore ( long SemaphoreHandle&, ref int SemaphoreValue, ref int OpenCount ) Library "NWNETAPI.DLL"

$#2+KGetLockMode

Function Integer GetLockMode ( ) Library "NWNETAPI.DLL"

$#2+KLockFileSet

Function Integer LockFileSet ( int TimeoutLimit ) Library "NWNETAPI.DLL"

$#2+KLockLogicalRecordSet

Function Integer LockLogicalRecordSet ( int LockDirective, int TimeoutLimit ) Library "NWNETAPI.DLL"

$#2+KLockPhysicalRecordSet

Function Integer LockPhysicalRecordSet ( int LockDirective, int TimeoutLimit ) Library "NWNETAPI.DLL"

$#2+KLogFile

Function Integer LogFile ( string FileName, int LockDirective, int TimeoutLimit ) Library "NWNETAPI.DLL"

$#2+KLogLogicalRecord

Function LogLogicalRecord ( string LogicalRecordName, int LockDirective, int TimeoutLimit ) Library "NWNETAPI.DLL"

$#2+KLogPhysicalRecord

Function Integer LogPhysicalRecord ( int FileHandle, long RecordStartOffset, long RecordLength, int LockDirective, int TimeoutLimit ) Library "NWNETAPI.DLL"

$#2+KOpenSemaphore

Function Integer OpenSemaphore ( string SemaphoreName, int InitialValue, ref long SemaphoreHandle, ref int OpenCount ) Library "NWNETAPI.DLL"

$#2+KReleaseFile

Function Integer ReleaseFile ( string FileName ) Library "NWNETAPI.DLL"

$#2+KReleaseFileSet

Function Integer ReleaseFileSet ( ) Library "NWNETAPI.DLL"

$#2+KReleaseLogicalRecord

Function Integer ReleaseLogicalRecord ( string LogicalRecordName ) Library "NWNETAPI.DLL"

$#2+KReleaseLogicalRecordSet

Function Integer ReleaseLogicalRecordSet ( ) Library "NWNETAPI.DLL"

$#2+KReleasePhysicalRecord

Function Integer ReleasePhysicalRecord ( int FileHandle, long RecordStartOffset, long RecordLength ) Library "NWNETAPI.DLL"

$#2+KReleasePhysicalRecordSet

Function Integer ReleasePhysicalRecordSet ( ) Library "NWNETAPI.DLL"

$#2+KSetLockMode

Function Integer SetLockMode ( int LockMode ) Library "NWNETAPI.DLL"

$#2+KSignalSemaphore

Function Integer SignalSemaphore ( long SemaphoreHandle ) Library "NWNETAPI.DLL"

$#2+KWaitOnSemaphore

Function Integer WaitOnSemaphore ( long SemaphoreHandle, int TimeoutLimit ) Library "NWNETAPI.DLL"

$#2+KTTSAbortTransaction

Function Integer TTSAbortTransaction ( ) Library "NWNETAPI.DLL"

$#2+KTTSBeginTransaction

Function Integer TTSBeginTransaction ( ) Library "NWNETAPI.DLL"

$#2+KTTSEndTransaction

Function Integer TTSEndTransaction ( ref long TransactionNumber ) Library "NWNETAPI.DLL"

$#2+KTTSGetApplicationThresholds

Function Integer TTSGetApplicationThresholds ( ref int LogicalRecordLockThreshold, ref int PhysicalRecordLockThreshold ) Library "NWNETAPI.DLL"

$#2+KTTSGetStats

Function Integer TTSGetStats ( int ConnectionID, ref int LastTask, int StructSize, ref TTS_STATS TTSStats ) Library "NWNETAPI.DLL"

//2.x only

$#2+KTTSGetWorkstationThresholds

Function Integer TTSGetWorkstationThresholds ( ref int LogicalRecordLockThreshold, ref int PhysicalRecordLockThreshold ) Library "NWNETAPI.DLL"

$#2+KTTSIsAvailable

Function Integer TTSIsAvailable ( ) Library "NWNETAPI.DLL"

$#2+KTTSSetApplicationThresholds

Function TTSSetApplicationThresholds ( ref int LogicalRecordLockThreshold , int PhysicalRecordLockThreshold ) Library "NWNETAPI.DLL"

$#2+KTTSSetWorkstationThresholds

Function Integer TTSSetWorkstationThresholds ( int LogicalRecordLockThreshold, int PhysicalRecordLockThreshold ) Library "NWNETAPI.DLL"

$#2+KTTSTransactionStatus

Function TTSTransactionStatus ( long TransactionNumber ) Library "NWNETAPI.DLL"

$#2+KTransaction Tracking Services Structures

TTS_STATS

$#2KTTS_STATS

SystemElapsedTime	long
TTSSupported		string
TTSEnabled		string
TTSVolumeNumber		integer
TTSMaxOpenTransactions	integer
TTSMaxTransactionsOpened	integer
TTSCurrTransactionsOpened	integer
TTSTotalTransactions	long
TTSTotalWrites		long
TTSTotalBackouts		long
TTSUnfilledBackouts	integer
TTSDiskBlocksInUse	integer
TTSFATAllocations		long
TTSFileSizeChanges	long
TTSFilesTruncated		long
NumberOfTransactions	string
ConnectionNumber		string
TaskNumber		string

$#2+KEndOfJob

Function EndOfJob ( ) Library "NWNETAPI.DLL"

$#2+KGetConnectionID

Function Integer GetConnectionID ( string FileServerName, ref int ConnectionID ) Library "NWNETAPI.DLL"

$#2+KGetDefaultConnectionID

Function Integer GetDefaultConnectionID ( ) Library "NWNETAPI.DLL"

$#2+KGetNetWareShellVersion

Function Integer GetNetWareShellVersion ( ref int MajorVersion, ref int MinorVersion, ref int RevisionLevel ) Library "NWNETAPI.DLL"

$#2+KGetNumberOfLocalDrives

Function Integer GetNumberOfLocalDrives ( ) Library "NWNETAPI.DLL"

$#2+KGetPreferredConnectionID

Function Integer GetPreferredConnectionID ( ) Library "NWNETAPI.DLL"

$#2+KGetPrimaryConnectionID

Function Integer GetPrimaryConnectionID ( ) Library "NWNETAPI.DLL"

$#2+KGetWorkstationEnvironment

Subroutine GetWorkstationEnvironment ( ref [Any] OperatingSystemType, ref [Any] OperatingSystemVersion, ref string HardwareType, [Any] ShortHardWareType ) Library "NWNETAPI.DLL"

//get max length of strings

$#2+KIsConnectionIDInUse

Function Integer IsConnectionIDInUse ( int ConnectionID ) Library "NWNETAPI.DLL"

$#2+KSetEndOfJobStatus

Function Integer SetEndOfJobStatus ( int EndOfJobFlag ) Library "NWNETAPI.DLL"

$#2+KSetNetWareErrorMode

Function Integer SetNetWareErrorMode ( int ErrorMode ) Library "NWNETAPI.DLL"

$#2+KSetPreferredConnectionID

Subroutine SetPreferredConnectionID ( int ConnectionID ) Library "NWNETAPI.DLL" 

$#2+KSetPrimaryConnectionID

Function Integer SetPrimaryConnectionID ( int PrimaryConnectionID ) Library "NWNETAPI.DLL"

$#2+KCopyright Notice

NetWare Interface for Visual Basic (NIVB)
Version 1.0
Copyright 1993, Novell, Inc.

NIVB is based on the NetWare C Interface for Windows Software Development Kit (SDK), version 1.3 of the NetWare DLLs.  The DLLs can be downloaded from Compuserve's NOVFILES forum (WINUP7.ZIP).  They are also included with an example program (NWTEST.ZIP) that illustrates how to use NIVB.  NWTEST can be downloaded from NOVLIB.

NIVB supports all NetWare API functions except IPX/SPX.

The SDK is available through Novell's Professional Developer's Program (PDP).  For information on becoming a member of the PDP and obtaining Novell SDKs, call 1-800-RED-WORD (800-733-9673) or 512-794-1796.  The SDK includes documentation for the APIs in the Windows DLLs, so to program to NIVB, you will need the SDK.

NIVB is not supported through Novell's regular Technical Support channels.  It is mostly untested, and therefore Novell makes no warranty of its merchantability or fitness for any purpose.

NIVB was developed by Novell's Systems Research Department, publishers of NetWare Application Notes.  An Application Note on NIVB will be published in the July 1993 issue.  Also, look for an extensive example program (called NWTEST) that illustrates how to use the interface.

Barring unforseen circumstances, Systems Research will (someday real soon) publish a version of NIVB based on the NetWare 4.0 Client SDK, with support for NetWare 4.0 and NetWare Directory Services (NDS).

The Systems Research Department welcomes feedback and questions on NIVB. Please contact:

	Morgan B. Adair
	Novell, Inc.
	122 East 1700 South
	Provo, Utah 84606

	Fax:  801-429-5511
	MHS:  madair@novell
	Internet:  madair@novell.com
	Compuserve:  76424,410

	Last resort: 801-429-7757

$#2KGood News

What then can we say about these things?  If God is for us, who can be against us?  He do did not withhold his own Son, but gave Him up for all of us, will He not with Him also give us everything else?  Who will bring any charge against God's elect?  It is God who justifies.  Who is to condemn?  It is Christ Jesus, who dies, yes, who was raised, who is a the right hand of God, who indeed intercedes for us.  Who will seperate us from the love of Christ?  Will hardship, or distress, or persecution, or famine, or nakedness, or peril, or sword?  As it is written, 'For you sake we are being killed all day long; we are accounted as sheep to be slaughtered.'  No in all these things we are more than conquerors through Him who loved us.  For I am convinced that neither death, nor life, nor angels, nor rulers, nor things present, nor things to come, nor powers, nor height, nor depth, nor anything else in all creation, will be able to seperate us from the love of God in Christ Jesus our Lord.  ( Romans 8:31-39, NRSV)

For by grace you have been saved through faith, and this is not your own doing; it is the gift of God -- not the result of works, so that no one may boast.  For we are what He has made us, created in Christ Jesus for good works, which God prepared beforehand to be our way of life. ( Ephesians 2:8-10, NRSV)

Now to Him who by the power at work within us is able to accomplish abundantly far more than all we can ask or imagine, to Him be glory in the church and in Christ Jesus to all generations, forever and ever.  Amen. ( Ephesians 3:20-21, NRSV )