Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


Блокирование физических записей - часть 2


/p>

Параметр Timeout определяет период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если запись нельзя заблокировать немедленно. Если для этого параметра задать нулевое значение, ожидание выполняться не будет.

Функция возвращает 0 при успешном завершении или код ошибки:

Код ошибки Значение
0x96 Мало памяти на файл-сервере
0xFE Истек период ожидания, заданный параметром Timeout, но запись так и не удалось заблокировать
0xFF Сбой при блокировании записи

Для удаления записи из группы можно использовать функцию ClearPhysicalRecord():

int ClearPhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength);

Параметры этой функции аналогичны параметрам функции LogPhysicalRecord. Функция возвращает нулевое значение или значение 0xFF, если в списке нет указанной записи.

Функция ClearPhysicalRecordSet() позволяет разблокировать все записи группы и удалить группу

void ClearPhysicalRecordSet(void);

Прототип функции LockPhysicalRecordSet(), используемой для блокирования группы записей:

int LockPhysicalRecordSet(BYTE LockDirective, WORD Timeout);

Параметр LockDirective задает режим блокирования. Если он равен 0, записи блокируются для монопольного использования программой, заблокировавшей записи. Если параметр имеет значение 1, записи блокируются для совместного использования в режиме чтения.

Параметр Timeout используется так же, как и при вызове функции LogPhysicalRecord().

Функция возвращает 0 при успешном завершении или код ошибки:

Код ошибки Значение
0xFE Истек период ожидания, заданный параметром Timeout, но запись так и не удалось заблокировать
0xFF Сбой при блокировании записи

После того как группа записей заблокирована, вы можете разблокировать отдельные записи или всю группу сразу.

Для разблокирования отдельных записей используйте функцию ReleasePhysicalRecord():

int ReleasePhysicalRecord(int FileHandle, long RecordStartOffset, long RecordLength);

Параметры задают индекс файла, смещение записи и ее длину.


- Начало -  - Назад -  - Вперед -