次の方法で共有


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 は、一致が見つかった場合に見つかったノードへのポインターを返します。 一致するものが見つからない場合、 RxPrefixTableLookupNameNULL ポインターを返します。

注釈

このルーチンは、MUP からの呼び出しに応じて RDBSS によって内部的に使用され、名前を要求するか、NET_ROOTまたはV_NET_ROOT構造体の作成パスを形成します。 RxPrefixTableLookupName ルーチンは、テーブルにアクセスする前に適切なロックが取得され、作業が完了したときにロックが解除されている限り、ネットワーク ミニ リダイレクターでも使用できます。 ドライバーによる通常の使用は次のようになります。

  • RxpAcquirePrefixTableLockShared を呼び出して共有ロックを取得します。
  • RxPrefixTableLookupName を呼び出して名前を検索します。
  • RxpReleasePrefixTableLock を呼び出して、共有ロックを解放します。
一致が見つかった場合、検出されたノードの参照カウントがインクリメントされることに注意してください。

チェックされたビルドでは、CanonicalName 文字列の長さが 0 より長くない場合、RxPrefixTableLookupName によってシステムが ASSERT されます。

要件

要件
対象プラットフォーム デスクトップ
Header prefix.h (Prefix.h を含む)
IRQL <= APC_LEVEL

こちらもご覧ください

RxpAcquirePrefixTableLockExclusive

RxpAcquirePrefixTableLockShared

RxpReleasePrefixTableLock