Windows Driver Kit: Installable File System Drivers
The SRV_CALL Structure
The server call context structure, SRV_CALL, maintains information about each specific network server connection maintained by a network mini-redirector.
A global list of the SRV_CALL structures is maintained in global data by RDBSS. Each SRV_CALL structure has a few elements common with other RDBSS structures, along with elements that are unique to a SRV_CALL structure. The RDBSS routines that manage SRV_CALL structures only modify the following elements:
- Signature and reference count
- A name and associated table information
- A list of associated NET_ROOT entries
- A set of timing parameters that control how often the network mini-redirector wants to be called by RDBSS in different circumstances (idle timeouts, for example)
- The associated network mini-redirector driver ID
- Whatever additional storage is request by the network mini-redirector (or the creator of the SRV_CALL data structure)
The Unicode name of the SRV_CALL structure is carried in the structure itself at the end. Extra space reserved for use by the network mini-redirector begins at the end of the known SRV_CALL data structure so that a network mini-redirector can simply refer to this extra space using context fields from an include file.
The finalization of a SRV_CALL structure consists of two parts:
- Destroying the association with all NET_ROOTS
- Freeing the memory
There can be a delay between these two actions, and a field in the SRV_CALL structure prevents the first step from being duplicated.