Funzione NPGetResourceInformation (npapi.h)

Separa la parte di una risorsa di rete a cui si accede tramite l'API WNet dalla parte a cui si accede tramite API specifiche del tipo di risorsa.

Sintassi

DWORD NPGetResourceInformation(
  [in]      LPNETRESOURCEW lpNetResource,
  [out]     LPVOID         lpBuffer,
  [in, out] LPDWORD        lpBufferSize,
  [out]     LPWSTR         *lplpSystem
);

Parametri

[in] lpNetResource

Specifica la risorsa di rete per cui sono necessarie informazioni. Il campo lpRemoteName specifica il nome remoto della risorsa. Il programma chiamante deve compilare i valori per i campi lpProvider e dwType se conosce questi valori; in caso contrario, deve impostare questi campi su NULL. Tutti gli altri campi in NETRESOURCE vengono ignorati e non vengono inizializzati.

Se la stringa lpRemoteName contiene una parte a cui si accede tramite LE API WNet e una parte a cui si accede tramite altre API di sistema specifiche per il tipo di risorsa, la funzione deve restituire informazioni solo sulla parte di rete della risorsa (ad eccezione di lplpSystem, come descritto più avanti in questo argomento).

Ad esempio, se la risorsa è "\server\share\dir1\dir2", dove "\server\share" è accessibile tramite le API WNet e "\dir1\dir2" è accessibile tramite le API del file system, il provider deve verificare che sia il provider corretto per "\server\share", ma non è necessario verificare se "\dir1\dir2" esiste effettivamente.

[out] lpBuffer

Puntatore al buffer per ricevere il risultato. Il primo campo nel risultato è una singola struttura NETRESOURCE e stringhe associate, che rappresentano quella parte della risorsa di input a cui si accede tramite l'API WNet, anziché le API di sistema specifiche del tipo di risorsa. Ad esempio, se il nome della risorsa remota di input è "\server\share\dir1\dir2", l'output NETRESOURCE contiene informazioni sulla risorsa "\server\share". I campi lpRemoteName, lpProvider, dwType, dwDisplayType e dwUsage vengono restituiti contenenti valori, tutti gli altri campi impostati su NULL.

Il campo lpRemoteName deve essere restituito nello stesso formato restituito da un'enumerazione dalla funzione NPEnumResource , in modo che il chiamante possa eseguire un confronto tra stringhe con distinzione tra maiuscole e minuscole. Ciò è necessario per determinare se la risorsa di rete di output è uguale a quella restituita da NPEnumResource.

Il provider non deve eseguire un controllo puramente sintattico per determinare se è proprietaria della risorsa. Ciò potrebbe produrre risultati non corretti quando due reti sono in esecuzione nel client e il provider che esegue il controllo sintattico viene chiamato per primo.

[in, out] lpBufferSize

Puntatore a una posizione che specifica le dimensioni, in byte, del buffer a cui punta lpBuffer. Se il buffer è troppo piccolo per il risultato, la funzione inserisce le dimensioni del buffer necessarie in questa posizione e restituisce l'errore WN_MORE_DATA.

[out] lplpSystem

In caso di esito positivo, un puntatore a una stringa con terminazione Null nel buffer di output specificando quella parte della risorsa a cui si accede tramite LE API di sistema specifiche del tipo di risorsa, anziché tramite l'API WNet. Se tale parte non esiste, lplpSystem è impostato su NULL. Ad esempio, se il nome della risorsa remota di input è "\server\share\dir", lpRemoteName viene restituito puntando a "\server\share" e lplpSystem punta a "\dir", entrambe le stringhe archiviate nel buffer a cui punta lpBuffer.

Valore restituito

Se la funzione ha esito positivo, deve restituire WN_SUCCESS. In caso contrario, deve restituire un codice di errore, che può essere uno dei seguenti.

Codice restituito Descrizione
WN_MORE_DATA
Il buffer di input è troppo piccolo.
WN_BAD_NETNAME
La risorsa non viene riconosciuta dal provider.
WN_BAD_VALUE
DwUsage o dwType non valido.
WN_BAD_DEV_TYPE
Il chiamante passato in un dwType diverso da zero che non corrisponde al tipo effettivo della risorsa di rete.
WN_NOT_AUTHENTICATED
Il chiamante non è stato autenticato nella rete.
WN_ACCESS_DENIED
Il chiamante è stato autenticato nella rete, ma non dispone di autorizzazioni sufficienti.

Commenti

L'albero di enumerazione può essere spostato verso il basso da una risorsa di rete denominata usando NPOpenEnum e le relative funzioni. Per spostarsi da una risorsa denominata, è possibile chiamare la funzione NPGetResourceInformation per ottenere informazioni sulla risorsa, seguita dalla funzione NPGetResourceParent per ottenere il nome e il tipo della risorsa padre.

NPGetResourceInformation determina se il provider specificato è il provider corretto per rispondere a una richiesta per una risorsa di rete specificata. Restituisce quindi informazioni sul tipo della risorsa.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione npapi.h