Udostępnij przez


Sprawdzanie stanu oplock IRP_MJ_FILE_SYSTEM_CONTROL

Następujące operacje IRP_MJ_FILE_SYSTEM_CONTROL sprawdzają stan blokady działania:

  • FSCTL_SET_ZERO_DATA

Ta informacja ma zastosowanie, gdy obiekt wywołujący chce wyzerować bieżącą zawartość danego strumienia.

Warunki dla typu żądania poziomu 2:

  • Zawsze ustaw przerwę na brak.

  • Potwierdzenie nie jest wymagane; operacja jest wykonywana natychmiast.

Warunki dla wszystkich innych typów żądań:

  • Przerwij na IRP_MJ_FILE_SYSTEM_CONTROL (dla FSCTL_SET_ZERO_DATA) w momencie, gdy operacja dotyczy FILE_OBJECT z kluczem blokady, który różni się od klucza FILE_OBJECT będącego właścicielem tej blokady. Jeśli blokada oplock jest uszkodzona, zmień stan na Brak.

  • Wymagania dotyczące potwierdzenia różnią się w następujący sposób:

    • Żądanie odczytu: potwierdzenie nie jest wymagane; operacja jest wykonywana natychmiast.

    • Read-Handle żądanie: mimo że wymagane jest potwierdzenie przerwy, operacja jest wykonywana natychmiast (np. bez oczekiwania na potwierdzenie).

    • Żądania dotyczące poziomów 1, Batch, Filter, Read-Write i Read-Write-Handle: Potwierdzenie musi zostać odebrane przed kontynuowaniem operacji.