Добавление логической записи в группу
Добавление логической записи в группу
int LogLogicalRecord(char LogicalRecordName, BYTE LockDirective,WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LogicalRecordName | имя логической записи, добавляемой в группу блокируемых |
LockDirective | параметр определяет, надо ли блокировать запись сразу после добавления ее в группу |
Timeout | период времени (в 18-х долях секунды), в течении которого файл-сервер будет ожидать, если запись нельзя заблокировать немедленно |
Инициализация драйвера IPX
Инициализация драйвера IPX
int IPXInitialize(void) ;
Функция возвращает 0 при успешном завершении или код ошибки.
Изменение атрибутов файла
Изменение атрибутов файла
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 SetDirectoryInformation(BYTE DirectoryHandle, char *DirectoryPath, BYTE *NewCreationDateAndTime, long NewOwnerObjectID, BYTE MaximumRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
NewCreationDateAndTime | указатель на массив из четырех байт с новыми значениями даты и времени |
NewOwnerObjectID | идентификатор нового владельца каталога |
MaximumRightsMask | новое значение для маски прав доступа каталога |
Изменение байта расширенных атрибутов
Изменение байта расширенных атрибутов
int SetExtendedFileAttributes(char *FilePath, BYTE *NewExtendedFileattributes);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FilePath | путь к файлу |
NewExtendedFileAttributes | новые расширенные атрибуты файла |
Изменение маски доступа каталога
Изменение маски доступа каталога
int ModifyMaximumRightsMask(BYTE DirectoryHandle, char *DirectoryPath, BYTE RevokeRightsMask, BYTE GrantRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
RevokeRightsMask | удаляемые права доступа |
GrantRightsMask | добавляемые права доступа |
Копирование файлов
Копирование файлов
int FileServerFileCopy(int FromHandle, int ToHandle, long SourceFileOffset, long DestinationFileOffset, long NumberOfBytesToCopy, long *BytesCopied);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FromHandle | индекс файла, из которого копируются данные |
ToHandle | индекс файла, в который копируются данные |
SourceFileOffset | смещение в исходном файле |
DestinationFileOffset | смещение в выходном файле |
NumberOfBytesToCopy | количество копируемых байт |
BytesCopied | указатель на переменную, в которую будет записано количество действительно скопированных байт |
Обмен байтов в 16-битовом слове
Обмен байтов в 16-битовом слове
int IntSwap(int UnswappedInteger);
Функция меняет местами байты в 16-битовом слове, которое передается ей в качестве параметра, возвращая полученное значение.
Параметры:
UnswappedInteger | преобразуемое слово |
Обмен байтов в 32-битовом слове
Обмен байтов в 32-битовом слове
long LongSwap(long UnswappedLong);
Функция меняет местами байты в 32-битовом слове, которое передается ей в качестве параметра, возвращая полученное значение.
Параметры:
UnswappedLong | преобразуемое слово |
Определение даты и времени
Определение даты и времени
void GetFileServerDateAndTime(BYTE *DateAndTime);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DateAndTime | указатель на массив размером 7 байт, в который будет записана информация о дате и времени |
Определение имени файл-сервера
Определение имени файл-сервера
void GetFileServerName(WORD ConnectionID, char *FileServerName);
Параметры:
ConnectionID | номер канала, используемый рабочей станцией для связи с файл-сервером |
FileServerName | указатель на буфер размером 48 байт, в который будет записано имя файл-сервера |
Определение режима приема сообщений
Определение режима приема сообщений
BYTE GetBroadcastMode(void);
Функция возвращает значение в диапазона от 0 до 3, соответствующее текущему режиму приема сообщений.
Определение собственного сетевого адреса
Определение собственного сетевого адреса
void IPXGetInternetworkAddress(IPXAddress *NetworkAddress) ;
Параметры:
NetworkAddress | указатель на массив из 12 байт, в который будет записан полный сетевой адрес |
Определение собственного уровня доступа
Определение собственного уровня доступа
int GetBinderyAccessLevel(BYTE *SecurityAccessLevel, long *ObjectID);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SecurityAccessLevel | указатель на слово, в которое будет записан уровень доступа |
ObjectID | указатель на двойное слово, в которое будет записан идентификатор пользователя |
Определение состояния семафора
Определение состояния семафора
int ExamineSemaphore(long SemaphoreHandle, int *SemaphoreValue, WORD *OpenCount);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreHandle | индекс семафора |
SemaphoreValue | значение семафора |
OpenCount | счетчик использования |
Определение возможности подключения к файл-серверу
Определение возможности подключения к файл-серверу
int GetFileServerLoginStatus(int *LoginEnabledFlag);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LoginEnabledFlag | по адресу, заданному параметром LoginEnabledFlag, функция запишет значение флага разрешения подключения |
Останов файл-сервера
Останов файл-сервера
int DownFileServer(int ForceFlag);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ForceFlag | параметр определяет, надо ли завершать работу файл-сервера, если есть рабочие станции, открывшие файлы в сетевых каталогах. Если параметр установлен в 0, при попытке завершить работу файл-сервера возвращается код ошибки FFh, если имеются открытые пользователями файлы. Если значение параметра равно 1, сервер завершает свою работу в любом случае |
Отключение от файл-сервера
Отключение от файл-сервера
void DetachFromFileServer(WORD ConnectionID);
Параметры:
ConnectionID | номер канала, распределенного серверу, от которого вы собираетесь отключиться |
Отключение от одного файл-сервера
Отключение от одного файл-сервера
void LogoutFromFileServer(WORD ConnectionID);
Параметры:
ConnectionID | номер канала сервера, от которого выполняется отключение |
Отключение от всех файл-серверов
Отключение от всех файл-серверов
void Logout(void);
Открытие семафора
Открытие семафора
int OpenSemaphore(char *SemaphoreName, int InitialValue, long *SemaphoreHandle, WORD *OpenCount);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreName | имя открываемого семафора |
InitialValue | значение семафора при первом открытии |
SemaphoreHandle | указатель на переменную, в которую будет записан индекс открытого семафора |
OpenCount | счетчик использования семафора |
Открытие сокета
Открытие сокета
int IPXOpenSocket(char *SocketNumber, char SocketType) ;
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SocketNumber | указатель на двухбайтовый массив, содержащий значение сокета или ноль, если требуется получить динамический сокет |
SocketType | 00h - короткоживущий сокет, FFh - долгоживущий сокет |
Отмена блока ECB
Отмена блока ECB
void IPXCancelEvent(ECB *EventControlBlock);
Параметры:
EventControlBlock | указатель на блок ECB |
Передача пакета
Передача пакета
void IPXSendPacket(ECB *EventControlBlock);
Параметры:
EventControlBlock | указатель на блок ECB |
Передача сообщений пользователям
Передача сообщений пользователям
int SendBroadcastMessage(char *Message, WORD *ConnectionList, BYTE *ResultList, WORD ConnectionCount);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
Message | передаваемое сообщение |
ConnectionList | указатель на массив слов, содержащий номера каналов, используемых файл-сервером для связи с рабочими станциями |
ResultList | массив байт, в котором для каждой станции отражается результат посылки сообщения |
ConnectionCount | размер массива ConnectionList |
Переименование каталога
Переименование каталога
int RenameDirectory(BYTE DirectoryHandle, char* DirectoryPath, char *NewDirectoryName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
NewDirectoryName | новое имя каталога |
Подключение к файл-серверу
Подключение к файл-серверу
int AttachToFileServer(char *ServerName, WORD *ConnectionID);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ServerName | указатель на текстовую строку с именем файл-сервера |
ConnectionID | адрес переменной типа WORD, в которую будет записан номер созданного канала |
Подключение к файл-серверу
int LoginToFileServer(char *ObjectName, WORD ObjectType, char *ObjectPassword);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ObjectName | указатель на имя пользователя, под которым его зарегистрировал супервизор сети или руководитель группы |
ObjectType | тип объекта |
ObjectPassword | указатель на текстовую строку, содержащую пароль пользователя |
Поиск файлов
Поиск файлов
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 | идентификатор пользователя, создавшего файл |
Поиск объектов в базе Bindery
Поиск объектов в базе Bindery
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 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 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 | признак того, что в объекте есть еще и другие записи |
Получение байта расширенных атрибутов
Получение байта расширенных атрибутов
int GetExtendedFileAttributes(char *FilePath, BYTE *ExtendedFileAttributes);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FilePath | путь к файлу |
ExtendedFileAttributes | расширенные атрибуты файла |
Получение идентификатора объекта по его имени и типу
Получение идентификатора объекта по его имени и типу
int GetBinderyObjectID(char *ObjectName,WORD ObjectType, long *ObjectID);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ObjectName | имя объекта |
ObjectType | тип объекта |
ObjectID | указатель на переменную, в которую будет записан идентификатор объекта |
Получение имени и типа объекта по его идентификатору
Получение имени и типа объекта по его идентификатору
int GetBinderyObjectName(long ObjectID, char *ObjectName, WORD *ObjectType);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
ObjectID | идентификатор объекта |
ObjectName | указатель на переменную, в которую будет записано имя объекта |
ObjectType | указатель на переменную, в которую будет записан тип объекта |
Получение информации о файл-сервере
Получение информации о файл-сервере
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 GetEffectiveDirectoryRights(BYTE DirectoryHandle, char *DirectoryPath, BYTE *EffectiveRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
EffectiveRightsMask | указатель на байт памяти, в который будет записан байт маски прав доступа |
Получение строк описания файл-сервера
Получение строк описания файл-сервера
int GetFileServerDescriptionStrings(char *CompanyName, char *Revision, char *RevisionDate, char *CopyrightNotice);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
CompanyName | указатель на буфер размером 80 байт, в который будет записано название фирмы-изготовителя NetWare |
Revision | указатель на буфер размером 80 байт, в который будут записаны номер версии и номер изменений Novell NetWare |
RevisionDate | указатель на буфер размером 24 байта, в который будет записана дата внесения изменений |
CopyrightNotice | указатель на буфер размером 80 байт, в который будут записаны сведения о правах на копирование операционной системы Novell NetWare |
Получить имя тома по номеру тома
Получить имя тома по номеру тома
int GetVolumeName(int VolumeNumber, char*VolumeName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
VolumeNumber | номер тома, для которого необходимо получить имя |
VolumeName | указатель на буфер размером 16 байт, в который будет записано имя тома |
Получить индекс каталога по номеру диска
Получить индекс каталога по номеру диска
int GetDirectoryHandle(char Drive);
Функция возвращает индекс каталога или 0 при ошибке.
Параметры:
Drive | номер диска, для которого необходимо получить индекс каталога (0 - A:, 1 - B:, и т. д.) |
Получить информацию о томе
Получить информацию о томе
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 | признак того, что том является съемным |
Получить номер канала первичного сервера
Получить номер канала первичного сервера
WORD GetPrimaryConnectionID(void);
Функция возвращает номер канала первичного сервера.
Получить номер канала текущего сервера
Получить номер канала текущего сервера
WORD GetDefaultConnectionID(void);
Функция возвращает номер канала текущего сервера.
Получить номер тома по имени тома
Получить номер тома по имени тома
int GetVolumeNamber(char*VolumeName, int *VolumeNumber);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
VolumeName | имя тома |
VolumeNumber | указатель на переменную, в которую будет записан номер тома |
Прием IPX-пакета
Прием IPX-пакета
void IPXListenForPacket(ECB *EventControlBlock);
Параметры:
EventControlBlock | указатель на блок ECB |
Прием сообщений
Прием сообщений
int GetBroadcastMessage(char *MessageBuffer);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
MessageBuffer | буфер для принимаемого сообщения |
Проверка сетевой оболочки
Проверка сетевой оболочки
int GetShellVersionInformation(BYTE *MajorVersion, BYTE *MinorVersion, BYTE *RevisionLevel);
Функция возвращает 0xFF при нормальном завершении или 0 при ошибке.
Параметры:
MajorVersion | верхний (major) номер версии |
MinorVersion | нижний (minor) номер версии |
RevisionLevel | номер изменения (revision) |
Разблокирование группы записей и удаление группы
Разблокирование группы записей и удаление группы
void ClearPhysicalRecordSet(void);
Разблокирование отдельных файлов
Разблокирование отдельных файлов
int ReleaseFile(char *FileName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileName | путь к файлу, который необходимо разблокировать |
Разблокирование отдельных логических записей
Разблокирование отдельных логических записей
int ReleaseLogicalRecord(char LogicalRecordName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LogicalRecordName | имя логической записи |
Разблокирование отдельных записей
Разблокирование отдельных записей
int ReleasePhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileHandle | индекс файла, которому принадлежит запись |
RecordStartOffset | смещение от начала файла |
RecordLength | размер записи в байтах |
Разблокирование всех файлов
Разблокирование всех файлов
void ReleaseFileSet(void);
Разблокирование всех физических записей
Разблокирование всех физических записей
void ReleasePhysicalRecordSet(void);
Разблокирование всех логических записей
Разблокирование всех логических записей
void ReleaseLogicalRecordSet(void);
Разблокирование всех логических записей и удаление группы
Разблокирование всех логических записей и удаление группы
void ClearLogicalRecordSet(void);
Разрешение подключения к файл-серверу
Разрешение подключения к файл-серверу
int EnableFileServerLogin(void);
Функция возвращает 0 при успешном завершении или код ошибки.
Создание каталога
Создание каталога
int CreateDirectory(BYTE DirectoryHandle, char* DirectoryPath, BYTE MaximumGightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
MaximumRightsMask | вид доступа, разрешенный пользователям для данного rаталога |
Создание нового элемента в таблице индексов каталога
Создание нового элемента в таблице индексов каталога
int AllocPermanentDirectoryHandle(BYTE DirectoryHandle, char *DirectoryPath, char DriveLetter, BYTE *NewDirectoryHandle, BYTE *EffectiveRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | полный путь к каталогу |
DriveLetter | отображаемый диск |
NewDirectoryHandle | указатель на переменную, в которую будет записан индекс, связанный с отображаемым каталогом |
EffectiveRightsMask | указатель на байт памяти, в который будет записана маска прав доступа пользователя в данном каталоге |
Создание временного элемента в таблице индексов каталога
Создание временного элемента в таблице индексов каталога
int AllocTemporaryDirectoryHandle(BYTE DirectoryHandle, char *DirectoryPath, char DriveLetter, BYTE *NewDirectoryHandle, BYTE *EffectiveRightsMask);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | полный путь к каталогу |
DriveLetter | отображаемый диск |
NewDirectoryHandle | указатель на переменную, в которую будет записан индекс, связанный с отображаемым каталогом |
EffectiveRightsMask | указатель на байт памяти, в который будет записана маска прав доступа пользователя в данном каталоге |
Типы данных
Типы данных
Сетевой адрес 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;
Удаление файла из группы
Удаление файла из группы
int ClearFile(char *FileName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileName | путь к файлу, который необходимо удалить из группы |
Удаление файлов
Удаление файлов
int EraseFiles(BYTE DirectoryHandle, char *FilePath, BYTE SearchAttributes);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога, в котором находится удаляемый файл |
FilePath | путь к удаляемому файлу |
SearchAttributes | атрибуты удаляемого файла |
Удаление группы и разблокирование всех файлов
Удаление группы и разблокирование всех файлов
void ClearFileSet(void);
Удаление элемента из таблицы индексов каталога
Удаление элемента из таблицы индексов каталога
int DeallocateDirectoryHandle(BYTE DirectoryHandle);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога, для которого удаляется элемент из таблицы индексов |
Удаление каталога
Удаление каталога
int DeleteDirectory(BYTE DirectoryHandle, char* DirectoryPath);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
DirectoryHandle | индекс каталога |
DirectoryPath | путь к каталогу |
Удаление логической записи из группы
Удаление логической записи из группы
int ClearLogicalRecord(char LogicalRecordName);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
LogicalRecordName | имя логической записи |
Удаление записи из группы
Удаление записи из группы
int ClearPhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
FileHandle | индекс файла, которому принадлежит запись |
RecordStartOffset | смещение от начала файла |
RecordLength | размер блокируемой записи в байтах |
Уменьшение значения семафора
Уменьшение значения семафора
int WaitOnSemaphore(long SemaphoreHandle, WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreHandle | индекс семафора |
Timeout | время, в течении которого функция ожидает доступность ресурса (в 18-х долях секунды). |
Установить предпочтительный сервер
Установить предпочтительный сервер
void SetPreferredConnectionID(BYTE ConnectionID);
Параметры:
ConnectionID | номер канала для сервера, который должен стать предпочтительным |
Установка даты и времени
Установка даты и времени
int SetFileServerDateAndTime(WORD Year, WORD Month, WORD Day, WORD Hour, WORD Minute, WORD Second);
Параметры:
Year | новое значение для года |
Month | месяц |
Day | день месяца |
Hour | часы |
Minute | минуты |
Second | секунды |
Установка режима приема сообщений
Установка режима приема сообщений
void SetBroadcastMode(BYTE BroadcastMode);
Параметры:
BroadcastMode | новый режим приема сообщений |
Увеличение значения семафора
Увеличение значения семафора
int SignalSemaphore(long SemaphoreHandle);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreHandle | индекс семафора |
Закрытие семафора
Закрытие семафора
int CloseSemaphore(long SemaphoreHandle);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SemaphoreHandle | индекс семафора |
Закрытие сокета
Закрытие сокета
int IPXCloseSocket(char *SocketNumber);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
SocketNumber | указатель на двухбайтовый массив, содержащий значение закрываемого сокета |
Запись сообщения в журнал
Запись сообщения в журнал
int LogNetworkMessage(char *Message);
Функция возвращает 0 при успешном завершении или код ошибки.
Параметры:
Message | cообщение, которое должно быть записано в журнал (файл net$log.msg в каталоге SYS:SYSTEM). Размер сообщения не должен превышать 80 символов, включая закрывающий строку двоичный ноль |
Запрет подключения к файл-серверу
Запрет подключения к файл-серверу
int DisableFileServerLogin(void);
Функция возвращает 0 при успешном завершении или код ошибки.
МАСКА ПРАВ ДОСТУПА КАТАЛОГА
Номер бита | Доступ |
0 | Чтение файлов |
1 | Запись в файлы |
2 | Открытие файлов |
3 | Создание файлов |
4 | Удаление файлов |
5 | Можно создавать подкаталоги и задавать для создаваемых подкаталогов права доступа |
6 | Поиск файлов в каталоге |
7 | Изменение атрибутов файлов |
БАЙТ АТРИБУТОВ ФАЙЛА
Бит | Назначение |
0 | Read Only: файл можно читать, но нельзя в него писать. Также этот файл нельзя удалять или переименовывать |
1 | Hidden: скрытый файл, не появляется в списке файлов при поиске в каталоге обычными средствами |
2 | System: системный файл, не появляется в списке файлов при поиске в каталоге обычными средствами |
3 | Execute Only: файл может быть загружен только для выполнения. Этот файл нельзя читать или перезаписывать. В операционной системе Novell NetWare не существует средств для сброса бита Execute Only, поэтому если, вы установите этот бит, вы навсегда потеряете доступ к файлу на чтение и запись |
4 | Subdirectory: данный элемент оглавления каталога описывает не файл, а подкаталог |
5 | Archive: этот бит установлен, если после выполнения операции выгрузки файла сам файл был изменен |
6 | Зарезервировано |
7 | Shareable: к данному файлу разрешен одновременный доступ со стороны нескольких пользователей, расположенных на разных рабочих станциях |
БАЙТ РАСШИРЕННОГО АТРИБУТА ФАЙЛА
Бит | Назначение |
0, 1, 2 | Search Mode: биты 0, 1 и 2 задают режим поиска программного файла при запуске программы на выполнение. Мы не будем рассматривать эти биты для сокращения объема книги, подробности о режимах поиска и дисках поиска вы можете узнать из руководства по библиотеке NetWare C Interface |
3 | Зарезервировано |
4 | Transaction Bit: при работе с файлом используется обработка транзакций. Файл, у которого установлен этот бит, не может быть удален или переименован |
5 | Index: для файла размером больше 2 Мбайт для более быстрого доступа организуется индекс по таблице FAT. Этот бит не используется в Novell NetWare версии 3.11 |
6 | Зарезервировано |
7 | Зарезервировано |
ТИПЫ ОБЪЕКТОВ СЕРВЕРА NOVELL NETWARE
Значение | Описание |
0 | Неклассифицируемый (неизвестный) объект |
1 | Пользователь |
2 | Группа пользователей |
3 | Очередь печати |
4 | Файл-сервер |
5 | Сервер заданий |
6 | Шлюз |
7 | Сервер печати |
8 | Очередь для архивирования |
9 | Сервер для архивирования |
A | Очередь заданий |
B | Администратор |
24 | Сервер удаленного моста |
УРОВНИ ДОСТУПА В NOVELL NETWARE
0 | Anyone | Объект не подключен к файл-серверу |
1 | Logged | Объект подключен к файл-серверу |
2 | Object | Объект подключен к файл-серверу с именем и паролем |
3 | Supervisor | Объект имеет права супервизора |
4 | NetWare | Объект имеет права операционной системы Novell NetWare |
КОДЫ ОШИБОК
Код ошибки | Описание |
0x01 | Неправильный код функции MS-DOS; сервер используется (не свободен); переполнение значения семафора |
0x02 | Файл MS-DOS не найден |
0x03 | Путь MS-DOS не найден |
0x04 | Слишком много открытых файлов |
0x05 | Доступ запрещен |
0x06 | Неправильный индекс файла |
0x07 | Блок памяти уничттожен |
0x08 | Мало памяти |
0x09 | Неправильный адрес блока памяти |
0x0A | Неправильная среда (environment) MS-DOS |
0x0B | Неправильный формат |
0x0C | Неправильный код доступа |
0x0D | Неправильные данные |
0x0F | Дисковод указан неправильно |
0x10 | Попытка удалить текущий каталог |
0x11 | Задано другое устройство, что недопустимо в операции перемещения файла |
0x12 | Нет больше файлов |
0x20 | Нарушение режима совместного использования файлов |
0x21 | Нарушение режима блокировки файлов |
0x80 | Файл уже используется |
0x81 | Нет больше доступных индексов файлов |
0x82 | Нет доступа для открытия файлов |
0x83 | Ошибка ввода/вывода на сетевом диске |
0x84 | Нет доступа для создания файлов или каталогов |
0x85 | Нет доступа для создания и удаления файлов и каталогов |
0x86 | Создаваемый файл существует, и для него установлен режим "только чтение" |
0x87 | Недопустимое использование символов шаблона в имени создаваемого файла |
0x88 | Неправильный индекс файла |
0x89 | Нет доступа для поиска |
0x8A | Нет доступа для удаления |
0x8B | Нет доступа для переименования |
0x8C | Нет доступа для изменения |
0x8D | Файлы уже используются |
0x8E | Файлы не используются |
0x8F | Есть файлы, для которых установлен режим "только чтение" |
0x90 | Нет файлов, для которых установлен режим "только чтение" |
0x91 | При переименовании оказалось, что файлы с новыми именами уже существуют |
0x92 | Не найдены файлы, имена которых должны быть изменены |
0x93 | Нет доступа на чтение |
0x94 | Нет доступа на запись, или для файла установлен режим "только чтение" |
0x95 | Файл отсоединен |
0x96 | Для выполнения операции на сервере недостаточно оперативной памяти; для выполнения операции на сервере недостаточно динамической дисковой памяти |
0x97 | Нет места на диске для файла спулинга |
0x98 | Указанный том не существует |
0x99 | Переполнение каталога |
0x9A | При переименовании задано новое имя для тома |
0x9B | Неправильный индекс каталога |
0x9C | Неправильно указан путь к каталогу |
0x9D | Нет свободных индексов каталогов |
0x9E | Неправильное имя файла |
0x9F | Указанный каталог уже используется |
0xA0 | Каталог не пуст |
0xA1 | Ошибка ввода/вывода при обращении к каталогу |
0xA2 | Попытка прочитать файл с заблокированными записями |
0xC0 | Нет доступа к средствам учета работы пользователей |
0xC1 | Подключение к серверу запрещено |
0xC2 | Истек предоставленный кредит |
0xC5 | Блокировка при попытке злоумышленника подобрать пароль |
0xC6 | Нет прав оператора консоли |
0xD0 | Ошибка при работе с очередями |
0xD1 | Нет очередей |
0xD2 | Нет сервера очередей |
0xD3 | Нет прав доступа к очереди |
0xD4 | Переполнение очереди |
0xD5 | Нет очереди заданий |
0xD6 | Нет доступа к заданию |
0xD7 | Пароль не является уникальным |
0xD8 | Слишком короткий пароль |
0xD9 | Подключение запрещено |
0xDA | В этот период времени подключение запрещено |
0xDB | С этой станции подключение запрещено |
0xDC | Пользователь заблокирован |
0xDE | Пароль устарел |
0xDF | Пароль устарел |
0xEF | Задано неправильное имя объекта |
0xF0 | Нельзя использовать символы шаблона |
0xF1 | Неправильный код доступа |
0xF2 | Нет доступа на чтение данных об объекте |
0xF3 | Нет доступа на изменение имени объекта |
0xF4 | Нет доступа на удаление объекта |
0xF5 | Нет доступа на создание объекта |
0xF6 | Нет доступа на удаление записи |
0xF7 | Нет доступа на создание записи; указанный диск не является локальным |
0xF8 | Объект уже подключен к серверу; нет доступа на изменение содержимого записи; объект не подключен к серверу |
0xF9 | Нет доступных каналов для подключения; нт доступа на чтение содержимого записи |
0xFA | Нет свободных слотов для подключения сервера |
0xFB | Неправильно заданы параметры; |
нет такой записи;
неправильный код запроса
переполнение очереди сообщений;
нет такого объекта
каталог заблокирован;
неправильная длина имени семафора;
Подключение к серверу запрещено супервизором
ошибка в расширении имени файла;
ошибка в имени файла;
сбой аппаратных средств;
неправильный номер дисковода;
неправильное начальное значение семафора;
неправильный индекс семафора;
файлы не найдены;
нет отклика от файл-сервера;
нет такого объекта, или указан неправильный пароль;
путь не найден;
сбой при работе с базой данных объектов;
больше нет файлов, соответствующих указанному шаблону;
записи не найдены