/*++ Copyright (c) 2005 Microsoft Corporation Module Name : NDF.h Abstract: This file contains declaration for Network Diagnostics Framework (NDF) client API Author: Tin Qian (tinqian) 07-08-2005 Revision history: --*/ #pragma once #include #pragma region Desktop Family #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus #ifndef __CSADDR_DEFINED__ struct SOCKET_ADDRESS_LIST; #endif // __CSADDR_DEFINED__ typedef PVOID NDFHANDLE; STDAPI NdfCreateIncident(_In_ LPCWSTR helperClassName, ULONG celt, _In_reads_(celt) HELPER_ATTRIBUTE* attributes, _Outptr_ NDFHANDLE* handle); STDAPI NdfCreateWinSockIncident(SOCKET sock, _In_opt_ LPCWSTR host, USHORT port, _In_opt_ LPCWSTR appId, _In_opt_ SID* userId, _Outptr_ NDFHANDLE* handle); STDAPI NdfCreateWebIncident(_In_ LPCWSTR url, _Outptr_ NDFHANDLE* handle); STDAPI NdfCreateWebIncidentEx(_In_ LPCWSTR url, BOOL useWinHTTP, _In_opt_ LPWSTR moduleName, _Outptr_ NDFHANDLE* handle); STDAPI NdfCreateSharingIncident(_In_ LPCWSTR UNCPath, _Outptr_ NDFHANDLE* handle); STDAPI NdfCreateDNSIncident(_In_ LPCWSTR hostname, WORD queryType, _Outptr_ NDFHANDLE* handle); STDAPI NdfCreateConnectivityIncident(_Outptr_ NDFHANDLE* handle); STDAPI NdfCreateNetConnectionIncident(_Outptr_ NDFHANDLE* handle, GUID id); STDAPI NdfCreatePnrpIncident(_In_ LPCWSTR cloudname, _In_opt_ LPCWSTR peername, _In_ BOOL diagnosePublish, _In_opt_ LPCWSTR appId, _Outptr_ NDFHANDLE* handle); #define NDF_INBOUND_FLAG_EDGETRAVERSAL 0x00001 #define NDF_INBOUND_FLAG_HEALTHCHECK 0x00002 #ifdef __CSADDR_DEFINED__ STDAPI NdfCreateInboundIncident( _In_opt_ LPCWSTR applicationID, _In_opt_ LPCWSTR serviceID, _In_opt_ SID* userID, _In_opt_ const SOCKADDR_STORAGE* localTarget, IPPROTO protocol, DWORD dwFlags, _Outptr_ NDFHANDLE* handle); #endif HRESULT WINAPI NdfCreateGroupingIncident( _In_opt_ LPCWSTR CloudName, _In_opt_ LPCWSTR GroupName, _In_opt_ LPCWSTR Identity, _In_opt_ LPCWSTR Invitation, _In_opt_ SOCKET_ADDRESS_LIST* Addresses, _In_opt_ LPCWSTR appId, _Outptr_ NDFHANDLE* handle); STDAPI NdfExecuteDiagnosis(_In_ NDFHANDLE handle, _In_opt_ HWND hwnd); STDAPI NdfCloseIncident(NDFHANDLE handle); // Available flags for NdfDiagnoseIncident #define NDF_ADD_CAPTURE_TRACE 0x0001 #define NDF_APPLY_INCLUSION_LIST_FILTER 0x0002 // UI-less diagnosis API STDAPI #ifdef __cplusplus NdfDiagnoseIncident( _In_ NDFHANDLE Handle, _Out_ ULONG* RootCauseCount, _Outptr_result_buffer_(*RootCauseCount) RootCauseInfo** RootCauses, DWORD dwWait = INFINITE, DWORD dwFlags = 0); #else NdfDiagnoseIncident(_In_ NDFHANDLE Handle, _Out_ ULONG* RootCauseCount, _Outptr_result_buffer_(*RootCauseCount) RootCauseInfo** RootCauses, DWORD dwWait, DWORD dwFlags); #endif // UI-less repair API STDAPI #ifdef __cplusplus NdfRepairIncident(_In_ NDFHANDLE Handle, _In_ RepairInfoEx* RepairEx, DWORD dwWait = INFINITE); #else NdfRepairIncident(_In_ NDFHANDLE Handle, _In_ RepairInfoEx* RepairEx, DWORD dwWait); #endif // UI-less cancel API STDAPI NdfCancelIncident(_In_ NDFHANDLE Handle); STDAPI NdfGetTraceFile(_In_ NDFHANDLE Handle, _Outptr_ LPCWSTR* TraceFileLocation); #ifdef __cplusplus } #endif // defined(__cplusplus) #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ #pragma endregion