Поделиться через


Как запросить оппортунистическую блокировку

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

Оппортунистические блокировки запрашиваются путем открытия файла с разрешениями и флагами, соответствующими приложению, открывающее файл. Все файлы, для которых запрашиваются оппортунистические блокировки, должны быть открыты для перекрывающихся (асинхронных) операций. После открытия файлов для перекрывающейся операции используйте функцию DeviceIoControl с соответствующим кодом управления, чтобы запросить оппортунистическую блокировку. Список оппортунистических операций блокировки см. в разделе Оппортунистические операции блокировки.

Приложения получают уведомления о том, что оппортунистическая блокировка нарушена с помощью элемента hEvent структуры OVERLAPPED , связанной с файлом. Приложения также могут использовать такие функции, как GetOverlappedResult и HasOverlappedIoCompleted. Приложение отвечает за связывание правильного файла с неработающей оппортунистической блокировкой.

Дополнительные сведения об уведомлениях см. в разделе Синхронизация.