9.1. Разные функции
9.2. Каналы, подключение к файл-серверу и отключение от файл-сервера
9.3. Работа с томами файл-сервера
9.4. Отображение дисков рабочей станции на сетевые каталоги
9.5. Просмотр содержимого каталогов
9.6. Создание, переименование и удаление каталога
9.7. Работа с файлами
9.9. Работа с базой объектов Bindery
9.10. Передача и прием сообщений
9.11. Управление файл-сервером
9.12. Работа с протоколом IPX
int GetShellVersionInformation(BYTE *MajorVersion, BYTE *MinorVersion, BYTE *RevisionLevel);
Функция возвращает 0xFF при нормальном завершении или 0 при ошибке.
Параметры:
MajorVersion | верхний (major) номер версии |
MinorVersion | нижний (minor) номер версии |
RevisionLevel | номер изменения (revision) |
int IntSwap(int UnswappedInteger);
Функция меняет местами байты в 16-битовом слове, которое передается ей в качестве параметра, возвращая полученное значение.
Параметры:
UnswappedInteger | преобразуемое слово |
long LongSwap(long UnswappedLong);
Функция меняет местами байты в 32-битовом слове, которое передается ей в качестве параметра, возвращая полученное значение.
Параметры:
UnswappedLong | преобразуемое слово |
int AttachToFileServer(char *ServerName, WORD *ConnectionID);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ServerName | указатель на текстовую строку с именем файл-сервера |
ConnectionID | адрес переменной типа WORD, в которую будет записан номер созданного канала |
void DetachFromFileServer(WORD ConnectionID);
Параметры:
ConnectionID | номер канала, распределенного серверу, от которого вы собираетесь отключиться |
WORD GetPrimaryConnectionID(void);
Функция возвращает номер канала первичного сервера.
WORD GetDefaultConnectionID(void);
Функция возвращает номер канала текущего сервера.
void SetPreferredConnectionID(BYTE ConnectionID);
Параметры:
ConnectionID | номер канала для сервера, который должен стать предпочтительным |
int LoginToFileServer(char *ObjectName, WORD ObjectType, char *ObjectPassword);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ObjectName | указатель на имя пользователя, под которым его зарегистрировал супервизор сети или руководитель группы |
ObjectType | тип объекта |
ObjectPassword | указатель на текстовую строку, содержащую пароль пользователя |
void Logout(void);
void LogoutFromFileServer(WORD ConnectionID);
Параметры:
ConnectionID | номер канала сервера, от которого выполняется отключение |
int GetVolumeName(int VolumeNumber, char*VolumeName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
VolumeNumber | номер тома, для которого необходимо получить имя |
VolumeName | указатель на буфер размером 16 байт, в который будет записано имя тома |
int GetVolumeNamber(char*VolumeName, int *VolumeNumber);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
VolumeName | имя тома |
VolumeNumber | указатель на переменную, в которую будет записан номер тома |
int GetVolumeInfoWithNumber(BYTE VolumeNumber, char *VolumeName, WORD *TotalBlocks, WORD *SectorsPerBlock, WORD *AvailableBlocks, WORD *TotalDirectorySlots, WORD *AvailableDirectorySlots, WORD *Removable);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
VolumeNumber | номер тома, для которого необходимо получить информацию |
VolumeName | имя тома |
TotalBlocks | общее количество блоков |
SectorsPerBlock | количество секторов в одном блоке |
AvailableBlocks | количество свободных блоков |
TotalDirectorySlots | количество каталогов, имеющихся на томе |
AvailableDirectorySlots | количество каталогов, которые можно дополнительно создать на томе |
Removable | признак того, что том является съемным |
int AllocPermanentDirectoryHandle(BYTE DirectoryHandle, char *DirectoryPath, char DriveLetter, BYTE *NewDirectoryHandle, BYTE *EffectiveRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | полный путь к каталогу |
DriveLetter | отображаемый диск |
NewDirectoryHandle | указатель на переменную, в которую будет записан индекс, связанный с отображаемым каталогом |
EffectiveRightsMask | указатель на байт памяти, в который будет записана маска прав доступа пользователя в данном каталоге |
int DeallocateDirectoryHandle(BYTE DirectoryHandle);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога, для которого удаляется элемент из таблицы индексов |
int GetDirectoryHandle(char Drive);
Функция возвращает индекс каталога или 0 при ошибке.
Параметры:
Drive | номер диска, для которого необходимо получить индекс каталога (0 - A:, 1 - B:, и т. д.) |
int AllocTemporaryDirectoryHandle(BYTE DirectoryHandle, char *DirectoryPath, char DriveLetter, BYTE *NewDirectoryHandle, BYTE *EffectiveRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | полный путь к каталогу |
DriveLetter | отображаемый диск |
NewDirectoryHandle | указатель на переменную, в которую будет записан индекс, связанный с отображаемым каталогом |
EffectiveRightsMask | указатель на байт памяти, в который будет записана маска прав доступа пользователя в данном каталоге |
int ScanDirectoryInformation(BYTE DirectoryHandle, char *SearchDirectoryPath, int *SequenceNumber, char *DirectoryName, BYTE *CreationDateAndTime, long *OwnerObjectID, BYTE *MaximumRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс просматриваемого каталога |
SearchDirectoryPath | путь к просматриваемому каталогу |
SequenceNumber | указатель на слово, которое должно содержать нулевое значение при первом вызове функции |
DirectoryName | имя обнаруженного подкаталога |
CreationDateAndTime | указатель на область памяти, размером 4 байта, в которую будет записана информация о дате и времени создания найденного подкаталога |
OwnerObjectID | указатель на слово, в котором будет записан идентификатор пользователя, создавшего каталог |
MaximumRightsMask | указатель на байт, в который будет записано значение маски прав доступа, связанное с данным каталогом |
int CreateDirectory(BYTE DirectoryHandle, char* DirectoryPath, BYTE MaximumGightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
MaximumRightsMask | вид доступа, разрешенный пользователям для данного rаталога |
int RenameDirectory(BYTE DirectoryHandle, char* DirectoryPath, char *NewDirectoryName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
NewDirectoryName | новое имя каталога |
int DeleteDirectory(BYTE DirectoryHandle, char* DirectoryPath);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
int GetEffectiveDirectoryRights(BYTE DirectoryHandle, char *DirectoryPath, BYTE *EffectiveRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
EffectiveRightsMask | указатель на байт памяти, в который будет записан байт маски прав доступа |
int SetDirectoryInformation(BYTE DirectoryHandle, char *DirectoryPath, BYTE *NewCreationDateAndTime, long NewOwnerObjectID, BYTE MaximumRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
NewCreationDateAndTime | указатель на массив из четырех байт с новыми значениями даты и времени |
NewOwnerObjectID | идентификатор нового владельца каталога |
MaximumRightsMask | новое значение для маски прав доступа каталога |
int ModifyMaximumRightsMask(BYTE DirectoryHandle, char *DirectoryPath, BYTE RevokeRightsMask, BYTE GrantRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
RevokeRightsMask | удаляемые права доступа |
GrantRightsMask | добавляемые права доступа |
int _ScanFileInformation(BYTE DirectoryHandle, char *FilePath, BYTE SearchAttributes, int *SequenceNumber, char *FileName, BYTE *FileAttributes, BYTE *ExtendedFileAttributes, long *FileSize, char *CreationDate, char *LastAccessDate, char *LastUpdateDateAndTime, char *LastArchiveDateAndTime, long *FileOwnerID);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс просматриваемого каталога |
FilePath | путь к просматриваемому каталогу |
SearchAttributes | параметр определяет, какие типы файлов нужно найти |
SequenceNumber | параметр при первом вызове функции должен указывать на переменную, которая имеет значение 0xFFFF |
FileName | указатель на буфер размером 15 байт, в который будет записано имя найденного файла |
FileAttributes | атрибуты файла |
ExtendedFileAttributes | расширенные атрибуты файла |
FileSize | размер файла |
CreationDate | дата создания файла |
LastAccessDate | дата последнего доступа к файлу |
LastUpdateDateAndTime | дата и время последнего обновления содержимого файла |
LastArchiveDateAndTime | дата и время выгрузки файла |
FileOwnerID | идентификатор пользователя, создавшего файл |
int SetFileInformation(BYTE DirectoryHandle, char *FilePath, BYTE SearchAttributes, BYTE FileAttributes, BYTE ExtendedFileAttributes, char *CreationDate, char *LastAccessDate, char *LastUpdateDateAndTime, char *LastArchiveDateAndTime, long *FileOwnerID);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс файла |
FilePath | путь к файлу |
SearchAttributes | тип файла |
FileAttributes | новые атрибуты файла |
ExtendedFileAttributes | новые расширенные атрибуты файла |
CreationDate | новая дата создания файла |
LastAccessDate | новая дата последнего доступа к файлу |
LastUpdateDateAndTime | новые дата и время последнего обновления содержимого файла |
LastArchiveDateAndTime | новые дата и время выгрузки файла |
FileOwnerID | новый идентификатор пользователя, создавшего файл |
int GetExtendedFileAttributes(char *FilePath, BYTE *ExtendedFileAttributes);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FilePath | путь к файлу |
ExtendedFileAttributes | расширенные атрибуты файла |
int SetExtendedFileAttributes(char *FilePath, BYTE *NewExtendedFileattributes);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FilePath | путь к файлу |
NewExtendedFileAttributes | новые расширенные атрибуты файла |
int FileServerFileCopy(int FromHandle, int ToHandle, long SourceFileOffset, long DestinationFileOffset, long NumberOfBytesToCopy, long *BytesCopied);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FromHandle | индекс файла, из которого копируются данные |
ToHandle | индекс файла, в который копируются данные |
SourceFileOffset | смещение в исходном файле |
DestinationFileOffset | смещение в выходном файле |
NumberOfBytesToCopy | количество копируемых байт |
BytesCopied | указатель на переменную, в которую будет записано количество действительно скопированных байт |
int EraseFiles(BYTE DirectoryHandle, char *FilePath, BYTE SearchAttributes);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога, в котором находится удаляемый файл |
FilePath | путь к удаляемому файлу |
SearchAttributes | атрибуты удаляемого файла |
int LogFile(char *FileName, BYTE LockDirective,WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileName | путь к файлу, который необходимо добавить в группу |
LockDirective | параметр определяет, надо ли блокировать файл сразу после его добавления в группу |
Timeout | период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если файл нельзя заблокировать немедленно |
int ClearFile(char *FileName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileName | путь к файлу, который необходимо удалить из группы |
void ClearFileSet(void);
int LockFileSet(WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
Timeout | период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если группу файлов нельзя заблокировать немедленно |
int ReleaseFile(char *FileName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileName | путь к файлу, который необходимо разблокировать |
void ReleaseFileSet(void);
int LogPhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength, BYTE LockDirective,WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileHandle | индекс файла, которому принадлежит блокируемая запись |
RecordStartOffset | смещение от начала файла |
RecordLength | размер блокируемой записи в байтах |
LockDirective | параметр определяет, надо ли блокировать запись сразу после добавления ее в группу |
Timeout | период времени (в 18-х долях секунды), в течении которого файл-сервер будет ожидать, если запись нельзя заблокировать немедленно |
int ClearPhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileHandle | индекс файла, которому принадлежит запись |
RecordStartOffset | смещение от начала файла |
RecordLength | размер блокируемой записи в байтах |
void ClearPhysicalRecordSet(void);
int LockPhysicalRecordSet(BYTE LockDirective, WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LockDirective | параметр LockDirective задает режим блокирования. Если он равен нулю, записи блокируются для монопольного использования заблокировавшей записи программой. Если параметр имеет значение единице, записи блокируются для совместного использования в режиме чтения |
Timeout | период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если группу записей нельзя заблокировать немедленно |
int ReleasePhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileHandle | индекс файла, которому принадлежит запись |
RecordStartOffset | смещение от начала файла |
RecordLength | размер записи в байтах |
void ReleasePhysicalRecordSet(void);
int LogLogicalRecord(char LogicalRecordName, BYTE LockDirective,WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LogicalRecordName | имя логической записи, добавляемой в группу блокируемых |
LockDirective | параметр определяет, надо ли блокировать запись сразу после добавления ее в группу |
Timeout | период времени (в 18-х долях секунды), в течении которого файл-сервер будет ожидать, если запись нельзя заблокировать немедленно |
int ClearLogicalRecord(char LogicalRecordName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LogicalRecordName | имя логической записи |
void ClearLogicalRecordSet(void);
int LockLogicalRecordSet(WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
Timeout | период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если группу логических записей нельзя заблокировать немедленно |
int ReleaseLogicalRecord(char LogicalRecordName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LogicalRecordName | имя логической записи |
void ReleaseLogicalRecordSet(void);
int OpenSemaphore(char *SemaphoreName, int InitialValue, long *SemaphoreHandle, WORD *OpenCount);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreName | имя открываемого семафора |
InitialValue | значение семафора при первом открытии |
SemaphoreHandle | указатель на переменную, в которую будет записан индекс открытого семафора |
OpenCount | счетчик использования семафора |
int CloseSemaphore(long SemaphoreHandle);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreHandle | индекс семафора |
int ExamineSemaphore(long SemaphoreHandle, int *SemaphoreValue, WORD *OpenCount);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreHandle | индекс семафора |
SemaphoreValue | значение семафора |
OpenCount | счетчик использования |
int WaitOnSemaphore(long SemaphoreHandle, WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreHandle | индекс семафора |
Timeout | время, в течении которого функция ожидает доступность ресурса (в 18-х долях секунды). |
int SignalSemaphore(long SemaphoreHandle);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreHandle | индекс семафора |
int GetBinderyAccessLevel(BYTE *SecurityAccessLevel, long *ObjectID);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SecurityAccessLevel | указатель на слово, в которое будет записан уровень доступа |
ObjectID | указатель на двойное слово, в которое будет записан идентификатор пользователя |
int GetBinderyObjectName(long ObjectID, char *ObjectName, WORD *ObjectType);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ObjectID | идентификатор объекта |
ObjectName | указатель на переменную, в которую будет записано имя объекта |
ObjectType | указатель на переменную, в которую будет записан тип объекта |
int GetBinderyObjectID(char *ObjectName,WORD ObjectType, long *ObjectID);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ObjectName | имя объекта |
ObjectType | тип объекта |
ObjectID | указатель на переменную, в которую будет записан идентификатор объекта |
int ScanBinderyObject(char *SearchObjectName, WORD SearchObjectType, long *ObjectID, char *ObjectName, WORD *ObjectType, char *ObjectHasProperties, char *ObjectFlag, char *ObjectSecurity);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SearchObjectName | шаблон имени объекта |
SearchObjectType | тип объекта, который нужно найти, или -1 для поиска объектов всех типов |
ObjectID | при первом вызове в переменную, на которую указывает параметр ObjectID, необходимо записать значение -1. В дальнейшем в эту переменную будет записываться идентификатор найденного объекта |
ObjectName | имя найденного объекта |
ObjectType | тип найденного объекта |
ObjectHasProperties | в переменную, на которую указывает параметр ObjectHasProperties, записывается значение 0xFF, если объект имеет дополнительную связанную с ним информацию (Properties), которую можно извлечь специально предназначенными для этого функциями |
ObjectFlag | флаг |
ObjectSecurity | байт доступа |
int ScanProperty(char *ObjectName, WORD ObjectType, char *SearchPropertyName, long *SequenceNumber, char *PropertyName, char *PropertyFlag, char *PropertySecurity, char *PropertyHasValue, char *MoreProperties);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ObjectName | имя объекта |
ObjectType | тип объекта |
SearchPropertyName | имя записи или шаблон имени записи |
SequenceNumber | при первом вызове переменная, на которую указывает параметр SequenceNumber, должна содержать значение -1. При последующих вызовах содержимое этой переменной будет изменяться автоматически |
PropertyName | имя записи |
PropertyFlag | флаг записи |
PropertySecurity | байт доступа |
PropertyHasValue | признак того, что запись имеет значения |
MoreProperties | признак того, что в объекте есть еще и другие записи |
BYTE GetBroadcastMode(void);
Функция возвращает значение в диапазона от 0 до 3, соответствующее текущему режиму приема сообщений.
void SetBroadcastMode(BYTE BroadcastMode);
Параметры:
BroadcastMode | новый режим приема сообщений |
int SendBroadcastMessage(char *Message, WORD *ConnectionList, BYTE *ResultList, WORD ConnectionCount);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
Message | передаваемое сообщение |
ConnectionList | указатель на массив слов, содержащий номера каналов, используемых файл-сервером для связи с рабочими станциями |
ResultList | массив байт, в котором для каждой станции отражается результат посылки сообщения |
ConnectionCount | размер массива ConnectionList |
int LogNetworkMessage(char *Message);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
Message | cообщение, которое должно быть записано в журнал (файл net$log.msg в каталоге SYS:SYSTEM). Размер сообщения не должен превышать 80 символов, включая закрывающий строку двоичный ноль |
int GetBroadcastMessage(char *MessageBuffer);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
MessageBuffer | буфер для принимаемого сообщения |
void GetFileServerDateAndTime(BYTE *DateAndTime);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DateAndTime | указатель на массив размером 7 байт, в который будет записана информация о дате и времени |
int GetFileServerDescriptionStrings(char *CompanyName, char *Revision, char *RevisionDate, char *CopyrightNotice);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
CompanyName | указатель на буфер размером 80 байт, в который будет записано название фирмы-изготовителя NetWare |
Revision | указатель на буфер размером 80 байт, в который будут записаны номер версии и номер изменений Novell NetWare |
RevisionDate | указатель на буфер размером 24 байта, в который будет записана дата внесения изменений |
CopyrightNotice | указатель на буфер размером 80 байт, в который будут записаны сведения о правах на копирование операционной системы Novell NetWare |
void GetFileServerName(WORD ConnectionID, char *FileServerName);
Параметры:
ConnectionID | номер канала, используемый рабочей станцией для связи с файл-сервером |
FileServerName | указатель на буфер размером 48 байт, в который будет записано имя файл-сервера |
int GetServerInformation(int StructSize, FILE_SERV_INFO *ServerInfo);
Параметры:
StructSize | количество байт, которые необходимо записать в структуру FILE_SERV_INFO, обычно используется значение sizeof(struct FILE_SERV_INFO) |
ServerInfo | указатель на структуру FILE_SERV_INFO, в которую будет записана информация о файл-сервере |
Формат структуры FILE_SERV_INFO:
typedef struct { char serverName[48]; BYTE netwareVersion; BYTE netwareSubVersion; WORD maxConnectionsSupported; WORD connectionsInUse; WORD maxVolumesSupported; BYTE revisionLevel; BYTE SFTLevel; BYTE TTSLevel; WORD peakConnectionsUsed; BYTE accountingVersion; BYTE VAPversion; BYTE queingVersion; BYTE printServerVersion; BYTE virtualConsoleVersion; BYTE securityRestrictionLevel; BYTE internetBridgeSupport; } FILE_SERV_INFO;
Описание полей структуры FILE_SERV_INFO:
Имя поля | Описание |
serverName | имя файл-сервера |
netwareVersion | версия операционной системы Novell NetWare, работающей на данном файл-сервере |
netwareSubVersion | номер изменения версии операционной системы Novell NetWare, работающей на данном файл-сервере |
maxConnectionsSupported | максимальное количество каналов, которые данный файл-сервер может создать с рабочими станциями |
connectionsInUse | количество используемых в настоящий момент каналов |
maxVolumesSupported | максимальное количество сетевых томов, которое может быть создано на данном файл-сервере |
revisionLevel | номер изменений |
SFTLevel | версия системы SFT |
TTSLevel | версия системы обработки транзакций TTS |
peakConnectionsUsed | пиковое количество используемых каналов |
accountingVersion | версия системы учета работы пользователей |
VAPversion | версия системы VAP |
queingVersion | версия системы работы с очередями |
printServerVersion | версия сервера печати |
virtualConsoleVersion | версия виртуальной консоли |
securityRestrictionLevel | уровень ограничения доступа |
internetBridgeSupport | поддержка мостов между сетями |
int GetFileServerLoginStatus(int *LoginEnabledFlag);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LoginEnabledFlag | по адресу, заданному параметром LoginEnabledFlag, функция запишет значение флага разрешения подключения |
int SetFileServerDateAndTime(WORD Year, WORD Month, WORD Day, WORD Hour, WORD Minute, WORD Second);
Параметры:
Year | новое значение для года |
Month | месяц |
Day | день месяца |
Hour | часы |
Minute | минуты |
Second | секунды |
int DisableFileServerLogin(void);
Функция возвращает 0 при успешном завершении или код ошибки.
int EnableFileServerLogin(void);
Функция возвращает 0 при успешном завершении или код ошибки.
int DownFileServer(int ForceFlag);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ForceFlag | параметр определяет, надо ли завершать работу файл-сервера, если есть рабочие станции, открывшие файлы в сетевых каталогах. Если параметр установлен в 0, при попытке завершить работу файл-сервера возвращается код ошибки FFh, если имеются открытые пользователями файлы. Если значение параметра равно 1, сервер завершает свою работу в любом случае |
В этом разделе мы приведем описание тех функций, предназначенных для работы с протоколом IPX, которые были использованы в нашей книге. Полное описание дано в документации, поставляющейся с библиотекой Novell NetWare C Interface.
int IPXInitialize(void) ;
Функция возвращает 0 при успешном завершении или код ошибки.
int IPXOpenSocket(char *SocketNumber, char SocketType) ;
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SocketNumber | указатель на двухбайтовый массив, содержащий значение сокета или ноль, если требуется получить динамический сокет |
SocketType | 00h - короткоживущий сокет, FFh - долгоживущий сокет |
int IPXCloseSocket(char *SocketNumber);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SocketNumber | указатель на двухбайтовый массив, содержащий значение закрываемого сокета |
void IPXListenForPacket(ECB *EventControlBlock);
Параметры:
EventControlBlock | указатель на блок ECB |
void IPXSendPacket(ECB *EventControlBlock);
Параметры:
EventControlBlock | указатель на блок ECB |
void IPXCancelEvent(ECB *EventControlBlock);
Параметры:
EventControlBlock | указатель на блок ECB |
void IPXGetInternetworkAddress(IPXAddress *NetworkAddress) ;
Параметры:
NetworkAddress | указатель на массив из 12 байт, в который будет записан полный сетевой адрес |
Сетевой адрес
typedef struct IPXAddress { BYTE network[4]; BYTE node[6]; BYTE socket[2]; } IPXAddress;
Заголовок пакета IPX
typedef struct IPXHeader { WORD checkSum; WORD length; BYTE transportControl; BYTE packetType; IPXAddress destination; IPXAddress source; } IPXHeader;
Дальние указатели на данные и функции
#define FARDATAPTR(type,var) type far *var #define FARCODEPTR(type,var) type (far *var)()
Дескриптор фрагмента
typedef struct ECBFragment { FARDATAPTR(void,address); WORD size; } ECBFragment;
Блок ECB
typedef struct ECB { FARDATAPTR(void, linkAddress); FARCODEPTR(void, ESRAddress); BYTE inUseFlag; BYTE completionCode; WORD socketNumber; BYTE IPXWorkspace[4]; BYTE driverWorkspace[12]; BYTE immediateAddress[6]; WORD fragmentCount; ECBFragment fragmentDescriptor[2]; } ECB;