15 #define WsNqLock() EnterCriticalSection(&NsQuery->Lock) 16 #define WsNqUnlock() LeaveCriticalSection(&NsQuery->Lock) 49 Query->Signature = 0xBEADFACE;
60 if (
Query->Signature != 0xBEADFACE)
return FALSE;
80 if (!NsQuery->ProviderList.Flink)
return;
96 NsQuery->Signature = ~0xBEADFACE;
131 Entry->AddressFamily,
171 NsQuery->ShuttingDown =
TRUE;
174 Entry = NsQuery->ProviderList.Flink;
175 while (
Entry != &NsQuery->ProviderList)
204 if (NsQuery->ShuttingDown)
215 NextProvider = NsQuery->ActiveProvider;
219 if (!NsQuery->CurrentProvider)
228 Entry = NsQuery->ProviderList.Blink;
240 NsQuery->ActiveProvider = NextProvider;
272 if (NsQuery->ActiveProvider)
279 if (
Provider == NsQuery->ActiveProvider)
282 NsQuery->ActiveProvider = NextProvider;
292 if (!(NextProvider) &&
300 NsQuery->TryAgain =
FALSE;
322 NsQuery->ControlFlags,
326 NsQuery->ActiveProvider =
363 if (NsQuery->TryAgain)
375 NsQuery->TryAgain =
FALSE;
380 NsQuery->ControlFlags = ControlFlags;
381 NsQuery->Catalog = Catalog;
385 if (Restrictions->lpNSProviderId)
389 Restrictions->lpNSProviderId,
457 Entry = NsQuery->ProviderList.Flink;
500 Entry = NsQuery->ProviderList.Flink;
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
DWORD WSAAPI WsNqInitialize(IN PNSQUERY Query)
_In_ NDIS_ERROR_CODE ErrorCode
#define WSASERVICE_NOT_FOUND
FORCEINLINE VOID InsertHeadList(_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY Entry)
INT WSAAPI WsNcGetCatalogFromProviderId(IN PNSCATALOG Catalog, IN LPGUID ProviderId, OUT PNSCATALOG_ENTRY *CatalogEntry)
DWORD WINAPI GetLastError(VOID)
#define InsertTailList(ListHead, Entry)
DWORD WSAAPI WsNqLookupServiceBegin(IN PNSQUERY NsQuery, IN LPWSAQUERYSETW Restrictions, IN DWORD ControlFlags, IN PNSCATALOG Catalog)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
DWORD WSAAPI WsNqProvLookupServiceNext(IN PNSQUERY_PROVIDER QueryProvider, DWORD, PDWORD, LPWSAQUERYSETW QuerySet)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
LPWSAQUERYSETW lpqsRestrictions
BOOL WINAPI WSAttemptAutodialName(IN CONST LPWSAQUERYSETW Restrictions)
BOOL WSAAPI WsNqAddProvider(IN PNSQUERY Query, IN PNS_PROVIDER Provider)
struct _ENUM_CONTEXT * PENUM_CONTEXT
DWORD WSAAPI WsNqLookupServiceNext(IN PNSQUERY NsQuery, IN DWORD ControlFlags, OUT PDWORD BufferLength, OUT LPWSAQUERYSETW Results)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
PNSQUERY_PROVIDER WSAAPI WsNqNextProvider(IN PNSQUERY Query, IN PNSQUERY_PROVIDER Provider)
FORCEINLINE PLIST_ENTRY RemoveHeadList(_Inout_ PLIST_ENTRY ListHead)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
DWORD WSAAPI WsNqLookupServiceEnd(IN PNSQUERY NsQuery)
BOOL WSAAPI WsNqBeginEnumerationProc(PVOID Context, PNSCATALOG_ENTRY Entry)
DWORD WSAAPI WsNqProvLookupServiceBegin(IN PNSQUERY_PROVIDER QueryProvider, IN LPWSAQUERYSETW QuerySet, IN LPWSASERVICECLASSINFOW ServiceClassInfo, IN DWORD)
INT WSAAPI WsNcLoadProvider(IN PNSCATALOG Catalog, IN PNSCATALOG_ENTRY CatalogEntry)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
INT WSAAPI CopyQuerySetW(IN LPWSAQUERYSETW UnicodeSet, OUT LPWSAQUERYSETW *UnicodeCopy)
VOID WSAAPI WsNqProvDelete(IN PNSQUERY_PROVIDER QueryProvider)
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
#define WSA_NOT_ENOUGH_MEMORY
#define InterlockedDecrement
VOID WSAAPI WsNcEnumerateCatalogItems(IN PNSCATALOG Catalog, IN PNSCATALOG_ENUMERATE_PROC Callback, IN PVOID Context)
#define WSASYSCALLFAILURE
VOID WSAAPI WsNqDereference(IN PNSQUERY Query)
INT WSAAPI WsNcGetServiceClassInfo(IN PNSCATALOG Catalog, IN OUT LPDWORD BugSize, IN OUT LPWSASERVICECLASSINFOW lpServiceClassInfo)
PNSQUERY WSAAPI WsNqAllocate(VOID)
#define InterlockedIncrement
PNSQUERY_PROVIDER WSAAPI WsNqProvAllocate(VOID)
#define InitializeListHead(ListHead)
PNSQUERY_PROVIDER WSAAPI WsNqPreviousProvider(IN PNSQUERY Query, IN PNSQUERY_PROVIDER Provider)
DWORD WSAAPI WsNqProvInitialize(IN PNSQUERY_PROVIDER QueryProvider, IN PNS_PROVIDER Provider)
BOOL WSAAPI WsNcMatchProtocols(IN DWORD NameSpace, IN LONG AddressFamily, IN LPWSAQUERYSETW QuerySet)
DWORD WSAAPI WsNqProvLookupServiceEnd(IN PNSQUERY_PROVIDER QueryProvider)
#define HeapFree(x, y, z)
base of all file and directory entries
VOID WSAAPI WsNqDelete(IN PNSQUERY NsQuery)
BOOL WSAAPI WsNqValidateAndReference(IN PNSQUERY Query)