Condividi tramite


Funzione NdfDiagnoseIncident (ndfapi.h)

La funzione NdfDiagnoseIncident consente di diagnosticare la causa radice di un evento imprevisto senza visualizzare un'interfaccia utente.

Sintassi

void NdfDiagnoseIncident(
  [in]  NDFHANDLE     Handle,
  [out] ULONG         *RootCauseCount,
  [out] RootCauseInfo **RootCauses,
        DWORD         dwWait,
        DWORD         dwFlags
);

Parametri

[in] Handle

Tipo: NDFHANDLE

Handle per l'evento imprevisto di Network Diagnostics Framework.

[out] RootCauseCount

Tipo: ULONG*

Numero di cause radice che potrebbero aver causato questo evento imprevisto. Se la diagnosi non riesce, il contenuto di questo parametro deve essere ignorato.

[out] RootCauses

Tipo: RootCauseInfo**

Raccolta di strutture RootCauseInfo che contengono una descrizione dettagliata della causa radice. Se la diagnosi ha esito positivo, questo parametro contiene entrambe le cause radice foglia identificate nella sessione di diagnosi e tutte le cause radice non foglia che hanno una riparazione disponibile. Se la diagnosi non riesce, il contenuto di questo parametro deve essere ignorato.

La memoria allocata a queste strutture deve essere liberata in un secondo momento. Per un esempio di come eseguire questa operazione, vedere Gli esempi di diagnostica di rete di Microsoft Windows.

dwWait

Tipo: DWORD

Intervallo di tempo, in millisecondi, di attesa prima di terminare la routine di diagnostica. È possibile passare INFINITE a questo parametro se non si desidera alcun timeout.

dwFlags

Tipo: DWORD

Valori possibili:

Valore Significato
NDF_ADD_CAPTURE_TRACE
0x0001
Attiva la traccia di rete durante la diagnosi. I risultati di diagnostica verranno inclusi nel file ETL (Event Trace Log) restituito da NdfGetTraceFile.
NDF_APPLY_INCLUSION_LIST_FILTER
0x0002
Applica il filtro alle cause radice restituite in modo che siano coerenti con il comportamento di diagnostica in-box con script. Senza questo flag, le cause radice non verranno filtrate. Questo flag deve essere impostato dal chiamante, pertanto i chiamanti esistenti non visualizzeranno una modifica nel comportamento, a meno che non specifichino in modo esplicito questo flag.
Nota Disponibile solo in Windows 8 e Windows Server 2012.
 

Valore restituito

Tipo: HRESULT

I valori restituiti possibili includono, ma non sono limitati ai valori seguenti.

Codice restituito Descrizione
S_OK
Operazione completata.
E_HANDLE
L'handle dell'evento imprevisto di NDF non è valido.
WAIT_TIMEOUT
La routine di diagnostica è stata terminata perché ha impiegato più tempo del timeout specificato in dwWait.

Commenti

Questa funzione è destinata all'uso con scenari in cui non viene visualizzata alcuna interfaccia utente o in cui l'esperienza di Windows standard non viene usata (come con Media Center e le applicazioni incorporate). NdfExecuteDiagnosis avvierà l'interfaccia utente di diagnostica e deve essere usata negli scenari che usano l'esperienza di Windows standard. È possibile chiamare NdfExecuteDiagnosis o NdfDiagnoseIncident, ma non entrambi.

Prima di usare questa API, un'applicazione deve chiamare una funzione di creazione di eventi imprevisti, ad esempio NdfCreateWebIncident , per avviare il processo di diagnostica NDF. L'applicazione chiama quindi NdfDiagnoseIncident per diagnosticare il problema. Se il processo di diagnostica identifica alcune possibili riparazioni, l'applicazione può chiamare NdfRepairIncident per risolvere il problema senza visualizzare un'interfaccia utente. NdfCancelIncident può essere chiamato facoltativamente da un thread separato se l'applicazione vuole annullare una chiamata NdfDiagnoseIncident in corso. Infine, l'applicazione chiama NdfCloseIncident.

La tabella seguente illustra alcuni esempi di cause radice e le relative riparazioni corrispondenti.

GUID della causa radice Ripristinare il GUID Descrizione della causa radice Descrizione del ripristino
{4DA030B8-86E5-4b6a-A879-2FFF8443B527} {1296DFF0-D04E-4be1-A512-90F04DDFA3E6} Un cavo di rete non è collegato correttamente o potrebbe essere interrotto. Collegare un cavo Ethernet in questo computer.\nUn cavo Ethernet è simile a un cavo telefonico, ma con connettori più grandi sulle estremità. Collegare questo cavo all'apertura sul retro o sul lato del computer.\nAssicurarsi che l'altra estremità del cavo sia collegata al router. In caso contrario, provare a usare un cavo diverso.
{60372FD2-AD60-45c2-BD83-6B827FC438DF} {07d37f7b-fa5e-4443-bda7-ab107b29afb6} L'adattatore %InterfaceName% è disabilitato. Abilitare l'adattatore %FriendlyInterfaceName%.
{245A9D66-AE9C-4518-A5B4-655752B0A5BD} {07d37f7b-fa5e-4443-bda7-ab107b29afb9} %InterfaceName%"" non dispone di una configurazione IP valida. Reimpostare l'adapter "%InterfaceName%"". \nQuesto problema può talvolta risolvere un problema intermittente.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ndfapi.h
Libreria Ndfapi.lib
DLL Ndfapi.dll

Vedi anche

NdfExecuteDiagnosis

NdfGetTraceFile

RootCauseInfo