Поделиться через


Функция NdfDiagnoseIncident (ndfapi.h)

Функция NdfDiagnoseIncident диагностирует первопричину инцидента без отображения пользовательского интерфейса.

Синтаксис

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

Параметры

[in] Handle

Тип: NDFHANDLE

Дескриптор инцидента платформы диагностики сети.

[out] RootCauseCount

Тип: ULONG*

Число первопричин, которые потенциально могли вызвать этот инцидент. Если диагностика не выполнена, содержимое этого параметра следует игнорировать.

[out] RootCauses

Тип: RootCauseInfo**

Коллекция структур RootCauseInfo , содержащих подробное описание первопричины. Если диагностика выполнена успешно, этот параметр содержит как конечные первопричины, выявленные в сеансе диагностики, так и все неконечные первопричины, имеющие доступное исправление. Если диагностика не выполнена, содержимое этого параметра следует игнорировать.

Память, выделенная для этих структур, должна быть освобождена позже. Пример этого см. в разделе Примеры диагностики сети Microsoft Windows.

dwWait

Тип: DWORD

Продолжительность ожидания (в миллисекундах) перед завершением диагностической процедуры. Параметру INFINITE можно передать, если время ожидания не требуется.

dwFlags

Тип: DWORD

Возможные значения:

Значение Значение
NDF_ADD_CAPTURE_TRACE
0x0001
Включает трассировку сети во время диагностики. Результаты диагностики будут включены в файл журнала трассировки событий (ETL), возвращенный NdfGetTraceFile.
NDF_APPLY_INCLUSION_LIST_FILTER
0x0002
Применяет фильтрацию к возвращенным первопричинам, чтобы они соответствовали встроенному диагностика поведению. Без этого флага не будут фильтроваться первопричины. Этот флаг должен быть установлен вызывающим элементом, поэтому существующие вызывающие абоненты не будут видеть изменения в поведении, если они явно не укажет этот флаг.
Примечание Доступно только в Windows 8 и Windows Server 2012.
 

Возвращаемое значение

Тип: HRESULT

Возможные возвращаемые значения включают, помимо прочего, следующие.

Код возврата Описание
S_OK
Операция успешно выполнена.
E_HANDLE
Недопустимый дескриптор инцидента NDF.
WAIT_TIMEOUT
Подпрограмма диагностики завершена, так как она заняла больше времени ожидания, указанного в dwWait.

Комментарии

Эта функция предназначена для использования в сценариях, где пользовательский интерфейс не отображается или где не используется стандартный интерфейс Windows (как в Случае с Media Center и внедренными приложениями). NdfExecuteDiagnosis запустит пользовательский интерфейс диагностика и должен использоваться в сценариях, использующих стандартный интерфейс Windows. Можно вызвать либо NdfExecuteDiagnosis , либо NdfDiagnoseIncident, но не оба метода.

Перед использованием этого API приложение должно вызвать функцию создания инцидентов, например NdfCreateWebIncident, чтобы начать процесс диагностика NDF. Затем приложение вызывает NdfDiagnoseIncident для диагностики проблемы. Если процесс диагностика определяет некоторые возможные исправления, приложение может вызвать NdfRepairIncident, чтобы устранить проблему без отображения пользовательского интерфейса. При необходимости NdfCancelIncident можно вызвать из отдельного потока, если приложение хочет отменить текущий вызов NdfDiagnoseIncident . Наконец, приложение вызывает NdfCloseIncident.

В следующей таблице показаны некоторые примеры первопричин и их исправления.

Идентификатор GUID первопричины Guid восстановления Описание первопричины Описание восстановления
{4DA030B8-86E5-4b6a-A879-2FFF8443B527} {1296DFF0-D04E-4be1-A512-90F04DDFA3E6} Сетевой кабель не подключен должным образом или может быть разорван. Подключите кабель Ethernet к этому компьютеру.\nКабель Ethernet выглядит как телефонный кабель, но с большими соединителями на концах. Подключите этот кабель к проему на задней или боковой стороне компьютера.\nУбедитесь, что другой конец кабеля подключен к маршрутизатору. Если это не поможет, попробуйте использовать другой кабель.
{60372FD2-AD60-45c2-BD83-6B827FC438DF} {07d37f7b-fa5e-4443-bda7-ab107b29afb6} Адаптер %InterfaceName% отключен. Включите адаптер %FriendlyInterfaceName% .
{245A9D66-AE9C-4518-A5B4-655752B0A5BD} {07d37f7b-fa5e-4443-bda7-ab107b29afb9} %InterfaceName%"" не имеет допустимой IP-конфигурации. Сброс адаптера "%InterfaceName%"". \nИногда это может устранить прерывистую проблему.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header ndfapi.h
Библиотека Ndfapi.lib
DLL Ndfapi.dll

См. также раздел

NdfExecuteDiagnosis

NdfGetTraceFile

RootCauseInfo