Routines Provided by RDBSS
The following routines are exported by RDBSS.
Routine | Description |
---|---|
This resource acquisition routine acquires the File Control Block (FCB) resource in exclusive mode. This routine will wait for the FCB resource to be free, so this routine does not return control until the resource has been acquired. This routine acquires the FCB resource even if the RX_CONTEXT associated with this FCB has been canceled. |
|
This resource acquisition routine acquires the FCB resource in shared mode. This routine will wait for the FCB resource to be free if it was previously acquired exclusively, so this routine does not return control until the resource has been acquired. This routine acquires the FCB resource even if the RX_CONTEXT associated with this FCB has been canceled. |
|
RxAcquireSharedFcbResourceInMRxEx | This resource acquisition routine acquires the FCB resource in shared mode. This routine will wait for the FCB resource to be freed if it was previously acquired exclusively. This routine does not return control until the resource has been acquired. This routine acquires the FCB resource even if the RX_CONTEXT associated with this FCB has been canceled. This routine is only available on Windows Server 2003 Service Pack 1 (SP1) and later. |
This routine sends an assert string in RDBSS checked builds to a kernel debugger if one is installed. |
|
This routine associates the supplied opaque context with an available multiplex ID (MID) from a MID_ATLAS data structure. |
|
This routine cancels a timer request. The request to be canceled is identified by the routine and context. |
|
This routine allocates an IRP for use by the connection engine and associates an MDL with the IRP. This routine is only available on Windows XP. |
|
This routine associates a transport address with a transport binding. |
|
This routine establishes a connection between a local RDBSS connection address and a given remote address. This routine should be called in the context of a system worker thread. |
|
This routine establishes a connection between a local RDBSS connection address and a given remote address and supports multiple transports. A set of local addresses are specified and this routine attempts to connect to the target server using all of the transports associated with the local addresses. One connection is chosen as the winner depending on the connection options. This routine must be called in the context of a system worker thread. |
|
This routine binds an RDBSS transport to a specified transport name. |
|
This routine adds a virtual circuit to a specified connection. |
|
This routine cancels a previously issued connection request. Note that this routine is not currently implemented. |
|
This routine frees an IRP used by the connection engine. This routine is only available on Windows XP. |
|
This routine initiates a disconnect on the virtual circuit. This routine must be called in the context of a system worker thread. |
|
This routine returns the ADAPTER_STATUS structure for a given transport. |
|
This routine queries for information about a given virtual circuit. |
|
This routine queries a given transport for information about the connection count and quality of service. |
|
This routine sends a transport service data unit (TSDU) along the specified connection on a virtual circuit. |
|
This routine sends a TSDU to a specified transport address. |
|
This routine removes a transport address from a transport binding. |
|
This routine tears down a given connection. |
|
This routine unbinds from the transport specified. |
|
This routine tears down a virtual connection. |
|
This routine is called to process a buffering state change request. |
|
This routine is used to complete an IRP associated with an RX_CONTEXT structure. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine is used to complete an IRP associated with an RX_CONTEXT structure. This routine should not be used by network mini-redirectors. |
|
This routine allocates a new instance of a MID_ATLAS data structure and initializes it. RDBSS uses the multiplex ID (MID) defined in this data structure as a way that both the network client (mini-redirector) and the server can distinguish between the concurrently active requests on any connection. |
|
This routine allocates, initializes, and inserts a new FCB structure into the in-memory data structures for a NET_ROOT structure on which this FCB is opened. The structure allocated has space for a SRV_OPEN and an FOBX structure. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine allocates, initializes, and inserts a new file object extension (FOBX) structure. Network mini-redirectors should call this routine to create an FOBX at the end of a successful create operation. |
|
This routine builds a node representing a NET_ROOT structure and inserts the name into the net name table on the associated device object. This routine is used internally by RDBSS and should not be used by network mini-redirectors. |
|
This routine allocates a new RX_CONTEXT structure and initializes the data structure. |
|
This routine builds a node that represents a server call context and inserts the name into the net name table maintained by RDBSS. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine allocates, initializes, and inserts a new SRV_OPEN structure into the in-memory data structures used by RDBSS. If a new structure has to be allocated, it has space for an FOBX structure. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine builds a node that represents a V_NET_ROOT structure and inserts the name into the net name table. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine raises an exception that is handled by the kernel debugger if one is installed; otherwise, it is handled by the debug system. |
|
This routine decrements the reference count on an instance of several of the reference-counted data structures used by RDBSS. |
|
This routine dereferences an RX_CONTEXT structure and if the reference count goes to zero, then it deallocates and removes the specified RX_CONTEXT structure from the RDBSS in-memory data structures. |
|
This routine destroys an existing instance of a MID_ATLAS data structure and frees the memory allocated. |
|
This routine invokes a routine in the context of a worker thread. |
|
This routine is called by a monolithic network mini-redirector driver from its DriverEntry to initialize RDBSS. For non-monolithic drivers, this initialization routine is equivalent to the DriverEntry routine of the rdbss.sys device driver. |
|
This routine deletes a connection to a share. Any files open on the connection are closed depending on the level of force specified. The network mini-redirector might choose to keep the transport connection open for performance reasons, unless some option is specified to force a close of connection. |
|
This routine finalizes the given FCB structure. The caller must have an exclusive lock on the NET_ROOT structure associated with FCB. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine finalizes the given FOBX structure. The caller must have an exclusive lock on the FCB associated with this FOBX. This routine is used internally by RDBSS and should not be used by network mini-redirectors. |
|
This routine finalizes the given NET_ROOT structure. The caller should have exclusive access to the lock on the NetName table of the device object associated with this NET_ROOT structure (through the SRV_CALL structure). This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine finalizes the given SRV_CALL structure. The caller should have exclusive access to the lock on the NetName table of the device object associated with this SRV_CALL structure. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine finalizes the given SRV_OPEN structure. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine finalizes the given V_NET_ROOT structure. The caller must have exclusive access to the lock on the NetName table of the device object associated with this V_NET_ROOT structure. This routine is used internally by RDBSS and should not be used by network mini-redirectors. |
|
This routine is used to finish initializing an FCB after the successful completion of a create operation by the network mini-redirector. |
|
This routine force finalizes all of the V_NET_ROOT structures associated with a given NET_ROOT structure. The caller must have exclusive access to the lock on the NetName table of the device object associated with this V_NET_ROOT structure. This routine is used internally by RDBSS and should not be used by network mini-redirectors. |
|
This routine implements the file system driver (FSD) dispatch for RDBSS to process an I/O request packet (IRP). This routine is called by a network mini-redirector in the driver dispatch routines to initiate RDBSS processing of a request. |
|
This routine queues the I/O request packet (IRP) specified by an RX_CONTEXT structure to the worker queue for processing by the file system process (FSP). |
|
This routine gets the file size from the FCB structure using a lock to ensure that the 64-bit value is read consistently. |
|
This routine returns a pointer to the process of the main thread used by the RDBSS kernel process. |
|
This routine is called to register a buffering state change request (an oplock break indication, for example) for later processing. |
|
This routine is called to register a buffering state change request (an oplock break indication, for example) for later processing. |
|
This routine tries to infer the file type (directory or non-directory) from the CreateOptions ( Create.NtCreateParameters.CreateOptions) field in the RX_CONTEXT structure. |
|
This routine initializes a newly allocated RX_CONTEXT structure. |
|
This routine determines if a file open was made by a user-mode client-side caching agent. This routine is only available on Windows Server 2003. |
|
This routine is called from a network mini-redirector to enumerate the file locks on an FCB. |
|
This routine is called to log an error to the I/O error log. It is recommended that the RxLogEvent or RxLogFailure macro be used instead of calling this routine directly. |
|
This routine allocates an I/O error log structure, fills in the log structure, and writes this structure to the I/O error log. |
|
This routine is called to log an error to an I/O error log. This routine encodes the line number and status into the data buffer stored in the I/O error log structure. |
|
This routine must be called by the low I/O routines of a network mini-redirector driver when processing is complete, if the routine initially returned pending. |
|
This routine returns the buffer that corresponds to the MDL from the LowIoContext structure of an RX_CONTEXT structure. |
|
This routine modifies the device object to make a "late device" available. A late device is one that is not created in the driver's load routine. |
|
This routine maps a MID to its associated context in a MID_ATLAS data structure and then disassociates the MID from the context. |
|
This routine maps a MID to its associated context in a MID_ATLAS data structure. |
|
This routine returns the system buffer address from the I/O request packet (IRP). |
|
This routine takes a name cache entry and updates the expiration time and the network mini-redirector context. It then puts the entry on the active list. |
|
This routine checks a NAME_CACHE entry for validity. |
|
This routine allocates and initializes a NAME_CACHE structure with the given name string. It is expected that the caller will then initialize any additional network mini-redirector elements of the name cache context and then put the entry on the name cache active list. |
|
This routine puts a NAME_CACHE entry on the free list. |
|
This routine expires all of the NAME_CACHE entries whose name prefix matches the given short file name. |
|
This routine looks for a match with a specified name string for a NAME_CACHE entry. |
|
This routine releases the storage for all of the NAME_CACHE entries associated with a NAME_CACHE_CONTROL structure. |
|
This routine releases the storage for a NAME_CACHE entry and decrements the count of NAME_CACHE cache entries associated with a NAME_CACHE_CONTROL structure. |
|
This routine initializes a NAME_CACHE structure and associates it with a NAME_CACHE_CONTROL structure. |
|
This routine returns the address of the user buffer used for low I/O. This routine is only available on Windows XP and Windows 2000. |
|
This routine acquires an exclusive lock on a prefix table used to catalog SRV_CALL and NET_ROOT names. This routine is only available on Windows XP and Windows 2000. This routine is used internally by RDBSS and should not be used by network mini-redirectors. |
|
This routine acquires a shared lock on a prefix table used to catalog SRV_CALL and NET_ROOT names. This routine is only available on Windows XP and Windows 2000. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
RxpDereferenceAndFinalizeNetFcb | This routine dereferences the reference count and finalizes an FCB. This routine is only available on Windows Server 2003 Service Pack 1 (SP1) and later. |
This routine decrements the reference count on an FCB. |
|
This routine is used by drivers to initialize a one-shot timer request. The worker thread routine passed to this routine is called once when the timer expires. |
|
This routine is used to initialize a recurrent timer request. The worker thread routine passed to this routine is called at regular intervals when the recurrent timer fires based on the input parameters to this routine. |
|
This routine invokes the routine in the context of a worker thread. |
|
This routine increments the reference count on an FCB. |
|
The routine looks up a name in a prefix table used to catalog SRV_CALL and NET_ROOT names and converts from the underlying pointer to the containing structure. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine releases a lock on a prefix table used to catalog SRV_CALL and NET_ROOT names. This routine is only available on Windows XP and Windows 2000. This routine is used internally by RDBSS and should not be used by network mini-redirector drivers. |
|
This routine prepares an RX_CONTEXT structure for reuse by resetting all operation-specific allocations and acquisitions that have been made. The parameters obtained from the IRP are not modified. This routine is used internally by RDBSS and should not be used by network mini-redirectors. |
|
This routine sets up the file object name to facilitate a reparse. This routine is used by the network mini-redirectors to traverse symbolic links. This routine is used internally by RDBSS and should not be used by network mini-redirectors. |
|
This routine is used to track requests to dereference SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB, and SRV_OPEN structures in checked builds. A log of these dereference requests can be accessed by the logging system and WMI. For retail builds, this routine does nothing. |
|
This routine is used to track requests to reference SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB, and SRV_OPEN structures in checked builds. A log of these reference requests can be accessed by the logging system and WMI. For retail builds, this routine does nothing. |
|
The routine is called by a network mini-redirector driver to unregister the driver with RDBSS and remove the registration information from the internal RDBSS registration table. |
|
This routine purges all the FOBX structures associated with a network mini-redirector. |
|
This routine purges all of the FOBX structures associated with a NET_ROOT structure. |
|
This routine reassociates a MID with an alternate context. |
|
This routine increments the reference count on an instance of several of the reference-counted data structures used by RDBSS. |
|
This routine is called by a network mini-redirector driver to register the driver with RDBSS, which adds the registration information to an internal registration table. RDBSS also builds a device object for the network mini-redirector. |
|
This routine frees the FCB resource acquired using RxAcquireExclusiveFcbResourceInMRx or RxAcquireSharedFcbResourceInMRx. |
|
RxReleaseFcbResourceForThreadInMRx | This routine frees the FCB resource acquired using RxAcquireSharedFcbResourceInMRxEx This routine is only available on Windows Server 2003 Service Pack 1 (SP1) and later. |
This routine wakes up the next waiting thread, if any, on the serialized blocking I/O queue. |
|
This routine scavenges all of the FOBX structures associated with a given network mini-redirector device object. |
|
This routine scavenges all of the FOBX structures that pertain to the given NET_ROOT structure. |
|
This routine is called by a network mini-redirector driver to set the domain used for mailslot broadcasts if mailslots are supported by the driver. |
|
This routine sets up a network mini-redirector cancel routine for an RX_CONTEXT structure. |
|
This routine sets the domain name associated with any given server (SRV_CALL structure). |
|
This routine tears down the dispatcher context for a network mini-redirector. This routine is only available on Windows XP and later. |
|
This routine starts up a network mini-redirector that called to register itself. RDBSS will also register the network mini-redirector driver as a Universal Naming Convention (UNC) provider with the Multiple UNC Provider (MUP) if the driver indicates support for UNC names. |
|
This routine stops a network mini-redirector driver. A driver that is stopped will no longer accept new commands. |
|
This routine is an inline function defined in rxstruc.h that is called by a network mini-redirector driver to unregister the driver with RDBSS and remove the registration information from the internal RDBSS registration table. The RxUnregisterMinirdr inline function internally calls RxpUnregisterMinirdr. |
|
This routine allocates memory from a pool with a four-byte tag at the beginning of the block that can be used to help catch instances of memory problems. It is recommended that the RxAllocatePoolWithTag macro be used instead of calling this routine directly. |
|
This routine checks a memory block for a special RX_POOL_HEADER header signature. Note that a network mini-redirector driver would need to add this special signature block to memory allocated in order to use the routine. This routine should not be used since this special header block has not been implemented. |
|
This routine frees a memory pool. It is recommended that the RxFreePool macro be used instead of calling this routine directly. |
|
This routine takes a format string and variable number of parameters and formats an output string for structureing as an I/O error log entry if logging is enabled. It is recommended that the RxLog macro be used instead of calling this routine directly. This routine is only available on checked builds of RDBSS on Windows Server 2003, Windows XP, and Windows 2000. |
|
This routine fills out a fast I/O dispatch vector to be identical with the normal dispatch I/O vector and installs it into the driver object that is associated with the device object passed. This routine is implemented only for non-monolithic drivers and does nothing on monolithic drivers. |
|
__RxSynchronizeBlockingOperations | This routine is used to synchronize blocking I/O to the same work queue. This routine is used internally by RDBSS to synchronize named pipe operations. This routine may be used by a network mini-redirector to synchronize operations on a separate queue that is maintained by the network mini-redirector. This routine is only available on Windows Server 2003. |
__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock | This routine is used to synchronize blocking I/O to the same work queue. This routine is used internally by RDBSS to synchronize named pipe operations. This routine may be used by a network mini-redirector to synchronize operations on a separate queue that is maintained by the network mini-redirector. This routine is only available on Windows XP and Windows 2000. |