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


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

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

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

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

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