Jak zażądać blokady oportunistycznej
Aplikacje klienckie bezpośrednio występują o blokady oportunistyczne tylko wtedy, gdy blokada jest przeznaczona dla pliku na serwerze lokalnym. Podczas uzyskiwania dostępu do plików na serwerach zdalnych jest to przekierowywacz sieci, a nie aplikacja kliencka, który żąda oportunistycznej blokady z serwera zdalnego.
Blokady oportunistyczne są wymagane przez pierwsze otwarcie pliku z uprawnieniami i flagami odpowiednimi dla aplikacji otwierającej plik. Wszystkie pliki, dla których będą wymagane blokady oportunistyczne, muszą być otwarte dla operacji nakładających się (asynchronicznych). Po otwarciu plików dla operacji nakładających się, użyj funkcji DeviceIoControl z odpowiednim kodem kontrolnym, aby zażądać opportunistycznego blokowania. Aby uzyskać listę operacji blokady oportunistycznej, zobacz Operacje Blokad Oportunistycznych.
Aplikacje są powiadamiane, że blokada oportunistyczna została zerwana, przy użyciu członka hEvent struktury OVERLAPPED powiązanej z plikiem. Aplikacje mogą również używać funkcji, takich jak GetOverlappedResult i HasOverlappedIoCompleted. Aplikacja jest odpowiedzialna za skojarzenie poprawnego pliku z uszkodzoną blokadą oportunistyczną.
Aby uzyskać więcej informacji na temat powiadomień, zobacz Synchronization.