Hello everyone,
I want to store file paths with associated access rights in a minifilter driver. I’ve been comparing two data structures:
- Adaptive Radix Trie (ART): Dynamically adapts the node size for better cache locality and memory efficiency. It includes path compression (skipping over nodes with single children).
PREFIX_TABLE
: Has a fixed structure and does not compress paths, reflecting the file system hierarchy directly.
While ART generally offers higher performance, the PREFIX_TABLE
is a kernel-specific data structure designed for managing file system object prefixes (like path-based lookups).
I’m unsure which one would be more suitable for a minifilter driver. Since this minifilter is for a commercial product and must be signed by Windows, I’m particularly interested in knowing which implementation is more acceptable or recommended for Windows kernel development.
Any insights or best practices would be appreciated!
Thank you.