Я ищу способ открыть / создать файл на SMB2 Windows share
без запроса оплока (SMB2_OPLOCK_LEVEL_LEASE
). FileCreate()
с флагом FILE_FLAG_NO_BUFFERING
не влияет на поведение.
Отключение Оппортунистической Блокировки в перенаправителе не вариант.
Есть ли способ повлиять на fileopen / filecreate, чтобы не запрашивать оплок?
Вы не можете сделать это. Windows автоматически управляет opcloks на уровне файловой системы.
Есть хитрый способ добиться этого. Откройте тот же файл для чтения из другого приложения. Если вы делаете это до создания основного файла, он не должен запрашивать оплок. Если вы сделаете то же самое после создания основного файла, его блокировка должна быть нарушена сервером.
Честно говоря, я не совсем уверен в поведении Win, но стоит попробовать imho.
Удачи