WsNqAllocate(VOID)
{
PNSQUERY NsQuery;
-
+
/* Allocate the object */
NsQuery = HeapAlloc(WsSockHeap, HEAP_ZERO_MEMORY, sizeof(*NsQuery));
NsQuery->Signature = ~0xBEADFACE;
InitializeListHead(&NsQuery->ProviderList);
NsQuery->TryAgain = TRUE;
-
+
/* Return it */
return NsQuery;
}
{
PNSQUERY_PROVIDER Provider;
PLIST_ENTRY Entry;
-
+
/* Make sure that we got initialized */
if (!NsQuery->ProviderList.Flink) return;
{
PNSQUERY_PROVIDER Provider;
PLIST_ENTRY Entry;
-
+
/* Protect us from closure */
WsNqLock();
NsQuery->ShuttingDown = TRUE;
/* Save the current active provider */
Provider = NsQuery->ActiveProvider;
-
+
/* Check if one exists */
if (Provider)
{
/* Reset it */
WsNqProvLookupServiceEnd(Provider);
WsNqProvDelete(Provider);
- }
+ }
/* Start a new query */
if (!WsNqLookupServiceBegin(NsQuery,
NsQuery->Catalog))
{
/* New query succeeded, set active provider now */
- NsQuery->ActiveProvider =
+ NsQuery->ActiveProvider =
WsNqNextProvider(NsQuery,
NsQuery->ActiveProvider);
}
WsNqUnlock();
/* Keep looping as long as there is a provider */
- } while (NextProvider);
+ } while (NextProvider);
}
}
else
NsQuery->ControlFlags = ControlFlags;
NsQuery->Catalog = Catalog;
}
-
+
/* Check if we have a specific ID */
if (Restrictions->lpNSProviderId)
{
WsNqBeginEnumerationProc,
&EnumContext);
ErrorCode = EnumContext.ErrorCode;
-
+
/* Check for success */
if (ErrorCode != ERROR_SUCCESS)
{
{
PNSQUERY_PROVIDER NextProvider = NULL;
PLIST_ENTRY Entry;
-
+
/* Get the first entry and get its provider */
Entry = Provider->QueryLink.Flink;
if (Entry != &Query->ProviderList)
{
PNSQUERY_PROVIDER NextProvider = NULL;
PLIST_ENTRY Entry;
-
+
/* Get the first entry and get its provider */
Entry = Provider->QueryLink.Blink;
if (Entry != &Query->ProviderList)
{
PNSQUERY_PROVIDER QueryProvider;
DWORD Return = TRUE;
-
+
/* Allocate a new Query Provider */
if ((QueryProvider = WsNqProvAllocate()))
{