RDBSS 提供的例程

RDBSS 导出以下例程。

Routine Description

RxAcquireExclusiveFcbResourceInMRx

此资源获取例程以独占模式获取文件控制块 (FCB) 资源。 此例程将等待 FCB 资源释放,因此,在获取资源之前,此例程不会返回控制权。 即使已取消与此 FCB 关联的RX_CONTEXT,此例程也会获取 FCB 资源。

RxAcquireSharedFcbResourceInMRx

此资源获取例程以共享模式获取 FCB 资源。 如果以前是独占获取的,此例程将等待 FCB 资源释放,因此此例程在获取资源之前不会返回控制权。 即使已取消与此 FCB 关联的RX_CONTEXT,此例程也会获取 FCB 资源。

RxAcquireSharedFcbResourceInMRxEx

此资源获取例程以共享模式获取 FCB 资源。 如果以前是独占获取的,此例程将等待 FCB 资源释放。 在获取资源之前,此例程不会返回控制权。 即使已取消与此 FCB 关联的RX_CONTEXT,此例程也会获取 FCB 资源。

此例程仅适用于 Windows Server 2003 Service Pack 1(SP1)及更高版本。

RxAssert

如果安装了断言字符串,则此例程会将 RDBSS 中检查的生成中的断言字符串发送到内核调试器。

RxAssociateContextWithMid

此例程将提供的不透明上下文与MID_ATLAS数据结构中的可用多路复用 ID (MID)相关联。

RxCancelTimerRequest

此例程取消计时器请求。 要取消的请求由例程和上下文标识。

RxCeAllocateIrpWithMDL

此例程分配 IRP 供连接引擎使用,并将 MDL 与 IRP 相关联。

此例程仅在 Windows XP 上可用。

RxCeBuildAddress

此例程将传输地址与传输绑定相关联。

RxCeBuildConnection

此例程在本地 RDBSS 连接地址和给定的远程地址之间建立连接。 应在系统工作线程的上下文中调用此例程。

RxCeBuildConnectionOverMultipleTransports

此例程在本地 RDBSS 连接地址与给定的远程地址之间建立连接,并支持多个传输。 指定了一组本地地址,此例程尝试使用与本地地址关联的所有传输连接到目标服务器。 根据连接选项,选择一个连接作为优胜者。 必须在系统工作线程的上下文中调用此例程。

RxCeBuildTransport

此例程将 RDBSS 传输绑定到指定的传输名称。

RxCeBuildVC

此例程将虚拟线路添加到指定的连接。

RxCeCancelConnectRequest

此例程取消以前颁发的连接请求。

请注意,此例程当前未实现。

RxCeFreeIrp

此例程释放连接引擎使用的 IRP。

此例程仅在 Windows XP 上可用。

RxCeInitiateVCDisconnect

此例程在虚拟线路上启动断开连接。 必须在系统工作线程的上下文中调用此例程。

RxCeQueryAdapterStatus

此例程返回给定传输的ADAPTER_STATUS结构。

RxCeQueryInformation

此例程查询有关给定虚拟线路的信息。

RxCeQueryTransportInformation

此例程查询给定的传输,以获取有关连接计数和服务质量的信息。

RxCeSend

此例程沿虚拟线路上的指定连接发送传输服务数据单元(TSDU)。

RxCeSendDatagram

此例程将 TSDU 发送到指定的传输地址。

RxCeTearDownAddress

此例程从传输绑定中删除传输地址。

RxCeTearDownConnection

此例程将断开给定的连接。

RxCeTearDownTransport

此例程从指定的传输中取消绑定。

RxCeTearDownVC

此例程会拆毁虚拟连接。

RxChangeBufferingState

调用此例程来处理缓冲状态更改请求。

RxCompleteRequest

此例程用于完成与RX_CONTEXT结构关联的 IRP。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxCompleteRequest_Real

此例程用于完成与RX_CONTEXT结构关联的 IRP。 网络微型重定向程序不应使用此例程。

RxCreateMidAtlas

此例程分配MID_ATLAS数据结构的新实例并初始化它。 RDBSS 使用此数据结构中定义的多路复用 ID(MID)作为网络客户端(微型重定向程序)和服务器可以区分任何连接的并发活动请求的方式。

RxCreateNetFcb

此例程为打开此 FCB 的NET_ROOT结构分配、初始化和插入内存中数据结构中新的 FCB 结构。 分配的结构具有SRV_OPEN和 FOBX 结构的空间。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxCreateNetFobx

此例程分配、初始化和插入新的文件对象扩展 (FOBX) 结构。 网络微型重定向程序应调用此例程,以在成功创建作结束时创建 FOBX。

RxCreateNetRoot

此例程生成一个表示NET_ROOT结构的节点,并将名称插入关联设备对象的 net name 表中。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序使用。

