1 / 8

File System and File System Filter Ecosystem Update

File System and File System Filter Ecosystem Update. Neal Christiansen Development Lead File System Filter Team. BOOT.INI and Longhorn. The boot.ini file is no longer used to configure boot parameters. New BCD (boot configuration data) file Implemented as a registry hive

montana
Télécharger la présentation

File System and File System Filter Ecosystem Update

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. File System and File System Filter Ecosystem Update Neal Christiansen Development Lead File System Filter Team

  2. BOOT.INI and Longhorn • The boot.ini file is no longer used to configure boot parameters. • New BCD (boot configuration data) file • Implemented as a registry hive • Resides in \boot\bcd • There is a new tool called bcdedit which is used to configure options • Boot.ini is still used for downlevel operating systems if you are booting multiple OS’s on the same system

  3. Useful bcdedit commands • bcdedit –enum • List current settings • bcdedit –enum all • List all settings • bcdedit /? • Basic help • bcdedit /? Types • Lists the bulk of the settings

  4. Useful bcdedit commands • Enable debugging • bcdedit -debug on • Followed by one of the following: • bcdedit -dbgsettings serial debugport:1 baudrate:115200 • bcdedit -dbgsettings 1394 CHANNEL:32 • bcdedit –dbgsettings USB TARGETNAME=U1

  5. Doing IO from Completion Routines • Many of you issue IO operations from IO Completion routines (or post-operation callbacks) when those routines are at an IRQL level lower then DPC level • Filter manager promoted this with routines like FltDoCompletionProcessingWhenSafe

  6. Doing IO from Completion Routines • We have determined that it is not safe to ever perform any operation in a completion (or post-operation) callback routine regardless of your current IRQL level • We have been seeing deadlock with various storage drivers because of this • The most common scenario we have seen is when using dynamic disks with RAID enabled • We have seen it with other drivers as well • Consider this a new “rule for filters”

  7. Doing IO from Completion Routines • It is our very strong recommendation that you modify your existing products across all OS’s to stop doing this • You have two options: • If the operation is synchronous you should synchronize back to your dispatch routine • Use IoIsOperationSynchronous • If the operation is asynchronous you should queue the request to a worker thread • You may have to throttle your worker thread usage because you can cause deadlocks if you consume all of the worker threads

  8. Doing IO from Completion Routines • What is filter manager going to do about this? • FltDoCompletionProcessingWhenSafe will be modified to either queue the request or automatically synchronize and call the specified routine. • This will happen automatically so if you use the current routine you should not have to change anything • We are going to modify the minifilter verifier to detect this situation and break

More Related