145 lines
2.5 KiB
C
145 lines
2.5 KiB
C
/*++
|
||
|
||
Copyright (c) 1998, Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
dnsquery.h
|
||
|
||
Abstract:
|
||
|
||
This module contains declarations for the DNS proxy's query-management.
|
||
|
||
Author:
|
||
|
||
Abolade Gbadegesin (aboladeg) 11-Mar-1998
|
||
|
||
Revision History:
|
||
|
||
Raghu Gatta (rgatta) 1-Dec-2000
|
||
Added ICSDomain registry key change notify functions.
|
||
|
||
--*/
|
||
|
||
#ifndef _NATHLP_DNSQUERY_H_
|
||
#define _NATHLP_DNSQUERY_H_
|
||
|
||
//
|
||
// CONSTANT DECLARATIONS
|
||
//
|
||
|
||
#define DNS_QUERY_TIMEOUT (4 * 1000)
|
||
#define DNS_QUERY_RETRY 3
|
||
|
||
|
||
//
|
||
// STRUCTURE DECLARATIONS
|
||
//
|
||
|
||
//
|
||
// Structure: DNS_QUERY
|
||
//
|
||
// This structure holds information about a single pending DNS query.
|
||
// Each such entry is on an interface's list of pending queries,
|
||
// sorted on the 'QueryId' field.
|
||
// Access to the list is synchronized using the interface's lock.
|
||
//
|
||
|
||
typedef struct _DNS_QUERY {
|
||
LIST_ENTRY Link;
|
||
USHORT QueryId;
|
||
USHORT SourceId;
|
||
ULONG SourceAddress;
|
||
USHORT SourcePort;
|
||
DNS_PROXY_TYPE Type;
|
||
ULONG QueryLength;
|
||
PNH_BUFFER Bufferp;
|
||
PDNS_INTERFACE Interfacep;
|
||
HANDLE TimerHandle;
|
||
ULONG RetryCount;
|
||
} DNS_QUERY, *PDNS_QUERY;
|
||
|
||
//
|
||
// GLOBAL VARIABLE DECLARATIONS
|
||
//
|
||
|
||
extern HANDLE DnsNotifyChangeKeyEvent;
|
||
extern HANDLE DnsNotifyChangeKeyWaitHandle;
|
||
extern PULONG DnsServerList[DnsProxyCount];
|
||
extern HANDLE DnsTcpipInterfacesKey;
|
||
|
||
extern HANDLE DnsNotifyChangeAddressEvent;
|
||
extern HANDLE DnsNotifyChangeAddressWaitHandle;
|
||
|
||
extern HANDLE DnsNotifyChangeKeyICSDomainEvent;
|
||
extern HANDLE DnsNotifyChangeKeyICSDomainWaitHandle;
|
||
extern HANDLE DnsTcpipParametersKey;
|
||
extern PWCHAR DnsICSDomainSuffix;
|
||
|
||
|
||
|
||
//
|
||
// ROUTINE DECLARATIONS
|
||
//
|
||
|
||
VOID
|
||
DnsDeleteQuery(
|
||
PDNS_INTERFACE Interfacep,
|
||
PDNS_QUERY Queryp
|
||
);
|
||
|
||
BOOLEAN
|
||
DnsIsPendingQuery(
|
||
PDNS_INTERFACE Interfacep,
|
||
PNH_BUFFER QueryBuffer
|
||
);
|
||
|
||
PDNS_QUERY
|
||
DnsMapResponseToQuery(
|
||
PDNS_INTERFACE Interfacep,
|
||
USHORT ResponseId
|
||
);
|
||
|
||
VOID NTAPI
|
||
DnsNotifyChangeAddressCallbackRoutine(
|
||
PVOID Context,
|
||
BOOLEAN TimedOut
|
||
);
|
||
|
||
VOID NTAPI
|
||
DnsNotifyChangeKeyCallbackRoutine(
|
||
PVOID Context,
|
||
BOOLEAN TimedOut
|
||
);
|
||
|
||
VOID NTAPI
|
||
DnsNotifyChangeKeyICSDomainCallbackRoutine(
|
||
PVOID Context,
|
||
BOOLEAN TimedOut
|
||
);
|
||
|
||
ULONG
|
||
DnsQueryServerList(
|
||
VOID
|
||
);
|
||
|
||
ULONG
|
||
DnsQueryICSDomainSuffix(
|
||
VOID
|
||
);
|
||
|
||
PDNS_QUERY
|
||
DnsRecordQuery(
|
||
PDNS_INTERFACE Interfacep,
|
||
PNH_BUFFER QueryBuffer
|
||
);
|
||
|
||
ULONG
|
||
DnsSendQuery(
|
||
PDNS_INTERFACE Interfacep,
|
||
PDNS_QUERY Queryp,
|
||
BOOLEAN Resend
|
||
);
|
||
|
||
#endif // _NATHLP_DNSQUERY_H_
|