DsGetDcOpen
C# Signature:
using DWORD = System.UInt32;
using ULONG = System.UInt64;
[DllImport(Netapi32, CharSet=CharSet.Auto, SetLastError=true)]
internal static extern DWORD DsGetDcOpen(
[MarshalAs(UnmanagedType.LPTStr)]
string DnsName,
ULONG OptionFlags,
[MarshalAs(UnmanagedType.LPTStr)]
string SiteName,
IntPtr DomainGuid,
[MarshalAs(UnmanagedType.LPTStr)]
string DnsForestName,
ULONG DcFlags,
out IntPtr RetGetDcContext
);
C# Signature:
[DllImport("Netapi32.dll", EntryPoint = "DsGetDcOpenW", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode)]
internal static extern int DsGetDcOpen(
[In] string dnsName,
[In] int optionFlags,
[In] string siteName,
[In] IntPtr domainGuid,
[In] string dnsForestName,
[In] int dcFlags,
out IntPtr retGetDcContext
);
VB Signature:
Declare Function DsGetDcOpen Lib "netapi32.dll" (TODO) As TODO
Sample Code:
IntPtr pDcContext = new IntPtr();
int iReturn = 0;
// if you are getting the entire domain
iReturn = DsGetDcOpen("domain1.mydomains.com", 0, null, (System.IntPtr)null, null, 0, out pDcContext);
// this is a great call, it will give you all the DC's that COVER a site, not just the DC's in that site:
iReturn = DsGetDcOpen("domain1.mydomains.com", 1, "MYADSITE", (System.IntPtr)null, null, 0, out pDcContext);
Última actualización