diff options
| author | Barry Golden <[email protected]> | 2019-03-12 14:02:43 -0700 |
|---|---|---|
| committer | Adonais Romero González <[email protected]> | 2019-03-12 14:02:43 -0700 |
| commit | ef7ec4ec9ff7ce3c53d60e1c8906915966e17e01 (patch) | |
| tree | 3017523a73c6552c27947d402afa6062f4df2706 /filesys/miniFilter/simrep/README.md | |
| parent | 35bff356ac249057f4d673d39c7f28ed348cbf0f (diff) | |
Update README.md for samples portal (#358)
* Update README.md for samples portal
* Update README.md for samples portal
* Removed installwdf
* Update fork (#2)
* Fix typo
ture -> true
* Remove InstallWdf sample
* Fix typo (#340)
ture -> true
* Readme typo fix (#349)
* Update langid
Diffstat (limited to 'filesys/miniFilter/simrep/README.md')
| -rw-r--r-- | filesys/miniFilter/simrep/README.md | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/filesys/miniFilter/simrep/README.md b/filesys/miniFilter/simrep/README.md index df02b1f5..60f16a60 100644 --- a/filesys/miniFilter/simrep/README.md +++ b/filesys/miniFilter/simrep/README.md @@ -1,3 +1,13 @@ +--- +topic: sample +name: SimRep File System Minifilter Driver +description: Demonstrates how a file system filter can simulate file-system like reparse-point behavior to redirect a file open to an alternate path. +languages: + - cpp +products: + - windows +--- + <!--- name: SimRep File System Minifilter Driver platform: WDM @@ -7,17 +17,15 @@ samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617656 ---> - -SimRep File System Minifilter Driver -==================================== +# SimRep File System Minifilter Driver SimRep is a sample filter that demonstrates how a file system filter can simulate file-system like reparse-point behavior to redirect a file open to an alternate path. ## Universal Windows Driver Compliant + This sample builds a Universal Windows Driver. It uses only APIs and DDIs that are included in OneCoreUAP. -Design and Operation --------------------- +## Design and Operation Normally, if the file-system sees an open for a file with a reparse-point on it, the filesystem fills out the tag buffer and returns STATUS\_REPARSE. Minifilters see the post-operation callback for this create. As the create travels up file system filter stack in post-create path, each minifilter has the opportunity to interpret the reparse point if they own the tag. If no file system filter claims the tag, IO Manager will attempt to interpret the tag based on tags known to and serviced by IO Manager. If the tag is unknown to IO manager then the create is failed with STATUS\_IO\_REPARSE\_TAG\_NOT\_HANDLED. SimRep does not demonstrate how to handle the case where the file system hits a reparse-point on the file. Instead it "fakes" encountering a reparse point before the create reaches the filesystem. When SimRep detects a create for a path that it is redirecting, SimRep replaces the file name in the file object and completes the open with STATUS\_REPARSE. This means we reparse without actually going to the file system. @@ -26,4 +34,3 @@ SimRep decides to reparse according to a mapping. The mapping is made up of a "N It is important to note that SimRep does not take long and short names into account. It literally does a string comparison to detect overlap with the mapping paths. SimRep also handles IRP\_MJ\_NETWORK\_QUERY\_OPEN. Because network query opens are FastIo operations, they cannot be reparsed. This means network query opens which need to be redirected must be failed with FLT\_PREOP\_DISALLOW\_FASTIO. This will cause the Io Manager to reissue the open as a regular IRP based open. To prevent performance regression, SimRep only fails network query opens which need to be reparsed. For more information on file system minifilter design, start with the [File System Minifilter Drivers](http://msdn.microsoft.com/en-us/library/windows/hardware/ff540402) section in the Installable File Systems Design Guide. - |
