次の方法で共有


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 ポインターを返します。

備考

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

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

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

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー prefix.h (Prefix.h を含む)
IRQL <= APC_LEVEL

関連項目

RxpAcquirePrefixTableLockExclusive

RxpAcquirePrefixTableLockShared

RxpReleasePrefixTableLock