RDBSS 提供的例程

RDBSS 导出以下例程。

例程所返回的值 说明

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 维护的净名称表中。 此例程由 RDBSS 在内部使用,不应由网络微型重定向程序驱动程序使用。

RxCreateSrvOpen

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

RxCreateVNetRoot

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

RxDbgBreakPoint

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

RxDereference

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

RxDereferenceAndDeleteRxContext_Real

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

RxDestroyMidAtlas

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

RxDispatchToWorkerThread

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

RxDriverEntry

此例程由整体式网络微型重定向程序驱动程序从其 DriverEntry 调用,用于初始化 RDBSS。

对于非整体驱动程序,此初始化例程等效于rdbss.sys设备驱动程序的 DriverEntry 例程。

RxFinalizeConnection

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

RxFinalizeNetFcb

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

RxFinalizeNetFobx

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

RxFinalizeNetRoot

此例程完成给定NET_ROOT结构。 调用方应具有通过SRV_CALL结构) (与此NET_ROOT结构关联的设备对象的 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

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

RxFsdPostRequest

此例程将RX_CONTEXT结构指定的 I/O 请求数据包 (IRP) 排队到辅助角色队列,由文件系统进程 (FSP) 进行处理。

RxGetFileSizeWithLock

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

RxGetRDBSSProcess

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

RxIndicateChangeOfBufferingState

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

RxIndicateChangeOfBufferingStateForSrvOpen

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

RxInferFileType

此例程尝试从RX_CONTEXT结构中的 CreateOptions ( Create.NtCreateParameters.CreateOptions) 字段中推断出文件类型 (目录或非目录) 。

RxInitializeContext

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

RxIsThisACscAgentOpen

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

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

RxLockEnumerator

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

RxLogEventDirect

调用此例程以将错误记录到 I/O 错误日志。 建议使用 RxLogEventRxLogFailure 宏,而不是直接调用此例程。

RxLogEventWithAnnotation

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

RxLogEventWithBufferDirect

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

RxLowIoCompletion

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

RxLowIoGetBufferAddress

此例程从 RX_CONTEXT 结构的 LowIoContext 结构返回与 MDL 对应的缓冲区。

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

此例程释放使用 RxAcquireExclusiveFcbResourceInMRxRxAcquireSharedFcbResourceInMRx 获取的 FCB 资源。

RxReleaseFcbResourceForThreadInMRx

此例程释放使用 RxAcquireSharedFcbResourceInMRxEx 获取的 FCB 资源

此例程仅适用于 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

此例程是在 rxstruc.h 中定义的内联函数,由网络微型重定向程序驱动程序调用,以使用 RDBSS 注销驱动程序并从内部 RDBSS 注册表中删除注册信息。 RxUnregisterMinirdr 内联函数在内部调用 RxpUnregisterMinirdr

_RxAllocatePoolWithTag

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

建议使用 RxAllocatePoolWithTag 宏,而不是直接调用此例程。

_RxCheckMemoryBlock

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

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

_RxFreePool

此例程释放内存池。

建议使用 RxFreePool 宏,而不是直接调用此例程。

_RxLog

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

建议使用 RxLog 宏,而不是直接调用此例程。

此例程仅适用于 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 上可用。