Функция 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
Указатель на имя строки Юникода для поиска.
[out] RemainingName
Указатель на строковое имя в Юникоде части имени, которая не имеет себе значения.
ConnectionId
Необязательный параметр, представляющий указатель на используемый RX_CONNECTION_ID.
Возвращаемое значение
RxPrefixTableLookupName возвращает указатель на узел, который был найден при обнаружении совпадения. Если совпадение не найдено, RxPrefixTableLookupName возвращает указатель NULL .
Комментарии
Эта подпрограмма используется внутри RDBSS в ответ на вызов из MUP для утверждения имени или формирования пути создания для NET_ROOT или V_NET_ROOT структуры. Подпрограмма RxPrefixTableLookupName также может использоваться сетевыми мини-перенаправлениями, если соответствующая блокировка будет получена перед доступом к таблице, а блокировка будет снята после завершения работы. Обычное использование драйвером будет следующим:
- Получите общую блокировку, вызвав RxpAcquirePrefixTableLockShared.
- Найдите имя, вызвав RxPrefixTableLookupName.
- Освободите общую блокировку, вызвав RxpReleasePrefixTableLock.
В проверенных сборках RxPrefixTableLookupName вызывает в системе действие ASSERT, если длина строки CanonicalName не больше нуля.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | prefix.h (включая Prefix.h) |
IRQL | <= APC_LEVEL |
См. также раздел
RxpAcquirePrefixTableLockExclusive