RxCreateRxContext

此例程分配新的RX_CONTEXT结构并初始化数据结构。

RxCreateSrvCall

此例程生成一个节点,该节点表示服务器调用上下文,并将名称插入 RDBSS 维护的 net name 表中。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxCreateSrvOpen

此例程分配、初始化新SRV_OPEN结构并将其插入 RDBSS 使用的内存中数据结构。 如果必须分配新结构,则它具有 FOBX 结构的空间。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxCreateVNetRoot

此例程生成一个表示V_NET_ROOT结构的节点,并将名称插入到 net name 表中。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxDbgBreakPoint

如果安装了内核调试器,此例程将引发由内核调试器处理的异常;否则,它由调试系统处理。

RxDereference

此例程递减 RDBSS 使用的多个引用计数数据结构的实例的引用计数。

RxDereferenceAndDeleteRxContext_Real

此例程取消引用RX_CONTEXT结构,如果引用计数为零,则它将解除分配,并从 RDBSS 内存中数据结构中删除指定的RX_CONTEXT结构。

RxDestroyMidAtlas

此例程销毁MID_ATLAS数据结构的现有实例,并释放分配的内存。

RxDispatchToWorkerThread

此例程在工作线程的上下文中调用例程。

RxDriverEntry

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.

RxFinalizeConnection

此例程删除与共享的连接。 连接上打开的任何文件都根据指定的强制级别关闭。 网络微型重定向程序可能会出于性能原因选择保持传输连接打开状态,除非指定了某些选项来强制关闭连接。

RxFinalizeNetFcb

此例程将完成给定的 FCB 结构。 调用方必须对与 FCB 关联的NET_ROOT结构具有排他锁。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxFinalizeNetFobx

此例程将完成给定的 FOBX 结构。 调用方必须在与此 FOBX 关联的 FCB 上具有独占锁。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序使用。

RxFinalizeNetRoot

此例程将完成给定NET_ROOT结构。 调用方应对与此NET_ROOT结构(通过SRV_CALL结构)关联的设备对象的 NetName 表上的锁具有独占访问权限。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxFinalizeSrvCall

此例程将完成给定SRV_CALL结构。 调用方应对与此SRV_CALL结构关联的设备对象的 NetName 表上的锁具有独占访问权限。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxFinalizeSrvOpen

此例程将完成给定SRV_OPEN结构。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxFinalizeVNetRoot

此例程将完成给定V_NET_ROOT结构。 调用方必须对与此V_NET_ROOT结构关联的设备对象的 NetName 表上的锁具有独占访问权限。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序使用。

RxFinishFcbInitialization

此例程用于在网络微型重定向程序成功完成创建作后完成 FCB 初始化。

RxForceFinalizeAllVNetRoots

此例程强制完成与给定NET_ROOT结构关联的所有V_NET_ROOT结构。 调用方必须对与此V_NET_ROOT结构关联的设备对象的 NetName 表上的锁具有独占访问权限。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序使用。

RxFsdDispatch

此例程实现 RDBSS 的文件系统驱动程序(FSD)调度来处理 I/O 请求数据包(IRP)。 此例程由驱动程序调度例程中的网络微型重定向程序调用,以启动对请求的 RDBSS 处理。

RxFsdPostRequest

此例程将由RX_CONTEXT结构指定的 I/O 请求数据包(IRP)排到工作线程队列,以供文件系统进程(FSP)处理。

RxGetFileSizeWithLock

此例程使用锁从 FCB 结构中获取文件大小,以确保读取 64 位值一致。

RxGetRDBSSProcess

此例程返回指向 RDBSS 内核进程使用的主线程进程的指针。

RxIndicateChangeOfBufferingState

调用此例程来注册缓冲状态更改请求(例如 oplock 中断指示,例如),以供以后处理。

RxIndicateChangeOfBufferingStateForSrvOpen

调用此例程来注册缓冲状态更改请求(例如 oplock 中断指示,例如),以供以后处理。

RxInferFileType

This routine tries to infer the file type (directory or non-directory) from the CreateOptions ( Create.NtCreateParameters.CreateOptions) field in the RX_CONTEXT structure.

RxInitializeContext

此例程初始化新分配RX_CONTEXT结构。

RxIsThisACscAgentOpen

此例程确定是否由用户模式客户端缓存代理创建文件打开。

此例程仅在 Windows Server 2003 上可用。

RxLockEnumerator

此例程从网络微型重定向程序调用,以枚举 FCB 上的文件锁。

RxLogEventDirect

调用此例程将错误记录到 I/O 错误日志。 It is recommended that the RxLogEvent or RxLogFailure macro be used instead of calling this routine directly.

RxLogEventWithAnnotation

