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:

  1. Destroying the association with all NET_ROOTS

  2. 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.