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.
 
 
 
 
 
 

149 lines
3.3 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: ndstruct.h
//
//--------------------------------------------------------------------------
#ifndef HEADER_NDSTRUCT
#define HEADER_NDSTRUCT
typedef struct _NETBT_TRANSPORT {
LIST_ENTRY Next;
//
// Flags describing this Netbt transport
//
DWORD Flags;
#define BOUND_TO_REDIR 0x001 // Transport is bound to the redir
#define BOUND_TO_BOWSER 0x002 // Transport is bound to the bowser
#define IP_ADDRESS_IN_DNS 0x004 // IP address is registered in DNS
//
// IP Address for this transport
//
ULONG IpAddress;
//
// Name of the transport (Must be the last field in the structure)
//
WCHAR pswzTransportName[1];
} NETBT_TRANSPORT, *PNETBT_TRANSPORT;
//
// Structure describing a single tested domain
//
typedef struct _TESTED_DOMAIN {
LIST_ENTRY Next;
//
// Name of the domain.
//
// Queryable domain is NULL for the domain we're a member of so we can
// pass NULL to DsGetDcName for that domain. Doing so has better query
// characteristics since it tries both the Netbios and DNS domain names.
//
//LPWSTR DomainName;
LPWSTR NetbiosDomainName; // NULL if not known
LPWSTR DnsDomainName; // NULL if not known
LPWSTR PrintableDomainName; // Pointer to a non-NULL domain name string
LPWSTR QueryableDomainName; // Can be NULL for domain we're a member of
BOOL fPrimaryDomain; // True if the domain is domain we're a member of
//BOOL IsNetbios; // True if DomainName is syntactically a Netbios name
//BOOL IsDns; // True if DomainName is syntactically a Dns name
//
// Domain Sid of the domain (if known)
//
BOOL fDomainSid; // do we have the domain sid?
PSID DomainSid;
//
// DcInfo for a DS_PREFERRED DC in the domain.
//
PDOMAIN_CONTROLLER_INFOW DcInfo;
BOOL fTriedToFindDcInfo;
//
// List of DCs to test.
//
LIST_ENTRY TestedDcs;
} TESTED_DOMAIN, *PTESTED_DOMAIN;
//
// Structure describing a single tested DC
//
typedef struct _TESTED_DC {
LIST_ENTRY Next;
//
// Name of the DC
//
// This will be the DNS DC name if we know it. Otherwise it will be the
// Netbios DC name.
//
LPWSTR ComputerName;
WCHAR NetbiosDcName[CNLEN+1];
ULONG Rid;
//
// IP Address of the DC
// NULL: Not yet known
//
LPWSTR DcIpAddress;
//
// Backlink to domain this DC belongs to
//
PTESTED_DOMAIN TestedDomain;
//
// Flags describing this DC.
//
ULONG Flags;
#define DC_IS_DOWN 0x001 // DC cannot be pinged
#define DC_IS_NT5 0x002 // DC is running NT 5 (or newer)
#define DC_IS_NT4 0x004 // DC is running NT 4 (or older)
#define DC_PINGED 0x008 // The DC pinged
#define DC_FAILED_PING 0x010 // The DC ping failed
} TESTED_DC, *PTESTED_DC;
//
// Generic interface to DsGetDcName
typedef DWORD (WINAPI DSGETDCNAMEW)(
IN LPCWSTR ComputerName OPTIONAL,
IN LPCWSTR DomainName OPTIONAL,
IN GUID *DomainGuid OPTIONAL,
IN LPCWSTR SiteName OPTIONAL,
IN ULONG Flags,
OUT PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo
);
#endif