此例程分配 I/O 错误日志结构,填充日志结构,并将此结构写入 I/O 错误日志。

RxLogEventWithBufferDirect

调用此例程将错误记录到 I/O 错误日志。 此例程将行号和状态编码为存储在 I/O 错误日志结构中的数据缓冲区。

RxLowIoCompletion

如果最初返回挂起的例程,则处理完成后,网络微型重定向程序驱动程序的低 I/O 例程必须调用此例程。

RxLowIoGetBufferAddress

This routine returns the buffer that corresponds to the MDL from the LowIoContext structure of an RX_CONTEXT structure.

RxMakeLateDeviceAvailable

此例程修改设备对象以使“延迟设备”可用。 延迟设备是在驱动程序的负载例程中未创建的设备。

RxMapAndDissociateMidFromContext

此例程将 MID 映射到MID_ATLAS数据结构中的关联上下文,然后将 MID 与上下文取消关联。

RxMapMidToContext

此例程将 MID 映射到MID_ATLAS数据结构中的关联上下文。

RxMapSystemBuffer

此例程从 I/O 请求数据包(IRP)返回系统缓冲区地址。

RxNameCacheActivateEntry

此例程采用名称缓存条目并更新过期时间和网络微型重定向程序上下文。 然后,它将条目置于活动列表中。

RxNameCacheCheckEntry

此例程检查NAME_CACHE条目是否有效。

RxNameCacheCreateEntry

此例程使用给定的名称字符串分配和初始化NAME_CACHE结构。 预计调用方随后将初始化名称缓存上下文的任何其他网络微型重定向程序元素,然后将条目放在名称缓存活动列表中。

RxNameCacheExpireEntry

此例程将NAME_CACHE条目置于免费列表中。

RxNameCacheExpireEntryWithShortName

此例程使名称前缀与给定的短文件名匹配的所有NAME_CACHE条目过期。

RxNameCacheFetchEntry

此例程查找具有指定名称字符串的匹配项NAME_CACHE。

RxNameCacheFinalize

此例程释放与NAME_CACHE_CONTROL结构关联的所有NAME_CACHE条目的存储。

RxNameCacheFreeEntry

此例程释放NAME_CACHE条目的存储,并递减与NAME_CACHE_CONTROL结构关联的NAME_CACHE缓存项计数。

RxNameCacheInitialize

此例程初始化NAME_CACHE结构并将其与NAME_CACHE_CONTROL结构相关联。

RxNewMapUserBuffer

此例程返回用于低 I/O 的用户缓冲区的地址。

此例程仅在 Windows XP 和 Windows 2000 上可用。

RxpAcquirePrefixTableLockExclusive

此例程获取用于目录SRV_CALL和NET_ROOT名称的前缀表的排他锁。

此例程仅在 Windows XP 和 Windows 2000 上可用。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序使用。

RxpAcquirePrefixTableLockShared

此例程获取用于目录SRV_CALL和NET_ROOT名称的前缀表上的共享锁。

此例程仅在 Windows XP 和 Windows 2000 上可用。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxpDereferenceAndFinalizeNetFcb

此例程取消引用引用计数并完成 FCB。

此例程仅适用于 Windows Server 2003 Service Pack 1(SP1)及更高版本。

RxpDereferenceNetFcb

此例程会递减 FCB 上的引用计数。

RxPostOneShotTimerRequest

驱动程序使用此例程初始化一次性计时器请求。 计时器过期时,将调用传递给此例程的工作线程例程一次。

RxPostRecurrentTimerRequest

此例程用于初始化定期计时器请求。 当定期计时器根据此例程的输入参数触发时,将定期调用传递给此例程的工作线程例程。

RxPostToWorkerThread

此例程在工作线程的上下文中调用例程。

RxpReferenceNetFcb

此例程递增 FCB 上的引用计数。

RxPrefixTableLookupName

例程在前缀表中查找一个名称,该名称用于编录SRV_CALL和NET_ROOT名称,并从基础指针转换为包含结构。

此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxpReleasePrefixTableLock

此例程释放用于编录SRV_CALL和NET_ROOT名称的前缀表的锁。

此例程仅在 Windows XP 和 Windows 2000 上可用。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxPrepareContextForReuse

此例程通过重置已进行的所有特定于作的分配和购置来准备RX_CONTEXT结构以供重复使用。 不会修改从 IRP 获取的参数。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序使用。

RxPrepareToReparseSymbolicLink

此例程设置文件对象名称以方便重新分析。 网络微型重定向程序使用此例程遍历符号链接。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序使用。

RxpTrackDereference

此例程用于跟踪在检查的生成中取消引用SRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB 和SRV_OPEN结构的请求。 日志记录系统和 WMI 可以访问这些取消引用请求的日志。

对于零售版本,此例程不执行任何作。

RxpTrackReference

