17#define DnsCacheLock() do { EnterCriticalSection(&DnsCache.Lock); } while (0)
18#define DnsCacheUnlock() do { LeaveCriticalSection(&DnsCache.Lock); } while (0)
23 DPRINT(
"DnsIntCacheInitialize()\n");
38 DPRINT(
"DnsIntCacheFree()\n");
56 DPRINT(
"DnsIntCacheRemoveEntryItem(%p)\n", CacheEntry);
75 DPRINT(
"DnsIntCacheFlush(%lu)\n", ulFlags);
84 NextEntry =
Entry->Flink;
113 DPRINT(
"DnsIntFlushCacheEntry(%S %x)\n", pszName, wType);
122 NextEntry =
Entry->Flink;
160 DPRINT(
"DnsIntCacheGetEntryByName(%S %hu 0x%lx %p)\n",
185 NextEntry = NextEntry->
Flink;
201 DPRINT(
"DnsIntCacheRemoveEntryByName(%S)\n",
Name);
222 NextEntry = NextEntry->
Flink;
239 DPRINT(
"DnsIntCacheAddEntry(%p %u)\n",
253 Entry->bHostsFileEntry = bHostsFileEntry;
274 *ppCacheEntries =
NULL;
289 if (pNewEntry ==
NULL)
295 if (pNewEntry->pszName ==
NULL)
302 pNewEntry->wType2 = 0;
303 pNewEntry->wFlags = 0;
305 if (pLastEntry ==
NULL)
306 *ppCacheEntries = pNewEntry;
308 pLastEntry->
pNext = pNewEntry;
309 pLastEntry = pNewEntry;
311 NextEntry = NextEntry->
Flink;
VOID DnsIntCacheRemoveEntryItem(PRESOLVER_CACHE_ENTRY CacheEntry)
DNS_STATUS DnsIntCacheGetEntryByName(LPCWSTR Name, WORD wType, DWORD dwFlags, PDNS_RECORDW *Record)
DNS_STATUS DnsIntCacheGetEntries(_Out_ DNS_CACHE_ENTRY **ppCacheEntries)
VOID DnsIntCacheFree(VOID)
VOID DnsIntCacheInitialize(VOID)
DNS_STATUS DnsIntFlushCacheEntry(_In_ LPCWSTR pszName, _In_ WORD wType)
static BOOL DnsCacheInitialized
static RESOLVER_CACHE DnsCache
DNS_STATUS DnsIntCacheFlush(_In_ ULONG ulFlags)
BOOL DnsIntCacheRemoveEntryByName(LPCWSTR Name)
VOID DnsIntCacheAddEntry(_In_ PDNS_RECORDW Record, _In_ BOOL bHostsFileEntry)
#define CACHE_FLUSH_NON_HOSTS_FILE_ENTRIES
#define CACHE_FLUSH_HOSTS_FILE_ENTRIES
struct _RESOLVER_CACHE_ENTRY * PRESOLVER_CACHE_ENTRY
#define HeapFree(x, y, z)
VOID WINAPI DnsRecordListFree(PDNS_RECORD list, DNS_FREE_TYPE type)
PDNS_RECORD WINAPI DnsRecordSetCopyEx(PDNS_RECORD src_set, DNS_CHARSET in, DNS_CHARSET out)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define InitializeListHead(ListHead)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define midl_user_allocate
base of all file and directory entries
struct _DNS_CACHE_ENTRY * pNext
struct _DnsRecordW * pNext
struct _LIST_ENTRY * Flink
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define CONTAINING_RECORD(address, type, field)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define DNS_INFO_NO_RECORDS
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD * Record