RxPrefixTableLookupName-Funktion (prefix.h)

RxPrefixTableLookupName sucht einen Namen in einer Präfixtabelle, die zum Katalogisieren von SRV_CALL, NET_ROOT und V_NET_ROOT Namen verwendet wird, und konvertiert den zugrunde liegenden Zeiger in eine Struktur, die den Namen enthält.

Syntax

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

Parameter

[in] ThisTable

Ein Zeiger auf die RX_PREFIX_TABLE Struktur, in der gesucht werden soll.

[in] CanonicalName

Ein Zeiger auf den Nachschlagenamen der Unicode-Zeichenfolge.

[out] RemainingName

Ein Zeiger auf den Unicode-Zeichenfolgennamen des Teils des Namens, der nicht übereinstimmend war.

ConnectionId

Ein optionaler Parameter, der einen Zeiger auf die zu verwendende RX_CONNECTION_ID darstellt.

Rückgabewert

RxPrefixTableLookupName gibt einen Zeiger auf den Knoten zurück, der gefunden wurde, wenn eine Übereinstimmung gefunden wird. Wenn keine Übereinstimmung gefunden wird, gibt RxPrefixTableLookupName einen NULL-Zeiger zurück.

Hinweise

Diese Routine wird intern von RDBSS als Reaktion auf einen Aufruf von MUP verwendet, um einen Namen anzufordern oder den Erstellungspfad für eine NET_ROOT- oder V_NET_ROOT-Struktur zu bilden. Die RxPrefixTableLookupName-Routine kann auch von Netzwerk-Miniumleitungen verwendet werden, solange die entsprechende Sperre vor dem Zugriff auf die Tabelle abgerufen wird und die Sperre nach Abschluss der Arbeit aufgehoben wird. Die normale Verwendung durch einen Treiber wäre wie folgt:

  • Rufen Sie eine freigegebene Sperre auf, indem Sie RxpAcquirePrefixTableLockShared aufrufen.
  • Suchen Sie einen Namen, indem Sie RxPrefixTableLookupName aufrufen.
  • Geben Sie die freigegebene Sperre frei, indem Sie RxpReleasePrefixTableLock aufrufen.
Beachten Sie, dass die Verweisanzahl auf dem gefundenen Knoten erhöht wird, wenn eine Übereinstimmung gefunden wird.

Bei überprüften Builds bewirkt RxPrefixTableLookupName , dass das System ASSERT erhält, wenn die Länge der CanonicalName-Zeichenfolge nicht größer als 0 (null) ist.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile prefix.h (include Prefix.h)
IRQL <= APC_LEVEL

Weitere Informationen

RxpAcquirePrefixTableLockExclusive

RxpAcquirePrefixTableLockShared

RxpReleasePrefixTableLock