此例程用于跟踪在检查生成中引用SRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB 和SRV_OPEN结构的请求。 日志记录系统和 WMI 可以访问这些引用请求的日志。

对于零售版本,此例程不执行任何作。

RxpUnregisterMinirdr

该例程由网络微型重定向程序驱动程序调用,以使用 RDBSS 注销驱动程序,并从内部 RDBSS 注册表中删除注册信息。

RxPurgeAllFobxs

此例程清除与网络微型重定向程序关联的所有 FOBX 结构。

RxPurgeRelatedFobxs

此例程清除与NET_ROOT结构关联的所有 FOBX 结构。

RxReassociateMid

此例程将 MID 与备用上下文重新关联。

RxReference

此例程递增 RDBSS 使用的多个引用计数数据结构的实例的引用计数。

RxRegisterMinirdr

此例程由网络微型重定向程序驱动程序调用,以向 RDBSS 注册驱动程序,该例程将注册信息添加到内部注册表。 RDBSS 还会为网络微型重定向程序生成设备对象。

RxReleaseFcbResourceInMRx

This routine frees the FCB resource acquired using RxAcquireExclusiveFcbResourceInMRx or RxAcquireSharedFcbResourceInMRx.

RxReleaseFcbResourceForThreadInMRx

This routine frees the FCB resource acquired using RxAcquireSharedFcbResourceInMRxEx

此例程仅适用于 Windows Server 2003 Service Pack 1(SP1)及更高版本。

RxResumeBlockedOperations_Serially

此例程在序列化的阻塞 I/O 队列上唤醒下一个等待线程(如果有)。

RxScavengeAllFobxs

此例程会清理与给定网络微型重定向程序设备对象关联的所有 FOBX 结构。

RxScavengeFobxsForNetRoot

此例程会清理与给定NET_ROOT结构相关的所有 FOBX 结构。

RxSetDomainForMailslotBroadcast

如果驱动程序支持 mailslot,则网络微型重定向程序驱动程序调用此例程以设置用于 mailslot 广播的域。

RxSetMinirdrCancelRoutine

此例程为RX_CONTEXT结构设置网络微型重定向程序取消例程。

RxSetSrvCallDomainName

此例程设置与任何给定服务器(SRV_CALL结构)关联的域名。

RxSpinDownMRxDispatcher

此例程将断开网络微型重定向器的调度程序上下文。

此例程仅适用于 Windows XP 及更高版本。

RxStartMinirdr

此例程启动一个网络微型重定向程序,用于注册自身。 如果驱动程序指示对 UNC 名称的支持,RDBSS 还将网络微型重定向程序驱动程序注册为通用命名约定 (UNC) 提供程序(UNC)提供程序(MUP)。

RxStopMinirdr

此例程停止网络微型重定向程序驱动程序。 停止的驱动程序将不再接受新命令。

RxUnregisterMinirdr

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.

_RxAllocatePoolWithTag

此例程使用块开头的四字节标记从池分配内存,该标记可用于帮助捕获内存问题的实例。

It is recommended that the RxAllocatePoolWithTag macro be used instead of calling this routine directly.

_RxCheckMemoryBlock

此例程检查内存块是否有特殊RX_POOL_HEADER标头签名。 请注意,网络微型重定向程序驱动程序需要将此特殊签名块添加到分配的内存,才能使用例程。

不应使用此例程,因为尚未实现此特殊标头块。

_RxFreePool

此例程释放内存池。

It is recommended that the RxFreePool macro be used instead of calling this routine directly.

_RxLog

如果启用日志记录,此例程采用格式字符串和可变数量的参数,并将输出字符串格式化为 I/O 错误日志条目。

It is recommended that the RxLog macro be used instead of calling this routine directly.

此例程仅适用于 Windows Server 2003、Windows XP 和 Windows 2000 上已检查的 RDBSS 内部版本。

__RxFillAndInstallFastIoDispatch

此例程填充了与普通调度 I/O 向量相同的快速 I/O 调度向量,并将其安装到与传递的设备对象关联的驱动程序对象中。

此例程仅针对非单一驱动程序实现,对整体驱动程序不执行任何作。

__RxSynchronizeBlockingOperations

此例程用于将阻止 I/O 同步到同一工作队列。 RDBSS 在内部使用此例程来同步命名管道作。 网络微型重定向程序可以使用此例程来同步由网络微型重定向程序维护的单独队列上的作。

此例程仅在 Windows Server 2003 上可用。

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock

此例程用于将阻止 I/O 同步到同一工作队列。 RDBSS 在内部使用此例程来同步命名管道作。 网络微型重定向程序可以使用此例程来同步由网络微型重定向程序维护的单独队列上的作。

此例程仅在 Windows XP 和 Windows 2000 上可用。