RxPrefixTableLookupName 函数 (prefix.h)

RxPrefixTableLookupName 在前缀表中查找用于编录SRV_CALL、NET_ROOT和V_NET_ROOT名称的名称,并将基础指针转换为包含该名称的结构。

语法

PVOID RxPrefixTableLookupName(
  [in]  IN PRX_PREFIX_TABLE  ThisTable,
  [in]  IN PUNICODE_STRING   CanonicalName,
  [out] OUT PUNICODE_STRING  RemainingName,
        IN PRX_CONNECTION_ID ConnectionId
);

参数

[in] ThisTable

指向要在其中查找的RX_PREFIX_TABLE结构的指针。

[in] CanonicalName

指向要查找的 Unicode 字符串名称的指针。

[out] RemainingName

指向名称中不匹配部分的 Unicode 字符串名称的指针。

ConnectionId

一个可选参数,表示指向要使用的RX_CONNECTION_ID的指针。

返回值

RxPrefixTableLookupName 返回指向在找到匹配项时找到的节点的指针。 如果未找到匹配项, RxPrefixTableLookupName 将返回 NULL 指针。

注解

RDBSS 在内部使用此例程来响应来自 MUP 的调用,以声明名称或构成NET_ROOT或V_NET_ROOT结构的创建路径。 网络微型重定向程序也可以使用 RxPrefixTableLookupName 例程,前提是在访问表之前获取了相应的锁,并在工作完成后释放锁。 驱动程序的正常使用如下所示:

  • 通过调用 RxpAcquirePrefixTableLockShared 获取共享锁。
  • 通过调用 RxPrefixTableLookupName 查找名称。
  • 通过调用 RxpReleasePrefixTableLock 释放共享锁。
请注意,如果找到匹配项,则找到的节点上的引用计数将递增。

在检查的生成中,如果 CanonicalName 字符串的长度不大于零,则 RxPrefixTableLookupName 会导致系统执行 ASSERT。

要求

要求
目标平台 桌面
标头 prefix.h (包括 Prefix.h)
IRQL <= APC_LEVEL

另请参阅

RxpAcquirePrefixTableLockExclusive

RxpAcquirePrefixTableLockShared

RxpReleasePrefixTableLock