Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1996-1197 Microsoft Corporation
Module Name:
rpcstrcs.h
Abstract:
Domain Name System (DNS)
DNS Caching Resolver Structures
Author:
Glenn Curtis (glennc) January 11, 1997
Revision History:
--*/
#ifndef _RPCSTRCS_INCLUDED_
#define _RPCSTRCS_INCLUDED_
#ifndef _DNSAPI_INCLUDE_
#include <dnsapi.h>
#endif
#ifdef MIDL_PASS
#define LPSTR [string] char *
#define LPCSTR [string] const char *
#endif
//
// Net adapter list structures
//
typedef struct _DNS_IP_ADDR_LIST_ { DWORD dwAddressCount; #ifdef MIDL_PASS
[size_is(dwAddressCount)] DNS_ADDRESS_INFO AddressArray[]; #else // MIDL_PASS
DNS_ADDRESS_INFO AddressArray[1]; #endif // MIDL_PASS
} DNS_IP_ADDR_LIST, *PDNS_IP_ADDR_LIST;
typedef struct _DWORD_LIST_ITEM_ { struct _DWORD_LIST_ITEM_ * pNext; DWORD Value1; DWORD Value2; } DWORD_LIST_ITEM, *PDWORD_LIST_ITEM;
typedef struct _DNS_STATS_TABLE_ { struct _DNS_STATS_TABLE_ * pNext; PDWORD_LIST_ITEM pListItem; } DNS_STATS_TABLE, *PDNS_STATS_TABLE;
typedef struct _DNS_RPC_CACHE_TABLE_ { struct _DNS_RPC_CACHE_TABLE_ * pNext; LPWSTR Name; WORD Type1; WORD Type2; WORD Type3; } DNS_RPC_CACHE_TABLE, *PDNS_RPC_CACHE_TABLE;
//
// Most of the resolver interface is poorly designed or
// useless. For instance there is NO reason to have
// turned any of the above into linked lists.
//
// We simply need definitions that are MIDL_PASS aware.
// This should sit in a common header and be picked up
// by dnslib.h. This must wait until dnslib.h is
// private again OR we separate out the private stuff
// like this in some fashion.
//
// Note, taking this private should also involve rename,
// the PUBLIC structs are obviously the one's that should
// have the "DNS" tag. (Amazing.)
//
typedef struct _NameServerInfo { IP_ADDRESS ipAddress; DWORD Priority; DNS_STATUS Status; } NAME_SERVER_INFO, *PNAME_SERVER_INFO;
typedef struct _AdapterInfo { LPSTR pszAdapterGuidName; LPSTR pszAdapterDomain; PIP_ARRAY pAdapterIPAddresses; PIP_ARRAY pAdapterIPSubnetMasks; DWORD Status; DWORD InfoFlags; DWORD ReturnFlags; DWORD ipLastSend; DWORD cServerCount; DWORD cTotalListSize;
#ifdef MIDL_PASS
[size_is(cTotalListSize)] NAME_SERVER_INFO aipServers[]; #else
NAME_SERVER_INFO aipServers[1]; #endif
} ADAPTER_INFO, *PADAPTER_INFO;
typedef struct _SearchName { LPSTR pszName; DWORD Flags; } SEARCH_NAME, *PSEARCH_NAME;
typedef struct _RpcSearchList { LPSTR pszDomainOrZoneName; DWORD cNameCount; // Zero for FindAuthoritativeZone
DWORD cTotalListSize; // Zero for FindAuthoritativeZone
DWORD CurrentName; // 0 for pszDomainOrZoneName
// 1 for first name in array below
// ...
#ifdef MIDL_PASS
[size_is(cTotalListSize)] SEARCH_NAME aSearchListNames[]; #else
SEARCH_NAME aSearchListNames[1]; #endif
} RPC_SEARCH_LIST, *PRPC_SEARCH_LIST;
typedef struct _NetworkInfo { DWORD ReturnFlags; DWORD InfoFlags; PRPC_SEARCH_LIST pSearchList; DWORD cAdapterCount; DWORD cTotalListSize;
#ifdef MIDL_PASS
[size_is(cTotalListSize)] PADAPTER_INFO aAdapterInfoList[]; #else
PADAPTER_INFO aAdapterInfoList[1]; #endif
} NETWORK_INFO, *PNETWORK_INFO;
#endif // _RPCSTRCS_INCLUDED_
|