Share via


NdfDiagnoseIncident-Funktion (ndfapi.h)

Die NdfDiagnoseIncident-Funktion diagnostiziert die Grundursache eines Incidents, ohne dass eine Benutzeroberfläche angezeigt wird.

Syntax

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

Parameter

[in] Handle

Typ: NDFHANDLE

Ein Handle für den Netzwerkdiagnoseframework-Incident.

[out] RootCauseCount

Typ: ULONG*

Die Anzahl der Grundursachen, die diesen Vorfall möglicherweise verursacht haben könnten. Wenn die Diagnose nicht erfolgreich ist, sollte der Inhalt dieses Parameters ignoriert werden.

[out] RootCauses

Typ: RootCauseInfo**

Eine Auflistung von RootCauseInfo-Strukturen , die eine detaillierte Beschreibung der Grundursache enthalten. Wenn die Diagnose erfolgreich ist, enthält dieser Parameter sowohl die in der Diagnosesitzung identifizierten Blattwurzelursachen als auch alle Nicht-Blattstammursachen, für die eine Reparatur verfügbar ist. Wenn die Diagnose nicht erfolgreich ist, sollte der Inhalt dieses Parameters ignoriert werden.

Speicher, der diesen Strukturen zugeordnet ist, sollte später freigegeben werden. Ein Beispiel dafür finden Sie in den Microsoft Windows-Netzwerkdiagnosebeispielen.

dwWait

Art: DWORD

Die Zeitdauer in Millisekunden, die vor dem Beenden der Diagnoseroutine gewartet werden soll. INFINITE kann an diesen Parameter übergeben werden, wenn kein Timeout gewünscht wird.

dwFlags

Art: DWORD

Mögliche Werte:

Wert Bedeutung
NDF_ADD_CAPTURE_TRACE
0x0001
Aktiviert die Netzwerkablaufverfolgung während der Diagnose. Diagnoseergebnisse werden in die ETL-Datei (Event Trace Log) aufgenommen, die von NdfGetTraceFile zurückgegeben wird.
NDF_APPLY_INCLUSION_LIST_FILTER
0x0002
Wendet eine Filterung auf die zurückgegebenen Grundursachen an, sodass sie mit dem standardmäßigen Skriptverhalten Diagnose konsistent sind. Ohne dieses Flag werden die Ursachen nicht gefiltert. Dieses Flag muss vom Aufrufer festgelegt werden, damit vorhandene Aufrufer keine Verhaltensänderung sehen, es sei denn, sie geben dieses Flag explizit an.
Hinweis Nur in Windows 8 und Windows Server 2012 verfügbar.
 

Rückgabewert

Typ: HRESULT

Mögliche Rückgabewerte sind u. a. die folgenden:

Rückgabecode BESCHREIBUNG
S_OK
Der Vorgang wurde erfolgreich ausgeführt.
E_HANDLE
Das NDF-Incidenthandle ist ungültig.
WAIT_TIMEOUT
Die Diagnoseroutine wurde beendet, da sie länger dauerte als das in dwWait angegebene Timeout.

Hinweise

Diese Funktion ist für Die Verwendung in Szenarien vorgesehen, in denen keine Benutzeroberfläche angezeigt wird oder in denen die Windows-Standardumgebung nicht verwendet wird (wie bei Media Center und eingebetteten Anwendungen). NdfExecuteDiagnosis startet die Diagnose Benutzeroberfläche und sollte in Szenarien verwendet werden, die die Windows-Standardumgebung verwenden. Sie können entweder NdfExecuteDiagnosis oder NdfDiagnoseIncident aufrufen, aber nicht beide.

Vor der Verwendung dieser API muss eine Anwendung eine Incidenterstellungsfunktion wie NdfCreateWebIncident aufrufen, um den NDF-Diagnose-Prozess zu starten. Die Anwendung ruft dann NdfDiagnoseIncident auf, um das Problem zu diagnostizieren. Wenn der Diagnose-Prozess einige mögliche Reparaturen identifiziert, kann die Anwendung NdfRepairIncident aufrufen, um das Problem zu beheben, ohne eine Benutzeroberfläche anzuzeigen. NdfCancelIncident kann optional aus einem separaten Thread aufgerufen werden, wenn die Anwendung einen laufenden NdfDiagnoseIncident-Aufruf abbrechen möchte. Schließlich ruft die Anwendung NdfCloseIncident auf.

Die folgende Tabelle enthält einige Beispiele für Grundursachen und deren entsprechende Reparaturen.

Grundursachen-GUID Reparieren der GUID Beschreibung der Grundursache Reparaturbeschreibung
{4DA030B8-86E5-4b6a-A879-2FFF8443B527} {1296DFF0-D04E-4be1-A512-90F04DDFA3E6} Ein Netzwerkkabel ist nicht ordnungsgemäß eingesteckt oder ist möglicherweise beschädigt. Schließen Sie ein Ethernet-Kabel an diesen Computer an.\nEin Ethernet-Kabel sieht aus wie ein Telefonkabel, aber mit größeren Anschlüssen an den Enden. Schließen Sie dieses Kabel an die Öffnung auf der Rückseite oder Seite des Computers an.\nStellen Sie sicher, dass das andere Ende des Kabels an den Router angeschlossen ist. Wenn dies nicht hilft, versuchen Sie es mit einem anderen Kabel.
{60372FD2-AD60-45c2-BD83-6B827FC438DF} {07d37f7b-fa5e-4443-bda7-ab107b29afb6} Der Adapter %InterfaceName% ist deaktiviert. Aktivieren Sie den Adapter %FriendlyInterfaceName%.
{245A9D66-AE9C-4518-A5B4-655752B0A5BD} {07d37f7b-fa5e-4443-bda7-ab107b29afb9} %InterfaceName%"" verfügt nicht über eine gültige IP-Konfiguration. Setzen Sie den Adapter ""%InterfaceName%" zurück.\nDadurch kann manchmal ein zeitweiliges Problem behoben werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ndfapi.h
Bibliothek Ndfapi.lib
DLL Ndfapi.dll

Weitere Informationen

NdfExecuteDiagnosis

NdfGetTraceFile

RootCauseInfo