Endringer i filsystemet og i lagringsstakken for å begrense direkte disktilgang og direkte volumtilgang i Windows Vista og i Windows Server 2008

Artikkeloversettelser Artikkeloversettelser
Artikkel-ID: 942448 - Vis produkter som denne artikkelen gjelder for.
Vis alt | Skjul alt

På denne siden

INNLEDNING

Denne artikkelen beskriver endringene som ble gjort i filsystemet og i lagringsstakken for å begrense direkte disktilgang og direkte volumtilgang i Windows Server 2008 og i Windows Vista.

Mer informasjon

Bakgrunn

Når et program åpner en eksklusiv filreferanse, forutsettes det at innholdet i filen ikke kan endres lenger. Innholdet i filen kan imidlertid ikke endres lenger hvis følgende betingelser er oppfylt:
  • Et annet program åpner filreferansen for det underliggende volumet eller den underliggende disken.
  • Programmet gjør endringer i plasseringen der filen ligger.
Det kan oppstå skade eller ustabilitet i systemet når et program skriver direkte til et volum som monteres av et filsystem uten først å få eksklusiv tilgang til volumet. Dette skyldes at skriving til volumet kan kollidere med filsystemskriving. Når slike kollisjoner oppstår, kan innholdet i volumet få en ustabil tilstand.

For å redusere virkningen av dette problemet er det gjort endringer i filsystemet og lagringsstakken, for å begrense direkte tilgang til disken eller til et volum.

Detaljer for endringen i filsystemet og lagringsstakken

  • Et filsystem kan bare skrive til en volumreferanse hvis følgende betingelser er oppfylt:
    • Betingelse 1: Sektorene det skrives til, er oppstartssektorer.

      Obs!  Denne betingelsen finnes for å støtte programmer som for eksempel antivirusprogrammer, installasjonsprogrammer og andre programmer som må oppdatere oppstartskoden for systemvolumet. Systemvolumet kan ikke låses.
    • Betingelse 2: Sektorene det skrives til, ligger inne i filsystemplassen.

      Obs!  Området mellom slutten av filsystemplassen og slutten av volumplassen styres ikke av filsystemet. Det er derfor ingen grunn til å kreve at volumet skal låses for å skrive til det.
    • Betingelse 3: Volumet er låst implisitt gjennom en forespørsel om eksklusiv skrivetilgang.
    • Betingelse 4: Volumet er låst eksplisitt gjennom en låseforespørsel eller en demonteringsforespørsel.
    • Betingelse 5: Skriveforespørselen har et SL_FORCE_DIRECT_WRITE-flagg som angir at betingelse 2 må forbigås.

      Obs!  Det finnes filsystemfiltre som skriver til den ledige plassen på et volum uten at volumet låses først. Hvis filsystemfiltrene må gjøre dette, kan filsystemfiltrene angi et flagg på skriveforespørselen som informerer filsystemet om at skrivingen kan begynne. Dette flagget kan bare angis fra innsiden av kjernemodusen.
  • Endringer i filsystemet og lagringsstakken gjelder ikke hvis volumet ikke er montert, eller hvis volumet ikke har et filsystem.
  • UDFS-filsystemet og FASTFAT-filsystemet begrenser endringene som gjøres i filsystemet og lagringsstakken. Disse endringene er begrenset til disktypemediene.

    Obs!  De fleste CD-masteringprogrammer skriver direkte til volumet uten at volumet låses først. Noen CD-masteringprogrammer forbigår også filsystemlaget. I disse tilfellene skriver slike programmer direkte til lagringslaget. Siden sidevekslingsfilen bare kan være vert på diskstasjoner, er det ingen grunn til å bruke endringene som ble gjort i filsystemet og lagringsstakken, på optiske stasjoner.
  • Lagringsdriverne kan skrive til en diskreferanse hvis følgende betingelser er oppfylt:
    • Betingelse 1: Sektorene det skrives til, faller ikke innenfor et volum.

      Obs!  Programmer bruker sektorene som er utenfor volumene, til å lagre metadata. Partisjonstabellene ligger også i sektorene som er utenfor volumene. Siden disse sektorene ikke styres av noen filsystemer, er det ingen grunn til å sperre tilgangen til disse sektorene.
    • Betingelse 2: Sektorene det skrives til, faller innenfor et montert volum som er låst eksplisitt.
    • Betingelse 3: Sektorene det skrives til, faller innenfor et volum som ikke er montert, eller innenfor et volum som ikke har et filsystem.
  • Endringene i filsystemet og lagringsstakken vil også gjelde for paritetsblokkene for et volum.
  • Endringene i filsystemet og lagringsstakken vil gjelde for 32-biters systemer og 64-biters systemer.
