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 при ошибке....
Обмен байтов в 16-битовом слове Обмен байтов в 16-битовом слове
int IntSwap(int UnswappedInteger);
Функция меняет местами байты в 16-битовом слове, которое передается ей в качестве параметра, возвращая полученное значение. Пара...
Обмен байтов в 32-битовом слове Обмен байтов в 32-битовом слове
long LongSwap(long UnswappedLong);
Функция меняет местами байты в 32-битовом слове, которое передается ей в качестве параметра, возвращая полученное значение. Пара...
Подключение к файл-серверу Подключение к файл-серверу
int AttachToFileServer(char *ServerName, WORD *ConnectionID);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: ServerName указатель на текстовую...
Отключение от файл-сервера Отключение от файл-сервера
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 при успешном завершении или код ошибки. Параметры: Obje...
Отключение от всех файл-серверов Отключение от всех файл-серверов
void Logout(void);...
Отключение от одного файл-сервера Отключение от одного файл-сервера
void LogoutFromFileServer(WORD ConnectionID);
Параметры: ConnectionIDномер канала сервера, от которого выполняется отключение...
Получить имя тома по номеру тома Получить имя тома по номеру тома
int GetVolumeName(int VolumeNumber, char*VolumeName);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: VolumeNumberномер тома, для которого...
Получить номер тома по имени тома Получить номер тома по имени тома
int GetVolumeNamber(char*VolumeName, int *VolumeNumber);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: VolumeNameимя томаVolumeNumberук...
Получить информацию о томе Получить информацию о томе
int GetVolumeInfoWithNumber(BYTE VolumeNumber, char *VolumeName, WORD *TotalBlocks, WORD *SectorsPerBlock, WORD *AvailableBlocks, WORD *TotalDirectorySlots,...
Создание нового элемента в таблице индексов каталога Создание нового элемента в таблице индексов каталога
int AllocPermanentDirectoryHandle(BYTE DirectoryHandle, char *DirectoryPath, char DriveLetter, BYTE *NewDirectoryHandle, BYTE *EffectiveRig...
Удаление элемента из таблицы индексов каталога Удаление элемента из таблицы индексов каталога
int DeallocateDirectoryHandle(BYTE DirectoryHandle);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: DirectoryHandleиндекс к...
Получить индекс каталога по номеру диска Получить индекс каталога по номеру диска
int GetDirectoryHandle(char Drive);
Функция возвращает индекс каталога или 0 при ошибке. Параметры: Driveномер диска, для которого необходимо получить инд...
Создание временного элемента в таблице индексов каталога Создание временного элемента в таблице индексов каталога
int AllocTemporaryDirectoryHandle(BYTE DirectoryHandle, char *DirectoryPath, char DriveLetter, BYTE *NewDirectoryHandle, BYTE *Effecti...
Поиск подкаталогов в сетевых каталогах Поиск подкаталогов в сетевых каталогах
int ScanDirectoryInformation(BYTE DirectoryHandle, char *SearchDirectoryPath, int *SequenceNumber, char *DirectoryName, BYTE *CreationDateAndTime,...
Создание каталога Создание каталога
int CreateDirectory(BYTE DirectoryHandle, char* DirectoryPath, BYTE MaximumGightsMask);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: DirectoryHandle...
Переименование каталога Переименование каталога
int RenameDirectory(BYTE DirectoryHandle, char* DirectoryPath, char *NewDirectoryName);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: Directory...
Удаление каталога Удаление каталога
int DeleteDirectory(BYTE DirectoryHandle, char* DirectoryPath);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: DirectoryHandleиндекс каталога DirectoryP...
Получение маски прав доступа каталога Получение маски прав доступа каталога
int GetEffectiveDirectoryRights(BYTE DirectoryHandle, char *DirectoryPath, BYTE *EffectiveRightsMask);
Функция возвращает 0 при успешном завершении или код...
Изменение атрибутов каталога Изменение атрибутов каталога
int SetDirectoryInformation(BYTE DirectoryHandle, char *DirectoryPath, BYTE *NewCreationDateAndTime, long NewOwnerObjectID, BYTE MaximumRightsMask);
Функция возвр...
Изменение маски доступа каталога Изменение маски доступа каталога
int ModifyMaximumRightsMask(BYTE DirectoryHandle, char *DirectoryPath, BYTE RevokeRightsMask, BYTE GrantRightsMask);
Функция возвращает 0 при успешном завер...
Поиск файлов Поиск файлов
int _ScanFileInformation(BYTE DirectoryHandle, char *FilePath, BYTE SearchAttributes, int *SequenceNumber, char *FileName, BYTE *FileAttributes, BYTE *ExtendedFileAttributes, long...
Изменение атрибутов файла Изменение атрибутов файла
int SetFileInformation(BYTE DirectoryHandle, char *FilePath, BYTE SearchAttributes, BYTE FileAttributes, BYTE ExtendedFileAttributes, char *CreationDate, char *LastAcc...
Получение байта расширенных атрибутов Получение байта расширенных атрибутов
int GetExtendedFileAttributes(char *FilePath, BYTE *ExtendedFileAttributes);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры:...
Изменение байта расширенных атрибутов Изменение байта расширенных атрибутов
int SetExtendedFileAttributes(char *FilePath, BYTE *NewExtendedFileattributes);
Функция возвращает 0 при успешном завершении или код ошибки. Параметр...
Копирование файлов Копирование файлов
int FileServerFileCopy(int FromHandle, int ToHandle, long SourceFileOffset, long DestinationFileOffset, long NumberOfBytesToCopy, long *BytesCopied);
Функция возвращает...
Удаление файлов Удаление файлов
int EraseFiles(BYTE DirectoryHandle, char *FilePath, BYTE SearchAttributes);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: DirectoryHandleиндекс...
Добавление файла в группу Добавление файла в группу
int LogFile(char *FileName, BYTE LockDirective,WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: FileNameпуть к файлу, который необх...
Удаление файла из группы Удаление файла из группы
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 при успешном заверш...
Удаление записи из группы Удаление записи из группы
int ClearPhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: FileHandleи...
Разблокирование группы записей и удаление группы Разблокирование группы записей и удаление группы
void ClearPhysicalRecordSet(void);...
Блокирование группы физических записей Блокирование группы физических записей
int LockPhysicalRecordSet(BYTE LockDirective, WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: LockDirectiveпараметр L...
Разблокирование отдельных записей Разблокирование отдельных записей
int ReleasePhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: F...
Разблокирование всех физических записей Разблокирование всех физических записей
void ReleasePhysicalRecordSet(void);...
Добавление логической записи в группу Добавление логической записи в группу
int LogLogicalRecord(char LogicalRecordName, BYTE LockDirective,WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: Logi...
Удаление логической записи из группы Удаление логической записи из группы
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 при успешном завершении или код ошибки. Параметры: Sema...
Закрытие семафора Закрытие семафора
int CloseSemaphore(long SemaphoreHandle);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: SemaphoreHandleиндекс семафора...
Определение состояния семафора Определение состояния семафора
int ExamineSemaphore(long SemaphoreHandle, int *SemaphoreValue, WORD *OpenCount);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: Semapho...
Уменьшение значения семафора Уменьшение значения семафора
int WaitOnSemaphore(long SemaphoreHandle, WORD Timeout);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: SemaphoreHandleиндекс семафора Timeou...
Увеличение значения семафора Увеличение значения семафора
int SignalSemaphore(long SemaphoreHandle);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: SemaphoreHandleиндекс семафора...
Определение собственного уровня доступа Определение собственного уровня доступа
int GetBinderyAccessLevel(BYTE *SecurityAccessLevel, long *ObjectID);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: SecurityAcces...
Получение имени и типа объекта по его идентификатору Получение имени и типа объекта по его идентификатору
int GetBinderyObjectName(long ObjectID, char *ObjectName, WORD *ObjectType);
Функция возвращает 0 при успешном завершении или код ошибки. П...
Получение идентификатора объекта по его имени и типу Получение идентификатора объекта по его имени и типу
int GetBinderyObjectID(char *ObjectName,WORD ObjectType, long *ObjectID);
Функция возвращает 0 при успешном завершении или код ошибки. Парамет...
Поиск объектов в базе Bindery Поиск объектов в базе Bindery
int ScanBinderyObject(char *SearchObjectName, WORD SearchObjectType, long *ObjectID, char *ObjectName, WORD *ObjectType, char *ObjectHasProperties, char *ObjectFlag...
Поиск записей для объектов Поиск записей для объектов
int ScanProperty(char *ObjectName, WORD ObjectType, char *SearchPropertyName, long *SequenceNumber, char *PropertyName, char *PropertyFlag, char *PropertySecurity, c...
Определение режима приема сообщений Определение режима приема сообщений
BYTE GetBroadcastMode(void);
Функция возвращает значение в диапазона от 0 до 3, соответствующее текущему режиму приема сообщений....
Установка режима приема сообщений Установка режима приема сообщений
void SetBroadcastMode(BYTE BroadcastMode);
Параметры: BroadcastModeновый режим приема сообщений...
Передача сообщений пользователям Передача сообщений пользователям
int SendBroadcastMessage(char *Message, WORD *ConnectionList, BYTE *ResultList, WORD ConnectionCount);
Функция возвращает 0 при успешном завершении или код оши...
Запись сообщения в журнал Запись сообщения в журнал
int LogNetworkMessage(char *Message);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: Messagecообщение, которое должно быть записано в журнал (фа...
Прием сообщений Прием сообщений
int GetBroadcastMessage(char *MessageBuffer);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: MessageBufferбуфер для принимаемого сообщения...
Определение даты и времени Определение даты и времени
void GetFileServerDateAndTime(BYTE *DateAndTime);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: DateAndTimeуказатель на массив размером 7 байт...
Получение строк описания файл-сервера Получение строк описания файл-сервера
int GetFileServerDescriptionStrings(char *CompanyName, char *Revision, char *RevisionDate, char *CopyrightNotice);
Функция возвращает 0 при успешном заве...
Определение имени файл-сервера Определение имени файл-сервера
void GetFileServerName(WORD ConnectionID, char *FileServerName);
Параметры: ConnectionIDномер канала, используемый рабочей станцией для связи с файл-сервером FileSe...
Получение информации о файл-сервере Получение информации о файл-сервере
int GetServerInformation(int StructSize, FILE_SERV_INFO *ServerInfo);
Параметры: StructSizeколичество байт, которые необходимо записать в структуру FILE_SERV_I...
Определение возможности подключения к файл-серверу Определение возможности подключения к файл-серверу
int GetFileServerLoginStatus(int *LoginEnabledFlag);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: LoginEnabledFlagпо...
Установка даты и времени Установка даты и времени
int SetFileServerDateAndTime(WORD Year, WORD Month, WORD Day, WORD Hour, WORD Minute, WORD Second);
Параметры: Yearновое значение для года MonthмесяцDayдень месяц...
Запрет подключения к файл-серверу Запрет подключения к файл-серверу
int DisableFileServerLogin(void);
Функция возвращает 0 при успешном завершении или код ошибки....
Разрешение подключения к файл-серверу Разрешение подключения к файл-серверу
int EnableFileServerLogin(void);
Функция возвращает 0 при успешном завершении или код ошибки....
Останов файл-сервера Останов файл-сервера
int DownFileServer(int ForceFlag);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: ForceFlagпараметр определяет, надо ли завершать работу файл-сервера...
9.12. Работа с протоколом IPX В этом разделе мы приведем описание тех функций, предназначенных для работы с протоколом IPX, которые были использованы в нашей книге. Полное описание дано в документации, поставляющейся с библиот...
Инициализация драйвера IPX Инициализация драйвера IPX
int IPXInitialize(void) ;
Функция возвращает 0 при успешном завершении или код ошибки....
Открытие сокета Открытие сокета
int IPXOpenSocket(char *SocketNumber, char SocketType) ;
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: SocketNumberуказатель на двухбайтовый массив, соде...
Закрытие сокета Закрытие сокета
int IPXCloseSocket(char *SocketNumber);
Функция возвращает 0 при успешном завершении или код ошибки. Параметры: SocketNumberуказатель на двухбайтовый массив, содержащий значение з...
Прием IPX-пакета Прием IPX-пакета
void IPXListenForPacket(ECB *EventControlBlock);
Параметры: EventControlBlockуказатель на блок ECB...
Передача пакета Передача пакета
void IPXSendPacket(ECB *EventControlBlock);
Параметры: EventControlBlockуказатель на блок ECB...
Отмена блока ECB Отмена блока 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; WO...