Share via


Fonction RxPrefixTableLookupName (préfixe.h)

RxPrefixTableLookupName recherche un nom dans une table de préfixes utilisée pour cataloguer les noms SRV_CALL, NET_ROOT et V_NET_ROOT, puis convertit le pointeur sous-jacent en une structure qui contient le nom.

Syntaxe

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

Paramètres

[in] ThisTable

Pointeur vers la structure RX_PREFIX_TABLE dans laquelle rechercher.

[in] CanonicalName

Pointeur vers le nom de chaîne Unicode à rechercher.

[out] RemainingName

Pointeur vers le nom de chaîne Unicode de la partie du nom sans correspondance.

ConnectionId

Paramètre facultatif qui représente un pointeur vers le RX_CONNECTION_ID à utiliser.

Valeur retournée

RxPrefixTableLookupName retourne un pointeur vers le nœud trouvé si une correspondance est trouvée. Si aucune correspondance n’est trouvée, RxPrefixTableLookupName retourne un pointeur NULL .

Remarques

Cette routine est utilisée en interne par RDBSS en réponse à un appel de MUP pour revendiquer un nom ou former le chemin de création d’une structure NET_ROOT ou V_NET_ROOT. La routine RxPrefixTableLookupName peut également être utilisée par les mini-redirecteurs réseau tant que le verrou approprié est acquis avant d’accéder à la table et que le verrou est libéré une fois le travail terminé. L’utilisation normale par un pilote est la suivante :

  • Acquérir un verrou partagé en appelant RxpAcquirePrefixTableLockShared.
  • Recherchez un nom en appelant RxPrefixTableLookupName.
  • Relâchez le verrou partagé en appelant RxpReleasePrefixTableLock.
Notez que si une correspondance est trouvée, le nombre de références sur le nœud trouvé est incrémenté.

Sur les builds vérifiées, RxPrefixTableLookupName oblige le système à ASSERT si la longueur de la chaîne CanonicalName n’est pas supérieure à zéro.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête prefix.h (include Prefix.h)
IRQL <= APC_LEVEL

Voir aussi

RxpAcquirePrefixTableLockExclusive

RxpAcquirePrefixTableLockShared

RxpReleasePrefixTableLock