BROUTER also enabled communication requests to be routed to the correct server via SPX by looking up the codice_9 NLM and coordinated locks and other mechanisms that controlled access to the data in the Btrieve database. Btrieve for DOS used the SEFS and MEFS modes for file sharing, and because it was able to run on a network it was able to use exclusive and concurrent transactions. Btrieve for Windows was created before the company rewrote the codebase to use the MKDE. It featured SEFS and MEFS file sharing mechanisms; used shadow-paging and allowed for exclusive and concurrent locks. It handled version 6.x and 6.1 files differently. Version 6.x files could handle operations on part of a record rather than locking the entire record. It handled records larger than 64KB, implemented VATs, ACSs, new data types, allowed for percentage operations (where the record could be located and manipulated by the physical location in the file) and handled duplicate keys. Version 6.x was capable of dropping or adding any index on the fly (version 6.0 and below could drop only supplemental indexes). Version 6.1 files allowed for concurrent and system transactions, the optional renumbering of keys, case insensitive ACS tables, and enhanced locking operations. Btrieve for Windows could run as a client to the database that utilized SEFS or MEFS modes, or it could directly access the Btrieve server. The client-based version of Btrieve has all the database files either directly on the local computer or via a mapped network drive (set up via the DOS codice_10 command). Applications make a function call to codice_11, a loader and requester interface. The loader and requester module verify the codice_12 configuration file is correctly set up to load the client-based Btrieve engine. In turn, this loads the local interface to the btrieve engine (codice_13). If necessary, this local interface loads the Btrieve engine (codice_14) into memory and sends the necessary database requests to it. The database engine then calls various Win32 system libraries to perform file operations on the database files. The client-based version of Btrieve for Windows could access server-based versions of Btrieve via a DOS-based "requester". The requestor required the use of DOS Protected Mode Interface (DPMI) which allowed program access to DOS extended memory accessible only via the CPU's Protected Mode.