18#define WsNcLock() EnterCriticalSection(&Catalog->Lock)
19#define WsNcUnlock() LeaveCriticalSection(&Catalog->Lock)
43 HKEY CatalogKey, NewKey;
56 "Current_NameSpace_Catalog",
63 static const CHAR DefaultCatalogName[] =
"NameSpace_Catalog5";
64 RegSize =
sizeof(DefaultCatalogName);
66 memcpy(CatalogKeyName, DefaultCatalogName, RegSize);
78 DPRINT1(
"Namespace catalog name is not a string (Type %d).\n", RegType);
86 "Current_NameSpace_Catalog",
122 RegSize =
sizeof(
DWORD);
132 "Num_Catalog_Entries",
181 RegSize =
sizeof(UniqueId);
205 Catalog->CatalogKey = CatalogKey;
238 DWORD CatalogEntries;
271 if (UniqueId == Catalog->UniqueId)
293 "Num_Catalog_Entries",
306 for (
i = 1;
i <= CatalogEntries;
i++)
343 Catalog->UniqueId = UniqueId;
357 }
while (NewChangesMade);
383 Entry = Catalog->CatalogList.Flink;
384 while (GoOn && (
Entry != &Catalog->CatalogList))
410 if (!CatalogEntry->Provider)
417 CatalogEntry->DllPath,
418 &CatalogEntry->ProviderId);
476 while (
Entry != &TempList)
488 CatalogEntry = OldCatalogEntry;
492 Catalog->ItemCount--;
499 Catalog->ItemCount++;
510 Catalog->ItemCount--;
529 NextEntry = Catalog->CatalogList.
Flink;
530 while (NextEntry != &Catalog->CatalogList)
534 NextEntry = NextEntry->
Flink;
540 if (!
Entry->Provider)
544 if (
Entry->Provider )
547 *CatalogEntry =
Entry;
565 DWORD ProtocolCount = QuerySet->dwNumberOfProtocols;
592 while (ProtocolCount--)
619 Catalog->ItemCount--;
630 if (!Catalog->CatalogList.Flink)
return;
636 Entry = Catalog->CatalogList.Flink;
637 while (
Entry != &Catalog->CatalogList)
647 Entry = Catalog->CatalogList.Flink;
651 if (Catalog->CatalogKey)
655 Catalog->CatalogKey =
NULL;
#define InterlockedIncrement
#define RegCloseKey(hKey)
#define HeapFree(x, y, z)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define InsertHeadList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define RemoveHeadList(ListHead)
#define InitializeListHead(ListHead)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
_In_ NDIS_ERROR_CODE ErrorCode
IN PCO_ADDRESS_FAMILY AddressFamily
VOID WSAAPI WsNcRemoveCatalogItem(IN PNSCATALOG Catalog, IN PNSCATALOG_ENTRY Entry)
BOOLEAN WSAAPI WsNcOpen(IN PNSCATALOG Catalog, IN HKEY ParentKey)
BOOL WSAAPI WsNcMatchProtocols(IN DWORD NameSpace, IN LONG AddressFamily, IN LPWSAQUERYSETW QuerySet)
INT WSAAPI WsNcGetCatalogFromProviderId(IN PNSCATALOG Catalog, IN LPGUID ProviderId, OUT PNSCATALOG_ENTRY *CatalogEntry)
VOID WSAAPI WsNcDelete(IN PNSCATALOG Catalog)
INT WSAAPI WsNcLoadProvider(IN PNSCATALOG Catalog, IN PNSCATALOG_ENTRY CatalogEntry)
INT WSAAPI WsNcInitializeFromRegistry(IN PNSCATALOG Catalog, IN HKEY ParentKey, IN HANDLE CatalogEvent)
INT WSAAPI WsNcGetServiceClassInfo(IN PNSCATALOG Catalog, IN OUT LPDWORD BugSize, IN OUT LPWSASERVICECLASSINFOW lpServiceClassInfo)
VOID WSAAPI WsNcEnumerateCatalogItems(IN PNSCATALOG Catalog, IN PNSCATALOG_ENUMERATE_PROC Callback, IN PVOID Context)
PNSCATALOG WSAAPI WsNcAllocate(VOID)
INT WSAAPI WsNcRefreshFromRegistry(IN PNSCATALOG Catalog, IN HANDLE CatalogEvent)
VOID WSAAPI WsNcUpdateNamespaceList(IN PNSCATALOG Catalog, IN PLIST_ENTRY List)
#define REG_OPTION_NON_VOLATILE
#define REG_CREATED_NEW_KEY
#define REG_OPENED_EXISTING_KEY
#define IsEqualGUID(rguid1, rguid2)
base of all file and directory entries
struct _LIST_ENTRY * Flink
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define CONTAINING_RECORD(address, type, field)
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG _Out_opt_ PULONG CreateDisposition
_Must_inspect_result_ _In_opt_ WDFKEY ParentKey
_Must_inspect_result_ _In_ WDFCMRESLIST List
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define WSASYSCALLFAILURE
#define WSA_NOT_ENOUGH_MEMORY
DWORD WSAAPI WsNpInitialize(IN PNS_PROVIDER Provider, IN LPWSTR DllPath, IN LPGUID ProviderGuid)
INT WSAAPI WsSetupCatalogProtection(IN HKEY CatalogKey, IN HANDLE CatalogEvent, OUT LPDWORD UniqueId)
BOOL(WINAPI * PNSCATALOG_ENUMERATE_PROC)(IN PVOID Context, IN PNSCATALOG_ENTRY Entry)
PNSCATALOG_ENTRY WSAAPI WsNcEntryAllocate(VOID)
BOOL WSAAPI WsCheckCatalogState(IN HANDLE Event)
VOID WSAAPI WsNcEntrySetProvider(IN PNSCATALOG_ENTRY Entry, IN PNS_PROVIDER Provider)
VOID WSAAPI WsNcEntryDereference(IN PNSCATALOG_ENTRY CatalogEntry)
VOID WSAAPI WsNpDereference(IN PNS_PROVIDER Provider)
PNS_PROVIDER WSAAPI WsNpAllocate(VOID)
INT WSAAPI WsNcEntryInitializeFromRegistry(IN PNSCATALOG_ENTRY CatalogEntry, IN HKEY ParentKey, IN ULONG UniqueId)