Udostępnij przez


Ustawianie IRP w sterownikach pośrednich

Każdy sterownik pośredni umieszczony pomiędzy sterownikiem systemu plików a sterownikiem urządzenia nośnika wymiennego musi skonfigurować lokalizację stosu I/O sterownika na następnym poziomie w IRP. Z przychodzących IRP_MJ_READ, IRP_MJ_WRITE i IRP_MJ_DEVICE_CONTROL żądań, sterownik pośredni musi skopiować własne flagi lokalizacji stosu we/wy do lokalizacji stosu we/wy sterownika niższego poziomu, gdy konfiguruje lokalizację stosu we/wy dla tego niższego sterownika.

Jeśli sterownik pośredni przydziela nowe IRP dla sterowników nośników wymiennych niższego poziomu, wówczas należy skonfigurować te IRP w następujący sposób:

  • W przypadku żądań transferu należy skonfigurować kontekst wątku w każdym IRP przydzielonym przez sterownik na podstawie wartości Tail.Overlay.Thread w oryginalnym IRP.

  • W przypadku żądań IRP_MJ_READ, IRP_MJ_WRITE i IRP_MJ_DEVICE_CONTROL, należy skopiować flagi lokalizacji stosu I/O z oryginalnego IRP do każdego IRP przydzielonego przez sterownik.

W przeciwnym razie system plików nie może zachować integralności buforowanych danych plików ani nie może spowodować, że użytkownik zostanie poproszony o ponowne odinstalowanie nośnika zawierającego otwarty plik.