A method and system for ordering software modules in a guaranteed order
for execution. Unique values are statically assigned to software modules
(e.g., filter drivers) when fully developed. Each module's assigned value
determines its relative position to other modules in a stack or other
arrangement, fixing the execution order for any set of filter drivers.
Static values may comprise floating-point numbers, whereby each new
software module may be assigned a number that enables positioning it
between any two existing software modules. For example, filter drivers
may be generally classified and assigned values in a range according to
type. Drivers of the same type may be ordered within their general range
to guarantee one possible ordering. A filter manager architecture is
described, in which filter drivers register with a manager for relevant
file system I/O operations. The manager calls appropriately registered
filter drivers in an order based on their assigned numbers.