Condividi tramite


Funzione FsRtlRegisterUncProvider (ntifs.h)

La routine FsRtlRegisterUncProvider registra un redirector di rete come provider UNC (Universal Naming Convention) con il sistema più provider UNC (MUP).

Sintassi

NTSTATUS FsRtlRegisterUncProvider(
  [out] PHANDLE          MupHandle,
        PCUNICODE_STRING RedirectorDeviceName,
  [in]  BOOLEAN          MailslotsSupported
);

Parametri

[out] MupHandle

Puntatore a una posizione in cui restituire un handle MUP da usare quando si chiama FsRtlRegisterUncProvider per annullare la registrazione del redirector di rete. L'handle restituito è valido solo se FsRtlRegisterUncProvider restituisce STATUS_SUCCESS.

RedirectorDeviceName

Puntatore a una stringa Unicode contenente il nome del dispositivo del redirector di rete.

[in] MailslotsSupported

Impostare su TRUE se il redirector di rete supporta mailslots. Questa opzione è in genere riservata per l'uso da parte del redirector SMB Microsoft.

Valore restituito

FsRtlRegisterUncProvider restituisce STATUS_SUCCESS in caso di esito positivo o di un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_ACCESS_DENIED
La modalità di esecuzione del richiedente originale per l'operazione IRP inviata a MUP non è dalla modalità kernel.
STATUS_ACCESS_VIOLATION
Si è verificata una violazione di accesso quando si tenta di accedere al dispositivo MUP.
STATUS_DATATYPE_MISALIGNMENT
Si è verificato un disallineamento dei dati.
STATUS_INSUFFICIENT_RESOURCES
Sono disponibili risorse insufficienti per allocare memoria per i buffer.
STATUS_INVALID_HANDLE
Un parametro non valido è stato passato a MUP in IRP.
STATUS_INVALID_USER_BUFFER
È stato passato un parametro non valido nel parametro RedirDevName o si è verificata una terminazione anomala.

Commenti

Un redirector di rete deve registrarsi con MUP per gestire i nomi UNC. MUP è un componente in modalità kernel responsabile del canale di tutti gli accessi al file system remoto tramite un nome UNC (Universal Naming Convention) a un redirector di rete (provider UNC) in grado di gestire le richieste remote del file system. MUP è coinvolto quando un percorso UNC viene usato da un'applicazione come illustrato nell'esempio seguente che può essere eseguito da una riga di comando:

notepad \\server\public\readme.txt

MUP non è coinvolto durante un'operazione che crea una lettera di unità mappata ,ad esempio il comando "NET USE". Questa operazione viene gestita da più router provider (MPR) e da una DLL del provider WNet in modalità utente per il redirector di rete. Tuttavia, una DLL del provider di rete WNet in modalità utente potrebbe comunicare direttamente con un driver del redirector di rete in modalità kernel durante questa operazione.

In Windows Server 2003, Windows XP e Windows 2000, le operazioni remote sui file eseguite su un'unità mappata che non rappresenta un'unità DFS (Distributed File System) non passano attraverso MUP. Queste operazioni passano direttamente al provider di rete che ha gestito il mapping delle lettere di unità.

Per i reindirizzamenti di rete conformi al modello Windows Vistaredirector, MUP è coinvolto anche quando viene usata un'unità di rete mappata. Le operazioni sui file eseguite nell'unità mappata passano attraverso MUP al redirector di rete. Si noti che in questo caso MUP passa semplicemente l'operazione al redirector di rete coinvolto.

I reindirizzamenti di rete conformi al modello di reindirizzamento di Windows Vista devono usare FsRtlRegisterUncProviderEx, non FsRtlRegisterUncProvider.

FsRtlRegisterUncProvider invia un controllo del file system privato (MDFTL) a MUP per eseguire la registrazione.

Il valore del Registro di sistema ProviderOrder determina l'ordine in cui MUP emette richieste di risoluzione del prefisso a singoli redirector di rete. Questo valore del Registro di sistema si trova nella seguente chiave del Registro di sistema:

HKLM\CurrentControlSet\Control\NetworkProvider\Order

Le modifiche apportate al valore del Registro di sistema ProviderOrder richiedono un riavvio per rendere effettivo MUP in Windows Server 2003, Windows XP e Windows 2000.

Solo un provider di rete in un sistema può supportare mailslots. Il parametro MailslotsSupported è in genere impostato solo su TRUE per il redirector SMB di Microsoft.

Un driver che chiama IoCreateDevice per creare un oggetto dispositivo per un redirector di rete registrato come provider UNC (un driver che chiama FsRtlRegisterUncProvider) deve passare FILE_REMOTE_DEVICE come una delle opzioni nel parametro DeviceCharacteristics passato a IoCreateDevice.

Per annullare la registrazione di un provider UNC, usare FsRtlDeregisterUncProvider e passare il parametro MupHandle .

Se un driver viene registrato come file system su disco locale (chiama IoCreateDevice con il parametro DeviceType impostato su FILE_DEVICE_DISK_FILE_SYSTEM anziché FILE_NETWORK_FILE_SYSTEM, ad esempio), il driver non deve chiamare FsRtlRegisterUncProvider per registrarsi come provider UNC con MUP.

Per altre informazioni, vedere le sezioni seguenti nella Guida alla progettazione:

Supporto per la denominazione UNC e MUP

Modifiche MUP in Microsoft Windows Vista

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

FsRtlDeregisterUncProvider

FsRtlRegisterUncProviderEx

IOCTL_REDIR_QUERY_PATH_EX

IoCreateDevice