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.
 
 
 
 
 
 

169 lines
3.7 KiB

/*++
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_