-
Notifications
You must be signed in to change notification settings - Fork 668
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Kernel - Use the Rtl API to store DokanFCB in a Adelson-Velsky/Landis…
… (AVL) table Store the DokanFCB in an AVL tree instead of a simple list which becomes slower when there is more context being opened on different files. Moving from O(n) to O(log n). * The AVL tree is built by using the result of the RtlCompareUnicodeString between the two Fcb FileNames. * The AVL allocation callback is using a new lookaside list for allocating the AVL Node that contains the Avl Node header and a DokanFCB pointer of the inserted object that is allocated by another lookaside list. This allows us to manage the lifetime of the object outside the Avl table. * A new log macro was added when VCB is only accessible to limit the compare callback logging to the VCB instance (since we do not have the IRP RequestContext). * The FCB lookup and insert code were merged as the Avl insert API is doing a lookup to return the matching existing item or the new one inserted.
- Loading branch information
Showing
9 changed files
with
265 additions
and
153 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.