I tillegg til de ulike WriteFile-APIene kan kontrollforespørsler for enhets-I/U brukes til å skrive til et volum eller en disk. Endringene i filsystemet og lagringsstakken vil også gjelde for kontrollforespørslene for enhets-I/U. Kontrollforespørslene for enhets-I/U inkluderer følgende kommandoer:
  • IOCTL_DISK_COPY_DATA
  • IOCTL_SCSI_PASS_THROUGH
  • IOCTL_SCSI_PASS_THROUGH_DIRECT
  • SCSIOP_WRITE6
  • SCSIOP_WRITE
  • SCSIOP_WRITE_VERIFY
  • SCSIOP_WRITE_SAME
  • SCSIOP_WRITE_LONG
  • SCSIOP_XDWRITE
  • SCSIOP_XPWRITE
  • SCSIOP_XDWRITE_READ
  • SCSIOP_WRITE12
  • SCSIOP_WRITE_VERIFY12
  • SCSIOP_WRITE16
  • SCSIOP_WRITE_VERIFY16
  • SCSIOP_WRITE_SAME16
  • SCSIOP_WRITE_LONG16
  • SCSIOP_WRITE_XDWRITE_EXTENDED16
  • SCSIOP_WRITE_COPY
  • SCSIOP_WRITE_COPY_COMPARE
For disse kommandoene forespørres LBA-biten for å fastslå om forskyvningen ble angitt i CHS-format eller i LBA-format. Fordi systemet ikke kan oppnå den virkelige geometrien, mislykkes alle forespørsler som sendes i CHS-format. Dette skal ikke være noe problem ettersom alle moderne disker forventer at forskyvningen er i LBA-format.

SCSI-skrivekommandoene på 32-byte filtreres ikke fordi det bare er 16 byte i CDBen. Den utvidede kopieringskommandoen filtreres heller ikke. Overføringslengden er i byte for lange skrivekommandoer. Alle andre kommandoer er imidlertid i sektorer.

Følgende gruppe med kommandoer mislykkes fordi de er utdaterte:
  • IOCTL_ATA_PASS_THROUGH
  • IOCTL_ATA_PASS_THROUGH_DIRECT
  • IDE_COMMAND_WRITE
  • IDE_COMMAND_WRITE_DMA
  • IDE_COMMAND_WRITE_DMA_QUEUED
  • IDE_COMMAND_WRITE_MULTIPLE
  • IDE_COMMAND_WRITE_EXT
  • IDE_COMMAND_WRITE_DMA_EXT
  • IDE_COMMAND_WRITE_DMA_FUA_EXT
  • IDE_COMMAND_WRITE_DMA_QUEUED_EXT
  • IDE_COMMAND_WRITE_DMA_QUEUED_FUA_EXT
  • IDE_COMMAND_WRITE_MULTIPLE_EXT
  • IDE_COMMAND_WRITE_MULTIPLE_FUA_EXT

Problemer med programkompatibilitet

Endringer i filsystemet og lagringsstakken kan føre til at noen programmer mislykkes. Slike programmer mislykkes fordi de bruker direkte tilgang til disken eller volumet.

Virkningen på programkompatibilitet vil være minimal av følgende årsaker:
  • Sikkerhetsprogrammer må demontere volumet før de skriver til det. Ellers vil programskrivingene kollidere med filsystemskrivingene. Slike kollisjoner vil føre til skade eller ustabilt system.
  • Partisjoneringsprogrammer retter seg mot partisjonstabeller som ligger i sektorer som er utenfor volumområdene. Filsystemer styrer ikke slike sektorer. Siden tilgang til disse sektorene er aktivert, påvirkes ikke partisjoneringsprogrammene.
  • Gjenopprettingsprogrammer vil sannsynligvis kjøre på volumer som filsystemet ikke kan montere. Siden tilgang til RAW-volumer er aktivert, påvirkes ikke slike gjenopprettingsprogrammer.
  • Krypteringsprogrammer på blokknivå har vanligvis en filterdriver som ligger i diskstakken under partisjonsbehandlingsdriveren. Filterdriveren filtrerer I/U som sendes av partisjonsbehandlingsdriveren. Endringene i filsystemet og lagringsstakken påvirker derfor ikke krypteringsprogrammene på blokknivå. Hvis filterdriveren ligger i volumstakken, vil filterdriveren være under filsystemene. Endringene i filsystemet og lagringsstakken påvirker derfor ikke krypteringsprogrammene på blokknivå.
  • CD-masteringprogrammer påvirkes ikke fordi UDFS-filsystemet og FAT32-filsystemet ikke utfører kontroller når filsystemet er montert på optiske stasjoner. CD-masteringprogrammer kan imidlertid bli påvirket i følgende scenario:
    • Et program låser filen.
    • Programmet utfører en spørring om omfanget av filen.
    • Programmet bruker en volumreferanse til å skrive direkte til omfanget av filen.
    Vi oppfordrer ikke til å bruke dette scenariet siden det kan føre til at filmetadataene blir usynkronisert. Når filmetadata er usynkronisert, kan det oppstå skade på filer.

Egenskaper

Artikkel-ID: 942448 - Forrige gjennomgang: 25. april 2008 - Gjennomgang: 2.0
Informasjonen i denne artikkelen gjelder:
  • Windows Vista Ultimate
  • Windows Vista Enterprise
  • Windows Vista Business
  • Windows Vista Home Premium
  • Windows Vista Home Basic
  • Windows Vista Starter
  • Windows Server 2008 Datacenter without Hyper-V
  • Windows Server 2008 Enterprise without Hyper-V
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Standard without Hyper-V
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
Nøkkelord: 
kbexpertiseadvanced kbhowto kbinfo KB942448

Gi tilbakemelding

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com