Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
FsRtlRegisterUncProvider подпрограмма регистрирует перенаправитель сети в качестве поставщика универсального соглашения об именовании (UNC) с системой нескольких поставщиков UNC (MUP).
Синтаксис
NTSTATUS FsRtlRegisterUncProvider(
[out] PHANDLE MupHandle,
PCUNICODE_STRING RedirectorDeviceName,
[in] BOOLEAN MailslotsSupported
);
Параметры
[out] MupHandle
Указатель на расположение, в котором возвращается дескриптор MUP, используемый при вызове FsRtlRegisterUncProvider для отмены регистрации сетевого перенаправления. Возвращенный дескриптор действителен, только если FsRtlRegisterUncProvider возвращает STATUS_SUCCESS.
RedirectorDeviceName
Указатель на строку Юникода, содержащую имя устройства сетевого перенаправления.
[in] MailslotsSupported
Установите значение TRUE, если сетевой перенаправление поддерживает почтовые слоты. Обычно этот параметр зарезервирован для использования перенаправлением Microsoft SMB.
Возвращаемое значение
FsRtlRegisterUncProvider возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение NTSTATUS, например одно из следующих:
| Возвращаемый код | Описание |
|---|---|
|
Режим выполнения исходного запроса для операции IRP, отправленной в MUP, не был из режима ядра. |
|
Нарушение доступа произошло при попытке доступа к устройству MUP. |
|
Произошло несоответствие данных. |
|
Недостаточно ресурсов для выделения памяти для буферов. |
|
Недопустимый параметр был передан в MUP в IRP. |
|
Недопустимый параметр был передан в параметре redirDevName или ненормальном завершении. |
Замечания
Сетевой перенаправление должен зарегистрировать в MUP для обработки имен UNC. MUP — это компонент режима ядра, отвечающий за передачу всех удаленных файловых систем доступа с помощью имени универсального соглашения об именовании (UNC) на сетевой перенаправление (поставщик UNC), который может обрабатывать запросы удаленной файловой системы. MUP участвует в том случае, если UNC-путь используется приложением, как показано в следующем примере, который можно выполнить из командной строки:
notepad \\server\public\readme.txt
MUP не участвует во время операции, которая создает сопоставленную букву диска (например, команду NET USE). Эта операция обрабатывается несколькими маршрутизаторами поставщиков (MPR) и библиотекой DLL поставщика WNet в пользовательском режиме для сетевого перенаправления. Однако библиотека DLL поставщика WNet в пользовательском режиме может напрямую взаимодействовать с драйвером сетевого перенаправления в режиме ядра во время этой операции.
В Windows Server 2003, Windows XP и Windows 2000 удаленные операции с файлами, выполняемые на сопоставленном диске, который не представляет диск распределенной файловой системы (DFS), не проходит через MUP. Эти операции переходят непосредственно к поставщику сети, обрабатывающего сопоставление букв диска.
Для сетевых перенаправлений, соответствующих модели Windows Vistaredirector, MUP участвует даже при использовании сопоставленного сетевого диска. Операции с файлами, выполняемые на сопоставленном диске, проходят через MUP с сетевым перенаправлением. Обратите внимание, что в этом случае MUP просто передает операцию сетевому перенаправлению, который участвует.
Сетевые перенаправления, соответствующие модели перенаправления Windows Vista, должны использовать FsRtlRegisterUncProviderEx, а не FsRtlRegisterUncProvider.
FsRtlRegisterUncProvider отправляет в MUP частный элемент управления файловой системой (FSCTL) для выполнения регистрации.
Значение реестра ProviderOrder определяет порядок, в котором MUP выдает запросы на разрешение префиксов отдельным сетевым перенаправлениям. Это значение реестра находится в следующем разделе реестра:
HKLM\CurrentControlSet\Control\NetworkProvider\Order
Изменения в значении реестра ProviderOrder требуют перезагрузки для принятия в силу MUP в Windows Server 2003, Windows XP и Windows 2000.
Только один поставщик сети в системе может поддерживать почтовые ящики. Поэтому параметр
Драйвер, вызывающий IoCreateDevice для создания объекта устройства для сетевого перенаправления, который регистрируется в качестве поставщика UNC (драйвер, вызывающий FsRtlRegisterUncProvider) должен передавать FILE_REMOTE_DEVICE в качестве одного из вариантов в параметре DeviceCharacteristics, передаваемом IoCreateDevice.
Чтобы отменить регистрацию поставщика UNC, используйте FsRtlDeregisterUncProvider и передайте параметр MupHandle.
Если драйвер регистрируется в качестве локальной файловой системы диска (вызовы IoCreateDevice с параметром DeviceType задано значение FILE_DEVICE_DISK_FILE_SYSTEM, а не FILE_NETWORK_FILE_SYSTEM, например), драйвер не должен вызывать FsRtlRegisterUncProvider для регистрации в качестве поставщика UNC в MUP.
Дополнительные сведения см. в следующих разделах руководства по проектированию:
поддержка именования UNC и MUP
изменения MUP в Microsoft Windows Vista
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Всеобщий |
| заголовка | ntifs.h (include Ntifs.h) |
| библиотеки |
NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |
| правил соответствия DDI |