Merge pull request #1 from dahall/master

Merge Lastest Updates.
pull/26/head
Great Fire Wall 2018-12-11 17:00:28 +08:00 committed by GitHub
commit cb8a156c69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
71 changed files with 21481 additions and 1106 deletions

View File

@ -193,26 +193,36 @@ namespace Vanara.Extensions
/// <returns>The <see cref="Type"/> reference, or <c>null</c> if type or assembly not found.</returns>
public static Type LoadType(string typeName, string asmRef = null)
{
Type ret = null;
Assembly asm = null;
try { asm = Assembly.LoadFrom(asmRef); } catch { }
if (!TryGetType(asm, typeName, ref ret))
if (!TryGetType(asm, typeName, out var ret))
{
foreach (var asm2 in AppDomain.CurrentDomain.GetAssemblies())
if (TryGetType(asm2, typeName, ref ret)) break;
if (TryGetType(asm2, typeName, out ret)) break;
}
return ret;
}
/// <summary>Sets a named property on an object.</summary>
/// <typeparam name="T">The type of the property to be set.</typeparam>
/// <param name="obj">The object on which to set the property.</param>
/// <param name="propName">Name of the property.</param>
/// <param name="value">The property value to set on the object.</param>
public static void SetPropertyValue<T>(this object obj, string propName, T value)
{
try { obj?.GetType().InvokeMember(propName, BindingFlags.SetProperty | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, obj, new object[] { value }, null); }
catch { }
}
/// <summary>Tries the retrieve a <see cref="Type"/> reference from an assembly.</summary>
/// <param name="typeName">Name of the type.</param>
/// <param name="asm">The assembly from which to load the type.</param>
/// <param name="type">The <see cref="Type"/> reference, if found.</param>
/// <returns><c>true</c> if the type was found in the assembly; otherwise, <c>false</c>.</returns>
private static bool TryGetType(Assembly asm, string typeName, ref Type type)
private static bool TryGetType(Assembly asm, string typeName, out Type type)
{
if (asm == null) return false;
return (type = asm.GetType(typeName, false, false)) != null;
type = asm?.GetType(typeName, false, false);
return !(type is null);
}
}
}

View File

@ -9,7 +9,7 @@
* Memory stream based on marshaled memory</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard20</TargetFrameworks>
<AssemblyName>Vanara.Core</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -40,6 +40,8 @@ CorrepsondingAction, StringListPackMethod
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -29,7 +29,7 @@
<KeepLogFile>False</KeepLogFile>
<DisableCodeBlockComponent>False</DisableCodeBlockComponent>
<CleanIntermediates>True</CleanIntermediates>
<HelpFileVersion>2.0.0</HelpFileVersion>
<HelpFileVersion>2.0.1</HelpFileVersion>
<MaximumGroupParts>2</MaximumGroupParts>
<NamespaceGrouping>True</NamespaceGrouping>
<SyntaxFilters>C#, Visual Basic</SyntaxFilters>

View File

@ -12,6 +12,7 @@ Native Structure | Header | Managed Structure
[SECURITY_OBJECT](http://msdn2.microsoft.com/en-us/library/hh448532) | aclui.h | Vanara.PInvoke.AclUI+SECURITY_OBJECT
[SI_ACCESS](http://msdn2.microsoft.com/en-us/library/aa379603) | aclui.h | Vanara.PInvoke.AclUI+SI_ACCESS
[SI_INHERIT_TYPE](http://msdn2.microsoft.com/en-us/library/aa379604) | aclui.h | Vanara.PInvoke.AclUI+SI_INHERIT_TYPE
[SI_OBJECT_INFO](http://msdn2.microsoft.com/en-us/library/aa379605) | aclui.h | Vanara.PInvoke.AclUI+SI_OBJECT_INFO
[SID_INFO](http://msdn2.microsoft.com/en-us/library/aa379599) | aclui.h | Vanara.PInvoke.AclUI+SID_INFO
### Interfaces
Native Interface | Native DLL | Header | Managed Interface

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from AclUI.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.AclUI</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -28,13 +28,15 @@ Functions
CreateSecurityPage, EditSecurity, EditSecurityAdvanced
Structures
EFFPERM_RESULT_LIST, SECURITY_OBJECT, SI_ACCESS, SI_INHERIT_TYPE, SID_INFO
EFFPERM_RESULT_LIST, SECURITY_OBJECT, SI_ACCESS, SI_INHERIT_TYPE, SI_OBJECT_INFO, SID_INFO
Interfaces
IEffectivePermission, IEffectivePermission2, ISecurityInformation, ISecurityInformation2, ISecurityInformation3, ISecurityInformation4, ISecurityObjectTypeInfo
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Interfaces, structures and constants imported for BITS (Background Intelligent Transfer Service).</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.BITS</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -32,6 +32,8 @@ IBackgroundCopyCallback, IBackgroundCopyCallback2, IBackgroundCopyCallback3, IBa
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -76,17 +76,24 @@ Native Method | Native DLL | Header | Managed Method
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[BUTTON_IMAGELIST](http://msdn2.microsoft.com/en-us/library/bb775953) | Commctrl.h | Vanara.PInvoke.ComCtl32+BUTTON_IMAGELIST
[BUTTON_SPLITINFO](http://msdn2.microsoft.com/en-us/library/bb775955) | Commctrl.h | Vanara.PInvoke.ComCtl32+BUTTON_SPLITINFO
[COLORMAP](http://msdn2.microsoft.com/en-us/library/bb760448) | Commctrl.h | Vanara.PInvoke.ComCtl32+COLORMAP
[COLORSCHEME](https://www.google.com/search?num=5&q=COLORSCHEME+site%3Amicrosoft.com) | | Vanara.PInvoke.ComCtl32+COLORSCHEME
[COMBOBOXEXITEM](http://msdn2.microsoft.com/en-us/library/bb775746) | Commctrl.h | Vanara.PInvoke.ComCtl32+COMBOBOXEXITEM
[COMBOBOXINFO](http://msdn2.microsoft.com/en-us/library/bb775798) | Winuser.h | Vanara.PInvoke.ComCtl32+COMBOBOXINFO
[DPASTREAMINFO](http://msdn2.microsoft.com/en-us/library/bb775504) | Dpa_dsa.h | Vanara.PInvoke.ComCtl32+DPASTREAMINFO
[EDITBALLOONTIP](http://msdn2.microsoft.com/en-us/library/bb775466) | Commctrl.h | Vanara.PInvoke.ComCtl32+EDITBALLOONTIP
[HDHITTESTINFO](http://msdn2.microsoft.com/en-us/library/bb775245) | Commctrl.h | Vanara.PInvoke.ComCtl32+HDHITTESTINFO
[HDITEM](http://msdn2.microsoft.com/en-us/library/bb775247) | Commctrl.h | Vanara.PInvoke.ComCtl32+HDITEM
[HDLAYOUT](http://msdn2.microsoft.com/en-us/library/bb775249) | Commctrl.h | Vanara.PInvoke.ComCtl32+HDLAYOUT
[HDTEXTFILTER](http://msdn2.microsoft.com/en-us/library/bb775251) | Commctrl.h | Vanara.PInvoke.ComCtl32+HDTEXTFILTER
[HTREEITEM](https://www.google.com/search?num=5&q=HTREEITEM+site%3Amicrosoft.com) | | Vanara.PInvoke.ComCtl32+HTREEITEM
[IMAGEINFO](http://msdn2.microsoft.com/en-us/library/bb761393) | Commctrl.h | Vanara.PInvoke.ComCtl32+IMAGEINFO
[IMAGELISTDRAWPARAMS](http://msdn2.microsoft.com/en-us/library/bb761395) | Commctrl.h | Vanara.PInvoke.ComCtl32+IMAGELISTDRAWPARAMS
[IMAGELISTSTATS](http://msdn2.microsoft.com/en-us/library/bb761397) | Commoncontrols.h | Vanara.PInvoke.ComCtl32+IMAGELISTSTATS
[INITCOMMONCONTROLSEX](http://msdn2.microsoft.com/en-us/library/bb775507) | Commctrl.h | Vanara.PInvoke.ComCtl32+INITCOMMONCONTROLSEX
[LVBKIMAGE](http://msdn2.microsoft.com/en-us/library/bb774742) | Commctrl.h | Vanara.PInvoke.ComCtl32+LVBKIMAGE
[LVCOLUMN](http://msdn2.microsoft.com/en-us/library/bb774743) | Commctrl.h | Vanara.PInvoke.ComCtl32+LVCOLUMN
[LVFINDINFO](http://msdn2.microsoft.com/en-us/library/bb774745) | Commctrl.h | Vanara.PInvoke.ComCtl32+LVFINDINFO
[LVGROUP](http://msdn2.microsoft.com/en-us/library/bb774769) | Commctrl.h | Vanara.PInvoke.ComCtl32+LVGROUP
@ -97,19 +104,64 @@ Native Structure | Header | Managed Structure
[LVITEMCOLUMNINFO](http://msdn2.microsoft.com/en-us/library/bb774760) | Commctrl.h | Vanara.PInvoke.ComCtl32+LVITEMCOLUMNINFO
[LVITEMINDEX](http://msdn2.microsoft.com/en-us/library/bb761385) | Commctrl.h | Vanara.PInvoke.ComCtl32+LVITEMINDEX
[LVTILEVIEWINFO](http://msdn2.microsoft.com/en-us/library/bb774768) | Commctrl.h | Vanara.PInvoke.ComCtl32+LVTILEVIEWINFO
[NMBCDROPDOWN](http://msdn2.microsoft.com/en-us/library/bb775957) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMBCDROPDOWN
[NMBCHOTITEM](http://msdn2.microsoft.com/en-us/library/bb775959) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMBCHOTITEM
[NMCBEDRAGBEGIN](http://msdn2.microsoft.com/en-us/library/bb775748) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMCBEDRAGBEGIN
[NMCBEENDEDIT](http://msdn2.microsoft.com/en-us/library/bb775750) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMCBEENDEDIT
[NMCHAR](http://msdn2.microsoft.com/en-us/library/bb775508) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMCHAR
[NMCOMBOBOXEX](http://msdn2.microsoft.com/en-us/library/bb775752) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMCOMBOBOXEX
[NMCUSTOMDRAW](http://msdn2.microsoft.com/en-us/library/bb775483) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMCUSTOMDRAW
[NMCUSTOMSPLITRECTINFO](http://msdn2.microsoft.com/en-us/library/bb775510) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMCUSTOMSPLITRECTINFO
[NMCUSTOMTEXT](http://msdn2.microsoft.com/en-us/library/bb775512) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMCUSTOMTEXT
[NMHDDISPINFO](http://msdn2.microsoft.com/en-us/library/bb775253) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMHDDISPINFO
[NMHDFILTERBTNCLICK](http://msdn2.microsoft.com/en-us/library/bb775255) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMHDFILTERBTNCLICK
[NMHEADER](http://msdn2.microsoft.com/en-us/library/bb775257) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMHEADER
[NMIPADDRESS](http://msdn2.microsoft.com/en-us/library/bb761375) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMIPADDRESS
[NMKEY](http://msdn2.microsoft.com/en-us/library/bb775516) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMKEY
[NMLISTVIEW](http://msdn2.microsoft.com/en-us/library/bb774773) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMLISTVIEW
[NMMOUSE](http://msdn2.microsoft.com/en-us/library/bb775518) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMMOUSE
[NMOBJECTNOTIFY](http://msdn2.microsoft.com/en-us/library/bb775520) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMOBJECTNOTIFY
[NMTBDISPINFO](http://msdn2.microsoft.com/en-us/library/bb760452) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTBDISPINFO
[NMTBGETINFOTIP](http://msdn2.microsoft.com/en-us/library/bb760454) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTBGETINFOTIP
[NMTBHOTITEM](http://msdn2.microsoft.com/en-us/library/bb760456) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTBHOTITEM
[NMTBRESTORE](http://msdn2.microsoft.com/en-us/library/bb760458) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTBRESTORE
[NMTBSAVE](http://msdn2.microsoft.com/en-us/library/bb760471) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTBSAVE
[NMTOOLBAR](http://msdn2.microsoft.com/en-us/library/bb760473) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTOOLBAR
[NMTOOLTIPSCREATED](http://msdn2.microsoft.com/en-us/library/bb775522) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTOOLTIPSCREATED
[NMTRBTHUMBPOSCHANGING](http://msdn2.microsoft.com/en-us/library/bb760153) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTRBTHUMBPOSCHANGING
[NMTREEVIEW](http://msdn2.microsoft.com/en-us/library/bb773411) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTREEVIEW
[NMTTDISPINFO](http://msdn2.microsoft.com/en-us/library/bb760258) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTTDISPINFO
[NMTVASYNCDRAW](http://msdn2.microsoft.com/en-us/library/bb773413) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTVASYNCDRAW
[NMTVCUSTOMDRAW](http://msdn2.microsoft.com/en-us/library/bb773415) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTVCUSTOMDRAW
[NMTVDISPINFO](http://msdn2.microsoft.com/en-us/library/bb773418) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTVDISPINFO
[NMTVDISPINFOEX](http://msdn2.microsoft.com/en-us/library/bb760143) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTVDISPINFOEX
[NMTVGETINFOTIP](http://msdn2.microsoft.com/en-us/library/bb773421) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTVGETINFOTIP
[NMTVITEMCHANGE](http://msdn2.microsoft.com/en-us/library/bb773425) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTVITEMCHANGE
[NMTVKEYDOWN](http://msdn2.microsoft.com/en-us/library/bb773433) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMTVKEYDOWN
[NMUPDOWN](http://msdn2.microsoft.com/en-us/library/bb759893) | Commctrl.h | Vanara.PInvoke.ComCtl32+NMUPDOWN
[PBRANGE](http://msdn2.microsoft.com/en-us/library/bb760822) | Commctrl.h | Vanara.PInvoke.ComCtl32+PBRANGE
[PROPSHEETHEADER](http://msdn2.microsoft.com/en-us/library/bb774546) | Commctrl.h | Vanara.PInvoke.ComCtl32+PROPSHEETHEADER
[PROPSHEETPAGE](http://msdn2.microsoft.com/en-us/library/bb774548) | Commctrl.h | Vanara.PInvoke.ComCtl32+PROPSHEETPAGE
[TASKDIALOG_BUTTON](http://msdn2.microsoft.com/en-us/library/bb787475) | Commctrl.h | Vanara.PInvoke.ComCtl32+TASKDIALOG_BUTTON
[TASKDIALOGCONFIG](http://msdn2.microsoft.com/en-us/library/bb787473) | commctrl.h | Vanara.PInvoke.ComCtl32+TASKDIALOGCONFIG
[TBADDBITMAP](http://msdn2.microsoft.com/en-us/library/bb760475) | Commctrl.h | Vanara.PInvoke.ComCtl32+TBADDBITMAP
[TBBUTTON](http://msdn2.microsoft.com/en-us/library/bb760476) | Commctrl.h | Vanara.PInvoke.ComCtl32+TBBUTTON
[TBBUTTONINFO](http://msdn2.microsoft.com/en-us/library/bb760478) | Commctrl.h | Vanara.PInvoke.ComCtl32+TBBUTTONINFO
[TBINSERTMARK](http://msdn2.microsoft.com/en-us/library/bb760480) | Commctrl.h | Vanara.PInvoke.ComCtl32+TBINSERTMARK
[TBMETRICS](http://msdn2.microsoft.com/en-us/library/bb760482) | Commctrl.h | Vanara.PInvoke.ComCtl32+TBMETRICS
[TBREPLACEBITMAP](http://msdn2.microsoft.com/en-us/library/bb760484) | Commctrl.h | Vanara.PInvoke.ComCtl32+TBREPLACEBITMAP
[TBSAVEPARAMS](http://msdn2.microsoft.com/en-us/library/bb760486) | Commctrl.h | Vanara.PInvoke.ComCtl32+TBSAVEPARAMS
[TCHITTESTINFO](http://msdn2.microsoft.com/en-us/library/bb760553) | Commctrl.h | Vanara.PInvoke.ComCtl32+TCHITTESTINFO
[TCITEM](http://msdn2.microsoft.com/en-us/library/bb760554) | Commctrl.h | Vanara.PInvoke.ComCtl32+TCITEM
[TCITEMHEADER](http://msdn2.microsoft.com/en-us/library/bb760813) | Commctrl.h | Vanara.PInvoke.ComCtl32+TCITEMHEADER
[TOOLINFO](http://msdn2.microsoft.com/en-us/library/bb760256) | Commctrl.h | Vanara.PInvoke.ComCtl32+TOOLINFO
[TTGETTITLE](http://msdn2.microsoft.com/en-us/library/bb760260) | Commctrl.h | Vanara.PInvoke.ComCtl32+TTGETTITLE
[TTHITTESTINFO](http://msdn2.microsoft.com/en-us/library/bb760262) | Commctrl.h | Vanara.PInvoke.ComCtl32+TTHITTESTINFO
[TVGETITEMPARTRECTINFO](http://msdn2.microsoft.com/en-us/library/bb773442) | Commctrl.h | Vanara.PInvoke.ComCtl32+TVGETITEMPARTRECTINFO
[TVHITTESTINFO](http://msdn2.microsoft.com/en-us/library/bb773448) | Commctrl.h | Vanara.PInvoke.ComCtl32+TVHITTESTINFO
[TVINSERTSTRUCT](http://msdn2.microsoft.com/en-us/library/bb773452) | Commctrl.h | Vanara.PInvoke.ComCtl32+TVINSERTSTRUCT
[TVITEM](http://msdn2.microsoft.com/en-us/library/bb773456) | Commctrl.h | Vanara.PInvoke.ComCtl32+TVITEM
[TVITEMEX](http://msdn2.microsoft.com/en-us/library/bb773459) | Commctrl.h | Vanara.PInvoke.ComCtl32+TVITEMEX
[TVSORTCB](http://msdn2.microsoft.com/en-us/library/bb773462) | Commctrl.h | Vanara.PInvoke.ComCtl32+TVSORTCB
[UDACCEL](http://msdn2.microsoft.com/en-us/library/bb759897) | Commctrl.h | Vanara.PInvoke.ComCtl32+UDACCEL
### Interfaces

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from ComCtl32.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.ComCtl32</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -28,7 +28,7 @@ Functions
_TrackMouseEvent, CreateMappedBitmap, CreatePropertySheetPageA, CreatePropertySheetPageW, CreateUpDownControl, DefSubclassProc, DestroyPropertySheetPage, DPA_Clone, DPA_Create, DPA_CreateEx, DPA_DeleteAllPtrs, DPA_DeletePtr, DPA_Destroy, DPA_DestroyCallback, DPA_EnumCallback, DPA_GetPtr, DPA_GetPtrIndex, DPA_GetSize, DPA_Grow, DPA_InsertPtr, DPA_LoadStream, DPA_Merge, DPA_SaveStream, DPA_Search, DPA_SetPtr, DPA_Sort, DrawInsert, DrawShadowText, DrawStatusTextA, DrawStatusTextW, DSA_Clone, DSA_Create, DSA_DeleteAllItems, DSA_DeleteItem, DSA_Destroy, DSA_DestroyCallback, DSA_EnumCallback, DSA_GetItem, DSA_GetItemPtr, DSA_GetSize, DSA_InsertItem, DSA_SetItem, DSA_Sort, GetEffectiveClientRect, GetMUILanguage, GetWindowSubclass, HIMAGELIST_QueryInterface, ImageList_CoCreateInstance, ImageList_Create, ImageList_Destroy, ImageList_Duplicate, ImageList_GetIcon, ImageList_LoadImageA, ImageList_LoadImageW, ImageList_Read, ImageList_ReadEx, ImageList_Write, ImageList_WriteEx, InitCommonControlsEx, InitMUILanguage, LBItemFromPt, LoadIconMetric, LoadIconWithScaleDown, MakeDragList, MenuHelp, PropertySheetA, PropertySheetW, RemoveWindowSubclass, SendMessageA, SendMessageW, SetWindowSubclass, ShowHideMenuCtl, Str_SetPtrW, TaskDialog, TaskDialogIndirect
Structures
COMBOBOXEXITEM, COLORSCHEME, INITCOMMONCONTROLSEX, EDITBALLOONTIP, HDTEXTFILTER, HDHITTESTINFO, HDLAYOUT, IMAGELISTSTATS, LVFINDINFO, LVGROUPMETRICS, LVHITTESTINFO, LVINSERTMARK, LVITEMCOLUMNINFO, LVITEMINDEX, LVTILEVIEWINFO, LVCOLUMN, LVGROUP, LVITEM, PBRANGE, TCHITTESTINFO, TCITEM, TCITEMHEADER, TASKDIALOG_BUTTON, COLORMAP, TBBUTTON, TBBUTTONINFO, TBINSERTMARK, TBMETRICS, TTGETTITLE, HTREEITEM, TVHITTESTINFO, TVITEM, TVSORTCB, TVGETITEMPARTRECTINFO, UDACCEL, DPASTREAMINFO
BUTTON_IMAGELIST, BUTTON_SPLITINFO, NMBCDROPDOWN, NMBCHOTITEM, COMBOBOXINFO, NMCBEDRAGBEGIN, NMCBEENDEDIT, NMCOMBOBOXEX, COMBOBOXEXITEM, COLORSCHEME, INITCOMMONCONTROLSEX, NMCHAR, NMCUSTOMDRAW, NMCUSTOMSPLITRECTINFO, NMCUSTOMTEXT, NMKEY, NMMOUSE, NMOBJECTNOTIFY, NMTOOLTIPSCREATED, EDITBALLOONTIP, HDTEXTFILTER, HDHITTESTINFO, HDITEM, HDLAYOUT, NMHDDISPINFO, NMHDFILTERBTNCLICK, NMHEADER, IMAGEINFO, IMAGELISTSTATS, IMAGELISTDRAWPARAMS, NMIPADDRESS, LVFINDINFO, LVGROUPMETRICS, LVHITTESTINFO, LVINSERTMARK, LVITEMCOLUMNINFO, LVITEMINDEX, LVTILEVIEWINFO, NMLISTVIEW, LVBKIMAGE, LVCOLUMN, LVGROUP, LVITEM, PBRANGE, PROPSHEETHEADER, PROPSHEETPAGE, TCHITTESTINFO, TCITEM, TCITEMHEADER, TASKDIALOG_BUTTON, TASKDIALOGCONFIG, COLORMAP, NMTBDISPINFO, NMTBGETINFOTIP, NMTBHOTITEM, NMTBRESTORE, NMTBSAVE, NMTOOLBAR, TBADDBITMAP, TBBUTTON, TBBUTTONINFO, TBINSERTMARK, TBMETRICS, TBREPLACEBITMAP, TBSAVEPARAMS, NMTTDISPINFO, TOOLINFO, TTGETTITLE, TTHITTESTINFO, NMTRBTHUMBPOSCHANGING, HTREEITEM, NMTREEVIEW, NMTVASYNCDRAW, NMTVCUSTOMDRAW, NMTVDISPINFO, NMTVDISPINFOEX, NMTVGETINFOTIP, NMTVITEMCHANGE, NMTVKEYDOWN, TVHITTESTINFO, TVINSERTSTRUCT, TVITEM, TVITEMEX, TVSORTCB, TVGETITEMPARTRECTINFO, NMUPDOWN, UDACCEL, DPASTREAMINFO
Interfaces
IImageList, IImageList2
@ -36,6 +36,8 @@ IImageList, IImageList2
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<ApplicationManifest>Library.manifest</ApplicationManifest>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -19,5 +19,6 @@ Native Method | Native DLL | Header | Managed Method
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[CREDUI_INFO](http://msdn2.microsoft.com/en-us/library/aa375183) | wincred.h | Vanara.PInvoke.CredUI+CREDUI_INFO
[PSEC_WINNT_CREDUI_CONTEXT](https://www.google.com/search?num=5&q=PSEC_WINNT_CREDUI_CONTEXT+site%3Amicrosoft.com) | | Vanara.PInvoke.CredUI+PSEC_WINNT_CREDUI_CONTEXT
[PSEC_WINNT_CREDUI_CONTEXT_VECTOR](https://www.google.com/search?num=5&q=PSEC_WINNT_CREDUI_CONTEXT_VECTOR+site%3Amicrosoft.com) | | Vanara.PInvoke.CredUI+PSEC_WINNT_CREDUI_CONTEXT_VECTOR

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from CredUI.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.CredUI</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -28,10 +28,12 @@ Functions
CredPackAuthenticationBufferA, CredPackAuthenticationBufferW, CredUICmdLinePromptForCredentialsA, CredUICmdLinePromptForCredentialsW, CredUIConfirmCredentialsA, CredUIConfirmCredentialsW, CredUIParseUserNameA, CredUIParseUserNameW, CredUIPromptForCredentialsA, CredUIPromptForCredentialsW, CredUIPromptForWindowsCredentialsA, CredUIPromptForWindowsCredentialsW, CredUIReadSSOCredA, CredUIReadSSOCredW, CredUIStoreSSOCredA, CredUIStoreSSOCredW, CredUnPackAuthenticationBufferA, CredUnPackAuthenticationBufferW, SspiGetCredUIContext, SspiIsPromptingNeeded, SspiPromptForCredentialsA, SspiPromptForCredentialsW, SspiUnmarshalCredUIContext, SspiUpdateCredentials
Structures
PSEC_WINNT_CREDUI_CONTEXT, PSEC_WINNT_CREDUI_CONTEXT_VECTOR
PSEC_WINNT_CREDUI_CONTEXT, PSEC_WINNT_CREDUI_CONTEXT_VECTOR, CREDUI_INFO
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -1,53 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Description>Methods, structures and constants imported from Crypt32.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.Crypt32</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
<RootNamespace>Vanara.PInvoke</RootNamespace>
<Authors>David Hall</Authors>
<PackageProjectUrl>https://github.com/dahall/vanara</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/dahall/vanara/blob/master/LICENSE</PackageLicenseUrl>
<PackageIconUrl>https://raw.githubusercontent.com/dahall/Vanara/master/docs/icons/Vanara48x48.png</PackageIconUrl>
<RepositoryUrl>https://github.com/dahall/vanara</RepositoryUrl>
<RepositoryType>Git</RepositoryType>
<PackageTags>pinvoke vanara net-extensions interop</PackageTags>
<NeutralLanguage>en-US</NeutralLanguage>
<IncludeSource>true</IncludeSource>
<IncludeSymbols>true</IncludeSymbols>
<Company>GitHub Community</Company>
<Product>Vanara</Product>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<PackageReleaseNotes>Currently implements:
Structures
CERT_CONTEXT, CERT_EXTENSION, CERT_INFO, CERT_PUBLIC_KEY_INFO, CRYPT_ALGORITHM_IDENTIFIER, CRYPTOAPI_BLOB
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net20' ">
<Reference Include="System" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net35' ">
<Reference Include="System" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net40' ">
<Reference Include="System" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Core\Vanara.Core.csproj" />
<ProjectReference Include="..\Shared\Vanara.PInvoke.Shared.csproj" />
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,60 @@
## Correlation report for crypt32.dll
### Methods (0% complete)
## Correlation report for crypt32.dll, bcrypt.dll, ncrypt.dll, tokenbinding.dll
### Methods (23% complete)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[BCryptAddContextFunction](http://msdn2.microsoft.com/en-us/library/4f5b6db0-775d-42de-b9d9-a99fb11c89f2) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptAddContextFunction
[BCryptCloseAlgorithmProvider](http://msdn2.microsoft.com/en-us/library/def90d52-87e0-40e6-9c50-fd77177991d0) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptCloseAlgorithmProvider
[BCryptConfigureContext](http://msdn2.microsoft.com/en-us/library/7989fefc-64fe-4ab3-9a48-7992edac171f) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptConfigureContext
[BCryptConfigureContextFunction](http://msdn2.microsoft.com/en-us/library/e93c5e3e-3c63-49a3-8c8c-6510e10611ea) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptConfigureContextFunction
[BCryptCreateContext](http://msdn2.microsoft.com/en-us/library/68f71010-0089-4433-bc89-f61f190e0bff) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptCreateContext
[BCryptCreateHash](http://msdn2.microsoft.com/en-us/library/deb02f67-f3d3-4542-8245-fd4982c3190b) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptCreateHash
[BCryptCreateMultiHash](http://msdn2.microsoft.com/en-us/library/AAF91460-AEFB-4E16-91EA-4A60272B3839) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptCreateMultiHash
[BCryptDecrypt](http://msdn2.microsoft.com/en-us/library/62286f6b-0d57-4691-83fc-2b9a9740af71) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDecrypt
[BCryptDeleteContext](http://msdn2.microsoft.com/en-us/library/6a250bed-0ea4-4cae-86e6-f0cea95dc56e) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDeleteContext
[BCryptDeriveKey](http://msdn2.microsoft.com/en-us/library/33c3cbf7-6c08-42ed-ac3f-feb71f3a9cbf) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDeriveKey
[BCryptDeriveKeyCapi](http://msdn2.microsoft.com/en-us/library/bebb0767-8c54-48b7-864c-f53caea7120d) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDeriveKeyCapi
[BCryptDeriveKeyPBKDF2](http://msdn2.microsoft.com/en-us/library/afdddfec-a3a5-410c-998b-9a5af8e051b6) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDeriveKeyPBKDF2
[BCryptDestroyHash](http://msdn2.microsoft.com/en-us/library/067dac61-98b9-478c-ac4d-e141961865e9) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDestroyHash
[BCryptDestroyKey](http://msdn2.microsoft.com/en-us/library/98c02e55-6489-4901-8a7a-021baac41965) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDestroyKey
[BCryptDestroySecret](http://msdn2.microsoft.com/en-us/library/237743ff-ecb1-4c01-b4f9-192f27716f2c) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDestroySecret
[BCryptDuplicateHash](http://msdn2.microsoft.com/en-us/library/451ff5dc-b66a-4e8e-a327-28b4ee618b74) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDuplicateHash
[BCryptDuplicateKey](http://msdn2.microsoft.com/en-us/library/13a0b904-353f-498a-bdc2-2fd4e51144ff) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptDuplicateKey
[BCryptEncrypt](http://msdn2.microsoft.com/en-us/library/69fe4530-4b7c-40db-a85c-f9dc458735e7) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptEncrypt
[BCryptEnumAlgorithms](http://msdn2.microsoft.com/en-us/library/7fa227c0-2b80-49ab-8a19-72f8444d5507) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptEnumAlgorithms
[BCryptEnumContextFunctionProviders](http://msdn2.microsoft.com/en-us/library/82776e61-03bb-463b-8767-fa4f70fe1341) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptEnumContextFunctionProviders
[BCryptEnumContextFunctions](http://msdn2.microsoft.com/en-us/library/81bdfd47-7001-4e63-a8b3-33dae99f2c66) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptEnumContextFunctions
[BCryptEnumContexts](http://msdn2.microsoft.com/en-us/library/02646a80-6e93-4169-83da-0488ff3da56f) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptEnumContexts
[BCryptEnumProviders](http://msdn2.microsoft.com/en-us/library/0496f241-9530-47fb-89e2-15d7ab6da87a) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptEnumProviders
[BCryptEnumRegisteredProviders](http://msdn2.microsoft.com/en-us/library/a01adfec-dbe0-4817-af97-63163760fafc) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptEnumRegisteredProviders
[BCryptExportKey](http://msdn2.microsoft.com/en-us/library/a5d73143-c1d6-43b3-a724-7e27c68a5ade) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptExportKey
[BCryptFinalizeKeyPair](http://msdn2.microsoft.com/en-us/library/bf0b90f1-6da8-464e-9271-ad60ea762653) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptFinalizeKeyPair
[BCryptFinishHash](http://msdn2.microsoft.com/en-us/library/82a7c3d9-c01b-46d0-8b54-694dc0d8ffdd) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptFinishHash
[BCryptFreeBuffer](http://msdn2.microsoft.com/en-us/library/0ee83ca1-2fe6-4ff2-823e-888b3e66f310) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptFreeBuffer
[BCryptGenerateKeyPair](http://msdn2.microsoft.com/en-us/library/cdf0de2e-2445-45e3-91ba-89791a0c0642) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptGenerateKeyPair
[BCryptGenerateSymmetricKey](http://msdn2.microsoft.com/en-us/library/c55d714f-f47e-4ddf-97b9-985c0441bb2d) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptGenerateSymmetricKey
[BCryptGenRandom](http://msdn2.microsoft.com/en-us/library/7c6cee3a-f2c5-46f3-8cfe-984316f323d9) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptGenRandom
[BCryptGetFipsAlgorithmMode](http://msdn2.microsoft.com/en-us/library/eb7b758d-3466-49fe-8729-a8a059fadcde) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptGetFipsAlgorithmMode
[BCryptGetProperty](http://msdn2.microsoft.com/en-us/library/5c62ca3a-843e-41a7-9340-41785fbb15f4) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptGetProperty
[BCryptHash](http://msdn2.microsoft.com/en-us/library/F0FF9B6D-1345-480A-BE13-BE90547407BF) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptHash
[BCryptHashData](http://msdn2.microsoft.com/en-us/library/dab89dff-dc84-4f69-8b6b-de65704b0265) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptHashData
[BCryptImportKey](http://msdn2.microsoft.com/en-us/library/6b9683f4-10f2-40e4-9757-a1f01991bef7) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptImportKey
[BCryptImportKeyPair](http://msdn2.microsoft.com/en-us/library/271fc084-6121-4666-b521-b849c7d7966c) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptImportKeyPair
[BCryptKeyDerivation](http://msdn2.microsoft.com/en-us/library/D0B91FFE-2E72-4AE3-A84F-DC598C02CF53) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptKeyDerivation
[BCryptOpenAlgorithmProvider](http://msdn2.microsoft.com/en-us/library/aceba9c0-19e6-4f3c-972a-752feed4a9f8) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptOpenAlgorithmProvider
[BCryptProcessMultiOperations](http://msdn2.microsoft.com/en-us/library/5FD28AC3-46D2-4F06-BF06-F5FEF8E531F5) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptProcessMultiOperations
[BCryptQueryContextConfiguration](http://msdn2.microsoft.com/en-us/library/3e2ae471-cad6-4bfe-9e30-7b2a7014bc08) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptQueryContextConfiguration
[BCryptQueryContextFunctionConfiguration](http://msdn2.microsoft.com/en-us/library/4eea9efe-bf45-4926-86fc-9b12b6d292cd) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptQueryContextFunctionConfiguration
[BCryptQueryContextFunctionProperty](http://msdn2.microsoft.com/en-us/library/c8814a13-ac28-4583-927f-c787e0a25faf) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptQueryContextFunctionProperty
[BCryptQueryProviderRegistration](http://msdn2.microsoft.com/en-us/library/28b8bca9-442f-4d58-86aa-8aa274777ede) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptQueryProviderRegistration
[BCryptRegisterConfigChangeNotify](http://msdn2.microsoft.com/en-us/library/bb394681) | bcrypt.dll | Bcrypt.h | Vanara.PInvoke.BCrypt.BCryptRegisterConfigChangeNotify
[BCryptRemoveContextFunction](http://msdn2.microsoft.com/en-us/library/b8b1df66-f66f-4efc-9c8e-fca32e0278c5) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptRemoveContextFunction
[BCryptResolveProviders](http://msdn2.microsoft.com/en-us/library/cf30f635-4918-4911-9db0-df90d26a2f1a) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptResolveProviders
[BCryptSecretAgreement](http://msdn2.microsoft.com/en-us/library/96863d81-3643-4962-8abf-db1cc2acde07) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptSecretAgreement
[BCryptSetContextFunctionProperty](http://msdn2.microsoft.com/en-us/library/1e02720b-5210-4127-ab9e-24532a764795) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptSetContextFunctionProperty
[BCryptSetProperty](http://msdn2.microsoft.com/en-us/library/687f3410-d28b-4ce2-a2a1-c564f757c668) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptSetProperty
[BCryptSignHash](http://msdn2.microsoft.com/en-us/library/f402ea9e-89ae-4ccc-9591-aa2328287c0e) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptSignHash
[BCryptUnregisterConfigChangeNotify](http://msdn2.microsoft.com/en-us/library/bb394683) | bcrypt.dll | Bcrypt.h | Vanara.PInvoke.BCrypt.BCryptUnregisterConfigChangeNotify
[BCryptVerifySignature](http://msdn2.microsoft.com/en-us/library/95c32056-e444-441c-bbc1-c5ae82aba964) | bcrypt.dll | bcrypt.h | Vanara.PInvoke.BCrypt.BCryptVerifySignature
[CertAddCertificateContextToStore](https://www.google.com/search?num=5&q=CertAddCertificateContextToStore+site%3Amicrosoft.com) | crypt32.dll | |
[CertAddCertificateLinkToStore](https://www.google.com/search?num=5&q=CertAddCertificateLinkToStore+site%3Amicrosoft.com) | crypt32.dll | |
[CertAddCRLContextToStore](https://www.google.com/search?num=5&q=CertAddCRLContextToStore+site%3Amicrosoft.com) | crypt32.dll | |
@ -84,7 +137,6 @@ Native Method | Native DLL | Header | Managed Method
[CertIsRDNAttrsInCertificateName](https://www.google.com/search?num=5&q=CertIsRDNAttrsInCertificateName+site%3Amicrosoft.com) | crypt32.dll | |
[CertIsStrongHashToSign](https://www.google.com/search?num=5&q=CertIsStrongHashToSign+site%3Amicrosoft.com) | crypt32.dll | |
[CertIsValidCRLForCertificate](https://www.google.com/search?num=5&q=CertIsValidCRLForCertificate+site%3Amicrosoft.com) | crypt32.dll | |
[CertIsWeakHash](https://www.google.com/search?num=5&q=CertIsWeakHash+site%3Amicrosoft.com) | crypt32.dll | |
[CertNameToStr](https://www.google.com/search?num=5&q=CertNameToStrA+site%3Amicrosoft.com) | crypt32.dll | |
[CertOIDToAlgId](https://www.google.com/search?num=5&q=CertOIDToAlgId+site%3Amicrosoft.com) | crypt32.dll | |
[CertOpenServerOcspResponse](https://www.google.com/search?num=5&q=CertOpenServerOcspResponse+site%3Amicrosoft.com) | crypt32.dll | |
@ -121,8 +173,6 @@ Native Method | Native DLL | Header | Managed Method
[CertVerifyValidityNesting](https://www.google.com/search?num=5&q=CertVerifyValidityNesting+site%3Amicrosoft.com) | crypt32.dll | |
[CryptAcquireCertificatePrivateKey](https://www.google.com/search?num=5&q=CryptAcquireCertificatePrivateKey+site%3Amicrosoft.com) | crypt32.dll | |
[CryptBinaryToString](https://www.google.com/search?num=5&q=CryptBinaryToStringA+site%3Amicrosoft.com) | crypt32.dll | |
[CryptCloseAsyncHandle](https://www.google.com/search?num=5&q=CryptCloseAsyncHandle+site%3Amicrosoft.com) | crypt32.dll | |
[CryptCreateAsyncHandle](https://www.google.com/search?num=5&q=CryptCreateAsyncHandle+site%3Amicrosoft.com) | crypt32.dll | |
[CryptCreateKeyIdentifierFromCSP](https://www.google.com/search?num=5&q=CryptCreateKeyIdentifierFromCSP+site%3Amicrosoft.com) | crypt32.dll | |
[CryptDecodeMessage](https://www.google.com/search?num=5&q=CryptDecodeMessage+site%3Amicrosoft.com) | crypt32.dll | |
[CryptDecodeObject](https://www.google.com/search?num=5&q=CryptDecodeObject+site%3Amicrosoft.com) | crypt32.dll | |
@ -135,7 +185,6 @@ Native Method | Native DLL | Header | Managed Method
[CryptEnumKeyIdentifierProperties](https://www.google.com/search?num=5&q=CryptEnumKeyIdentifierProperties+site%3Amicrosoft.com) | crypt32.dll | |
[CryptEnumOIDFunction](https://www.google.com/search?num=5&q=CryptEnumOIDFunction+site%3Amicrosoft.com) | crypt32.dll | |
[CryptEnumOIDInfo](https://www.google.com/search?num=5&q=CryptEnumOIDInfo+site%3Amicrosoft.com) | crypt32.dll | |
[CryptExportPKCS8](https://www.google.com/search?num=5&q=CryptExportPKCS8+site%3Amicrosoft.com) | crypt32.dll | |
[CryptExportPublicKeyInfo](https://www.google.com/search?num=5&q=CryptExportPublicKeyInfo+site%3Amicrosoft.com) | crypt32.dll | |
[CryptExportPublicKeyInfoEx](https://www.google.com/search?num=5&q=CryptExportPublicKeyInfoEx+site%3Amicrosoft.com) | crypt32.dll | |
[CryptExportPublicKeyInfoFromBCryptKeyHandle](https://www.google.com/search?num=5&q=CryptExportPublicKeyInfoFromBCryptKeyHandle+site%3Amicrosoft.com) | crypt32.dll | |
@ -144,7 +193,6 @@ Native Method | Native DLL | Header | Managed Method
[CryptFindOIDInfo](https://www.google.com/search?num=5&q=CryptFindOIDInfo+site%3Amicrosoft.com) | crypt32.dll | |
[CryptFormatObject](https://www.google.com/search?num=5&q=CryptFormatObject+site%3Amicrosoft.com) | crypt32.dll | |
[CryptFreeOIDFunctionAddress](https://www.google.com/search?num=5&q=CryptFreeOIDFunctionAddress+site%3Amicrosoft.com) | crypt32.dll | |
[CryptGetAsyncParam](https://www.google.com/search?num=5&q=CryptGetAsyncParam+site%3Amicrosoft.com) | crypt32.dll | |
[CryptGetDefaultOIDDllList](https://www.google.com/search?num=5&q=CryptGetDefaultOIDDllList+site%3Amicrosoft.com) | crypt32.dll | |
[CryptGetDefaultOIDFunctionAddress](https://www.google.com/search?num=5&q=CryptGetDefaultOIDFunctionAddress+site%3Amicrosoft.com) | crypt32.dll | |
[CryptGetKeyIdentifierProperty](https://www.google.com/search?num=5&q=CryptGetKeyIdentifierProperty+site%3Amicrosoft.com) | crypt32.dll | |
@ -157,14 +205,12 @@ Native Method | Native DLL | Header | Managed Method
[CryptHashMessage](https://www.google.com/search?num=5&q=CryptHashMessage+site%3Amicrosoft.com) | crypt32.dll | |
[CryptHashPublicKeyInfo](https://www.google.com/search?num=5&q=CryptHashPublicKeyInfo+site%3Amicrosoft.com) | crypt32.dll | |
[CryptHashToBeSigned](https://www.google.com/search?num=5&q=CryptHashToBeSigned+site%3Amicrosoft.com) | crypt32.dll | |
[CryptImportPKCS8](https://www.google.com/search?num=5&q=CryptImportPKCS8+site%3Amicrosoft.com) | crypt32.dll | |
[CryptImportPublicKeyInfo](https://www.google.com/search?num=5&q=CryptImportPublicKeyInfo+site%3Amicrosoft.com) | crypt32.dll | |
[CryptImportPublicKeyInfoEx](https://www.google.com/search?num=5&q=CryptImportPublicKeyInfoEx+site%3Amicrosoft.com) | crypt32.dll | |
[CryptImportPublicKeyInfoEx2](https://www.google.com/search?num=5&q=CryptImportPublicKeyInfoEx2+site%3Amicrosoft.com) | crypt32.dll | |
[CryptInitOIDFunctionSet](https://www.google.com/search?num=5&q=CryptInitOIDFunctionSet+site%3Amicrosoft.com) | crypt32.dll | |
[CryptInstallDefaultContext](https://www.google.com/search?num=5&q=CryptInstallDefaultContext+site%3Amicrosoft.com) | crypt32.dll | |
[CryptInstallOIDFunctionAddress](https://www.google.com/search?num=5&q=CryptInstallOIDFunctionAddress+site%3Amicrosoft.com) | crypt32.dll | |
[CryptLoadSip](https://www.google.com/search?num=5&q=CryptLoadSip+site%3Amicrosoft.com) | crypt32.dll | |
[CryptMemAlloc](https://www.google.com/search?num=5&q=CryptMemAlloc+site%3Amicrosoft.com) | crypt32.dll | |
[CryptMemFree](https://www.google.com/search?num=5&q=CryptMemFree+site%3Amicrosoft.com) | crypt32.dll | |
[CryptMemRealloc](https://www.google.com/search?num=5&q=CryptMemRealloc+site%3Amicrosoft.com) | crypt32.dll | |
@ -183,13 +229,6 @@ Native Method | Native DLL | Header | Managed Method
[CryptMsgUpdate](https://www.google.com/search?num=5&q=CryptMsgUpdate+site%3Amicrosoft.com) | crypt32.dll | |
[CryptMsgVerifyCountersignatureEncoded](https://www.google.com/search?num=5&q=CryptMsgVerifyCountersignatureEncoded+site%3Amicrosoft.com) | crypt32.dll | |
[CryptMsgVerifyCountersignatureEncodedEx](https://www.google.com/search?num=5&q=CryptMsgVerifyCountersignatureEncodedEx+site%3Amicrosoft.com) | crypt32.dll | |
[CryptObjectLocatorFree](https://www.google.com/search?num=5&q=CryptObjectLocatorFree+site%3Amicrosoft.com) | crypt32.dll | |
[CryptObjectLocatorGet](https://www.google.com/search?num=5&q=CryptObjectLocatorGet+site%3Amicrosoft.com) | crypt32.dll | |
[CryptObjectLocatorGetContent](https://www.google.com/search?num=5&q=CryptObjectLocatorGetContent+site%3Amicrosoft.com) | crypt32.dll | |
[CryptObjectLocatorGetUpdated](https://www.google.com/search?num=5&q=CryptObjectLocatorGetUpdated+site%3Amicrosoft.com) | crypt32.dll | |
[CryptObjectLocatorInitialize](https://www.google.com/search?num=5&q=CryptObjectLocatorInitialize+site%3Amicrosoft.com) | crypt32.dll | |
[CryptObjectLocatorIsChanged](https://www.google.com/search?num=5&q=CryptObjectLocatorIsChanged+site%3Amicrosoft.com) | crypt32.dll | |
[CryptObjectLocatorRelease](https://www.google.com/search?num=5&q=CryptObjectLocatorRelease+site%3Amicrosoft.com) | crypt32.dll | |
[CryptProtectData](https://www.google.com/search?num=5&q=CryptProtectData+site%3Amicrosoft.com) | crypt32.dll | |
[CryptProtectMemory](https://www.google.com/search?num=5&q=CryptProtectMemory+site%3Amicrosoft.com) | crypt32.dll | |
[CryptQueryObject](https://www.google.com/search?num=5&q=CryptQueryObject+site%3Amicrosoft.com) | crypt32.dll | |
@ -197,7 +236,6 @@ Native Method | Native DLL | Header | Managed Method
[CryptRegisterOIDFunction](https://www.google.com/search?num=5&q=CryptRegisterOIDFunction+site%3Amicrosoft.com) | crypt32.dll | |
[CryptRegisterOIDInfo](https://www.google.com/search?num=5&q=CryptRegisterOIDInfo+site%3Amicrosoft.com) | crypt32.dll | |
[CryptRetrieveTimeStamp](https://www.google.com/search?num=5&q=CryptRetrieveTimeStamp+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSetAsyncParam](https://www.google.com/search?num=5&q=CryptSetAsyncParam+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSetKeyIdentifierProperty](https://www.google.com/search?num=5&q=CryptSetKeyIdentifierProperty+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSetOIDFunctionValue](https://www.google.com/search?num=5&q=CryptSetOIDFunctionValue+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSignAndEncodeCertificate](https://www.google.com/search?num=5&q=CryptSignAndEncodeCertificate+site%3Amicrosoft.com) | crypt32.dll | |
@ -208,7 +246,6 @@ Native Method | Native DLL | Header | Managed Method
[CryptSIPAddProvider](https://www.google.com/search?num=5&q=CryptSIPAddProvider+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSIPCreateIndirectData](https://www.google.com/search?num=5&q=CryptSIPCreateIndirectData+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSIPGetCaps](https://www.google.com/search?num=5&q=CryptSIPGetCaps+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSIPGetSealedDigest](https://www.google.com/search?num=5&q=CryptSIPGetSealedDigest+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSIPGetSignedDataMsg](https://www.google.com/search?num=5&q=CryptSIPGetSignedDataMsg+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSIPLoad](https://www.google.com/search?num=5&q=CryptSIPLoad+site%3Amicrosoft.com) | crypt32.dll | |
[CryptSIPPutSignedDataMsg](https://www.google.com/search?num=5&q=CryptSIPPutSignedDataMsg+site%3Amicrosoft.com) | crypt32.dll | |
@ -233,21 +270,127 @@ Native Method | Native DLL | Header | Managed Method
[CryptVerifyMessageSignature](https://www.google.com/search?num=5&q=CryptVerifyMessageSignature+site%3Amicrosoft.com) | crypt32.dll | |
[CryptVerifyMessageSignatureWithKey](https://www.google.com/search?num=5&q=CryptVerifyMessageSignatureWithKey+site%3Amicrosoft.com) | crypt32.dll | |
[CryptVerifyTimeStampSignature](https://www.google.com/search?num=5&q=CryptVerifyTimeStampSignature+site%3Amicrosoft.com) | crypt32.dll | |
[I_CertWnfEnableFlushCache](https://www.google.com/search?num=5&q=I_CertWnfEnableFlushCache+site%3Amicrosoft.com) | crypt32.dll | |
[I_PFXDecrypt](https://www.google.com/search?num=5&q=I_PFXDecrypt+site%3Amicrosoft.com) | crypt32.dll | |
[I_PFXHMAC](https://www.google.com/search?num=5&q=I_PFXHMAC+site%3Amicrosoft.com) | crypt32.dll | |
[NCryptCloseProtectionDescriptor](http://msdn2.microsoft.com/en-us/library/523FD83E-85A3-4A0E-BA8D-2F27F82C1072) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptCloseProtectionDescriptor
[NCryptCreateClaim](https://www.google.com/search?num=5&q=NCryptCreateClaim+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptCreatePersistedKey](http://msdn2.microsoft.com/en-us/library/eeb1842f-fd9e-4edf-9db8-7b4e91760e9b) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptCreatePersistedKey
[NCryptCreateProtectionDescriptor](http://msdn2.microsoft.com/en-us/library/BA6B15AC-2CD8-4D9A-817F-65CF9C09D22C) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptCreateProtectionDescriptor
[NCryptDecrypt](https://www.google.com/search?num=5&q=NCryptDecrypt+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptDeleteKey](http://msdn2.microsoft.com/en-us/library/2e1958a7-51e0-4731-b4cf-a90d6c1f9ae0) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptDeleteKey
[NCryptDeriveKey](http://msdn2.microsoft.com/en-us/library/0ff08c6a-5f30-43ca-9db8-cda3e0704b0a) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptDeriveKey
[NCryptEncrypt](https://www.google.com/search?num=5&q=NCryptEncrypt+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptEnumAlgorithms](https://www.google.com/search?num=5&q=NCryptEnumAlgorithms+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptEnumKeys](https://www.google.com/search?num=5&q=NCryptEnumKeys+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptEnumStorageProviders](https://www.google.com/search?num=5&q=NCryptEnumStorageProviders+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptExportKey](http://msdn2.microsoft.com/en-us/library/1588eb29-4026-4d1c-8bee-a035df38444a) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptExportKey
[NCryptFinalizeKey](http://msdn2.microsoft.com/en-us/library/4386030d-4ce6-4b2e-adc5-a15ddc869349) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptFinalizeKey
[NCryptFreeBuffer](https://www.google.com/search?num=5&q=NCryptFreeBuffer+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptFreeObject](http://msdn2.microsoft.com/en-us/library/a5535cf9-ba8c-4212-badd-f1dc88903624) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptFreeObject
[NCryptGetProperty](https://www.google.com/search?num=5&q=NCryptGetProperty+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptGetProtectionDescriptorInfo](http://msdn2.microsoft.com/en-us/library/EF4777D5-E218-4868-8D25-58E0EF8C9D30) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptGetProtectionDescriptorInfo
[NCryptImportKey](http://msdn2.microsoft.com/en-us/library/ede0e7e0-cb2c-44c0-b724-58db3480b781) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptImportKey
[NCryptIsAlgSupported](https://www.google.com/search?num=5&q=NCryptIsAlgSupported+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptIsKeyHandle](https://www.google.com/search?num=5&q=NCryptIsKeyHandle+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptKeyDerivation](https://www.google.com/search?num=5&q=NCryptKeyDerivation+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptNotifyChangeKey](https://www.google.com/search?num=5&q=NCryptNotifyChangeKey+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptOpenKey](http://msdn2.microsoft.com/en-us/library/581c5d89-730d-4d8c-b3bb-a28edec25910) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptOpenKey
[NCryptOpenStorageProvider](http://msdn2.microsoft.com/en-us/library/febcf440-78b3-420b-b13d-030e8071cd50) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptOpenStorageProvider
[NCryptProtectSecret](http://msdn2.microsoft.com/en-us/library/8726F92B-34D5-4696-8803-3D7F50F1006D) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptProtectSecret
[NCryptQueryProtectionDescriptorName](http://msdn2.microsoft.com/en-us/library/32953AEC-01EE-4ED1-80F3-29963F43004F) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptQueryProtectionDescriptorName
[NCryptRegisterProtectionDescriptorName](http://msdn2.microsoft.com/en-us/library/DAB03CB2-630F-4BB3-93BD-06BE9126B1C4) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptRegisterProtectionDescriptorName
[NCryptSecretAgreement](http://msdn2.microsoft.com/en-us/library/b5bf3eac-1fae-43e2-84b6-e8e5e255d7c5) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptSecretAgreement
[NCryptSetProperty](http://msdn2.microsoft.com/en-us/library/ad1148aa-5f64-4867-9e17-6b41cc0c20b7) | ncrypt.dll | ncrypt.h | Vanara.PInvoke.NCrypt.NCryptSetProperty
[NCryptSignHash](https://www.google.com/search?num=5&q=NCryptSignHash+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptStreamClose](http://msdn2.microsoft.com/en-us/library/770640F2-04C7-4512-8004-41F4ECDC110E) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptStreamClose
[NCryptStreamOpenToProtect](http://msdn2.microsoft.com/en-us/library/7DE74BB1-1B84-4721-BE4A-4D2661E93E00) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptStreamOpenToProtect
[NCryptStreamOpenToUnprotect](http://msdn2.microsoft.com/en-us/library/9848082E-EDDA-4DA1-9896-42EAF2ADFAB4) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptStreamOpenToUnprotect
[NCryptStreamOpenToUnprotectEx](http://msdn2.microsoft.com/en-us/library/8E607F4F-4A0F-4796-8F40-D232687815AF) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptStreamOpenToUnprotectEx
[NCryptStreamUpdate](http://msdn2.microsoft.com/en-us/library/417F9267-6055-489C-AF26-BEF5E17CB8B4) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptStreamUpdate
[NCryptTranslateHandle](https://www.google.com/search?num=5&q=NCryptTranslateHandle+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptUnprotectSecret](http://msdn2.microsoft.com/en-us/library/F532F0ED-36F4-47E3-B478-089CC083E5D1) | ncrypt.dll | ncryptprotect.h | Vanara.PInvoke.NCrypt.NCryptUnprotectSecret
[NCryptVerifyClaim](https://www.google.com/search?num=5&q=NCryptVerifyClaim+site%3Amicrosoft.com) | ncrypt.dll | |
[NCryptVerifySignature](https://www.google.com/search?num=5&q=NCryptVerifySignature+site%3Amicrosoft.com) | ncrypt.dll | |
[PFXExportCertStore](https://www.google.com/search?num=5&q=PFXExportCertStore+site%3Amicrosoft.com) | crypt32.dll | |
[PFXExportCertStore2](https://www.google.com/search?num=5&q=PFXExportCertStore2+site%3Amicrosoft.com) | crypt32.dll | |
[PFXExportCertStoreEx](https://www.google.com/search?num=5&q=PFXExportCertStoreEx+site%3Amicrosoft.com) | crypt32.dll | |
[PFXImportCertStore](https://www.google.com/search?num=5&q=PFXImportCertStore+site%3Amicrosoft.com) | crypt32.dll | |
[PFXIsPFXBlob](https://www.google.com/search?num=5&q=PFXIsPFXBlob+site%3Amicrosoft.com) | crypt32.dll | |
[PFXVerifyPassword](https://www.google.com/search?num=5&q=PFXVerifyPassword+site%3Amicrosoft.com) | crypt32.dll | |
[SslChangeNotify](https://www.google.com/search?num=5&q=SslChangeNotify+site%3Amicrosoft.com) | ncrypt.dll | |
[SslComputeClientAuthHash](https://www.google.com/search?num=5&q=SslComputeClientAuthHash+site%3Amicrosoft.com) | ncrypt.dll | |
[SslComputeEapKeyBlock](https://www.google.com/search?num=5&q=SslComputeEapKeyBlock+site%3Amicrosoft.com) | ncrypt.dll | |
[SslComputeFinishedHash](https://www.google.com/search?num=5&q=SslComputeFinishedHash+site%3Amicrosoft.com) | ncrypt.dll | |
[SslCreateClientAuthHash](https://www.google.com/search?num=5&q=SslCreateClientAuthHash+site%3Amicrosoft.com) | ncrypt.dll | |
[SslCreateEphemeralKey](https://www.google.com/search?num=5&q=SslCreateEphemeralKey+site%3Amicrosoft.com) | ncrypt.dll | |
[SslCreateHandshakeHash](https://www.google.com/search?num=5&q=SslCreateHandshakeHash+site%3Amicrosoft.com) | ncrypt.dll | |
[SslDecrementProviderReferenceCount](https://www.google.com/search?num=5&q=SslDecrementProviderReferenceCount+site%3Amicrosoft.com) | ncrypt.dll | |
[SslDecryptPacket](https://www.google.com/search?num=5&q=SslDecryptPacket+site%3Amicrosoft.com) | ncrypt.dll | |
[SslEncryptPacket](https://www.google.com/search?num=5&q=SslEncryptPacket+site%3Amicrosoft.com) | ncrypt.dll | |
[SslEnumCipherSuites](https://www.google.com/search?num=5&q=SslEnumCipherSuites+site%3Amicrosoft.com) | ncrypt.dll | |
[SslEnumProtocolProviders](https://www.google.com/search?num=5&q=SslEnumProtocolProviders+site%3Amicrosoft.com) | ncrypt.dll | |
[SslExportKey](https://www.google.com/search?num=5&q=SslExportKey+site%3Amicrosoft.com) | ncrypt.dll | |
[SslExportKeyingMaterial](https://www.google.com/search?num=5&q=SslExportKeyingMaterial+site%3Amicrosoft.com) | ncrypt.dll | |
[SslFreeBuffer](https://www.google.com/search?num=5&q=SslFreeBuffer+site%3Amicrosoft.com) | ncrypt.dll | |
[SslFreeObject](https://www.google.com/search?num=5&q=SslFreeObject+site%3Amicrosoft.com) | ncrypt.dll | |
[SslGenerateMasterKey](https://www.google.com/search?num=5&q=SslGenerateMasterKey+site%3Amicrosoft.com) | ncrypt.dll | |
[SslGenerateSessionKeys](https://www.google.com/search?num=5&q=SslGenerateSessionKeys+site%3Amicrosoft.com) | ncrypt.dll | |
[SslGetCipherSuitePRFHashAlgorithm](https://www.google.com/search?num=5&q=SslGetCipherSuitePRFHashAlgorithm+site%3Amicrosoft.com) | ncrypt.dll | |
[SslGetKeyProperty](https://www.google.com/search?num=5&q=SslGetKeyProperty+site%3Amicrosoft.com) | ncrypt.dll | |
[SslGetProviderProperty](https://www.google.com/search?num=5&q=SslGetProviderProperty+site%3Amicrosoft.com) | ncrypt.dll | |
[SslHashHandshake](https://www.google.com/search?num=5&q=SslHashHandshake+site%3Amicrosoft.com) | ncrypt.dll | |
[SslImportKey](https://www.google.com/search?num=5&q=SslImportKey+site%3Amicrosoft.com) | ncrypt.dll | |
[SslImportMasterKey](https://www.google.com/search?num=5&q=SslImportMasterKey+site%3Amicrosoft.com) | ncrypt.dll | |
[SslIncrementProviderReferenceCount](https://www.google.com/search?num=5&q=SslIncrementProviderReferenceCount+site%3Amicrosoft.com) | ncrypt.dll | |
[SslLookupCipherLengths](https://www.google.com/search?num=5&q=SslLookupCipherLengths+site%3Amicrosoft.com) | ncrypt.dll | |
[SslLookupCipherSuiteInfo](https://www.google.com/search?num=5&q=SslLookupCipherSuiteInfo+site%3Amicrosoft.com) | ncrypt.dll | |
[SslOpenPrivateKey](https://www.google.com/search?num=5&q=SslOpenPrivateKey+site%3Amicrosoft.com) | ncrypt.dll | |
[SslOpenProvider](https://www.google.com/search?num=5&q=SslOpenProvider+site%3Amicrosoft.com) | ncrypt.dll | |
[SslSignHash](https://www.google.com/search?num=5&q=SslSignHash+site%3Amicrosoft.com) | ncrypt.dll | |
[SslVerifySignature](https://www.google.com/search?num=5&q=SslVerifySignature+site%3Amicrosoft.com) | ncrypt.dll | |
[TokenBindingDeleteAllBindings](http://msdn2.microsoft.com/en-us/library/0446F62F-96B4-4F4B-9789-0CD12173E601) | tokenbinding.dll | tokenbinding.h | Vanara.PInvoke.TokenBinding.TokenBindingDeleteAllBindings
[TokenBindingDeleteBinding](http://msdn2.microsoft.com/en-us/library/4258CC92-580E-403C-9AE4-4BB726255464) | tokenbinding.dll | tokenbinding.h | Vanara.PInvoke.TokenBinding.TokenBindingDeleteBinding
[TokenBindingGenerateBinding](http://msdn2.microsoft.com/en-us/library/4289E3F0-17AC-485B-A326-2C8BECD5CABB) | tokenbinding.dll | tokenbinding.h | Vanara.PInvoke.TokenBinding.TokenBindingGenerateBinding
[TokenBindingGenerateID](http://msdn2.microsoft.com/en-us/library/F3E30DF8-2A1D-445E-914B-62999428BB6F) | tokenbinding.dll | tokenbinding.h | Vanara.PInvoke.TokenBinding.TokenBindingGenerateID
[TokenBindingGenerateMessage](http://msdn2.microsoft.com/en-us/library/7A268C6D-952B-482A-835D-89D6452D986D) | tokenbinding.dll | tokenbinding.h | Vanara.PInvoke.TokenBinding.TokenBindingGenerateMessage
[TokenBindingGetKeyTypesClient](http://msdn2.microsoft.com/en-us/library/583687B6-5A87-4616-A5EE-4FECFF06749E) | tokenbinding.dll | tokenbinding.h | Vanara.PInvoke.TokenBinding.TokenBindingGetKeyTypesClient
[TokenBindingGetKeyTypesServer](http://msdn2.microsoft.com/en-us/library/8ABAC0AF-AF68-4742-9C36-3FB17D303409) | tokenbinding.dll | tokenbinding.h | Vanara.PInvoke.TokenBinding.TokenBindingGetKeyTypesServer
[TokenBindingVerifyMessage](http://msdn2.microsoft.com/en-us/library/D6827DA3-75DC-4F31-B57A-4ED5B5F03112) | tokenbinding.dll | tokenbinding.h | Vanara.PInvoke.TokenBinding.TokenBindingVerifyMessage
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[CERT_CONTEXT](https://www.google.com/search?num=5&q=CERT_CONTEXT+site%3Amicrosoft.com) | | Vanara.PInvoke.Crypt32+CERT_CONTEXT
[CERT_EXTENSION](https://www.google.com/search?num=5&q=CERT_EXTENSION+site%3Amicrosoft.com) | | Vanara.PInvoke.Crypt32+CERT_EXTENSION
[CERT_INFO](https://www.google.com/search?num=5&q=CERT_INFO+site%3Amicrosoft.com) | | Vanara.PInvoke.Crypt32+CERT_INFO
[CERT_PUBLIC_KEY_INFO](https://www.google.com/search?num=5&q=CERT_PUBLIC_KEY_INFO+site%3Amicrosoft.com) | | Vanara.PInvoke.Crypt32+CERT_PUBLIC_KEY_INFO
[CRYPT_ALGORITHM_IDENTIFIER](https://www.google.com/search?num=5&q=CRYPT_ALGORITHM_IDENTIFIER+site%3Amicrosoft.com) | | Vanara.PInvoke.Crypt32+CRYPT_ALGORITHM_IDENTIFIER
[CRYPTOAPI_BLOB](https://www.google.com/search?num=5&q=CRYPTOAPI_BLOB+site%3Amicrosoft.com) | | Vanara.PInvoke.Crypt32+CRYPTOAPI_BLOB
[BCRYPT_ALG_HANDLE](https://www.google.com/search?num=5&q=BCRYPT_ALG_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.BCrypt+BCRYPT_ALG_HANDLE
[BCRYPT_ALGORITHM_IDENTIFIER](http://msdn2.microsoft.com/en-us/library/a49a21c9-5668-4709-b52a-f6cacd944845) | bcrypt.h | Vanara.PInvoke.BCrypt+BCRYPT_ALGORITHM_IDENTIFIER
[BCRYPT_HANDLE](https://www.google.com/search?num=5&q=BCRYPT_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.BCrypt+BCRYPT_HANDLE
[BCRYPT_HASH_HANDLE](https://www.google.com/search?num=5&q=BCRYPT_HASH_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.BCrypt+BCRYPT_HASH_HANDLE
[BCRYPT_KEY_HANDLE](https://www.google.com/search?num=5&q=BCRYPT_KEY_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.BCrypt+BCRYPT_KEY_HANDLE
[BCRYPT_MULTI_HASH_OPERATION](http://msdn2.microsoft.com/en-us/library/B0418A07-D2EE-4346-9971-676C8FB08FAA) | bcrypt.h | Vanara.PInvoke.BCrypt+BCRYPT_MULTI_HASH_OPERATION
[BCRYPT_OAEP_PADDING_INFO](http://msdn2.microsoft.com/en-us/library/19f48f2d-e952-4a01-8112-f298c79919b2) | bcrypt.h | Vanara.PInvoke.BCrypt+BCRYPT_OAEP_PADDING_INFO
[BCRYPT_PKCS1_PADDING_INFO](http://msdn2.microsoft.com/en-us/library/920fa461-5b7e-4429-972d-e7c83fb62c64) | bcrypt.h | Vanara.PInvoke.BCrypt+BCRYPT_PKCS1_PADDING_INFO
[BCRYPT_PROVIDER_NAME](http://msdn2.microsoft.com/en-us/library/0c57aa3f-1d9a-4bb2-b142-bce9c054e658) | bcrypt.h | Vanara.PInvoke.BCrypt+BCRYPT_PROVIDER_NAME
[BCRYPT_PSS_PADDING_INFO](http://msdn2.microsoft.com/en-us/library/28605b34-b1e1-4460-a8f0-b0fe9f9b94d4) | bcrypt.h | Vanara.PInvoke.BCrypt+BCRYPT_PSS_PADDING_INFO
[BCRYPT_SECRET_HANDLE](https://www.google.com/search?num=5&q=BCRYPT_SECRET_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.BCrypt+BCRYPT_SECRET_HANDLE
[CERT_CONTEXT](https://www.google.com/search?num=5&q=CERT_CONTEXT+site%3Amicrosoft.com) | wincrypt.h | Vanara.PInvoke.Crypt32+CERT_CONTEXT
[CERT_EXTENSION](https://www.google.com/search?num=5&q=CERT_EXTENSION+site%3Amicrosoft.com) | wincrypt.h | Vanara.PInvoke.Crypt32+CERT_EXTENSION
[CERT_INFO](https://www.google.com/search?num=5&q=CERT_INFO+site%3Amicrosoft.com) | wincrypt.h | Vanara.PInvoke.Crypt32+CERT_INFO
[CERT_PUBLIC_KEY_INFO](https://www.google.com/search?num=5&q=CERT_PUBLIC_KEY_INFO+site%3Amicrosoft.com) | wincrypt.h | Vanara.PInvoke.Crypt32+CERT_PUBLIC_KEY_INFO
[CRYPT_ALGORITHM_IDENTIFIER](https://www.google.com/search?num=5&q=CRYPT_ALGORITHM_IDENTIFIER+site%3Amicrosoft.com) | wincrypt.h | Vanara.PInvoke.Crypt32+CRYPT_ALGORITHM_IDENTIFIER
[CRYPT_CONTEXT_CONFIG](http://msdn2.microsoft.com/en-us/library/3e07b7ae-84ef-4b77-bd49-d96906eaa4f8) | bcrypt.h | Vanara.PInvoke.BCrypt+CRYPT_CONTEXT_CONFIG
[CRYPT_CONTEXT_FUNCTION_CONFIG](http://msdn2.microsoft.com/en-us/library/53026095-c871-4027-ac7d-428f1cb4aafe) | bcrypt.h | Vanara.PInvoke.BCrypt+CRYPT_CONTEXT_FUNCTION_CONFIG
[CRYPT_CONTEXT_FUNCTION_PROVIDERS](http://msdn2.microsoft.com/en-us/library/5e175ac2-38eb-44c4-a01a-fb436e833546) | bcrypt.h | Vanara.PInvoke.BCrypt+CRYPT_CONTEXT_FUNCTION_PROVIDERS
[CRYPT_CONTEXT_FUNCTIONS](http://msdn2.microsoft.com/en-us/library/c576f39c-a03a-47aa-90b7-500736070c6f) | bcrypt.h | Vanara.PInvoke.BCrypt+CRYPT_CONTEXT_FUNCTIONS
[CRYPT_CONTEXTS](http://msdn2.microsoft.com/en-us/library/a1b60660-a4c5-4880-8cd4-48d8717c77c3) | bcrypt.h | Vanara.PInvoke.BCrypt+CRYPT_CONTEXTS
[CRYPT_PROVIDERS](http://msdn2.microsoft.com/en-us/library/aef0e173-d3df-466e-ac2a-c686cae5edc9) | bcrypt.h | Vanara.PInvoke.BCrypt+CRYPT_PROVIDERS
[CRYPTOAPI_BLOB](https://www.google.com/search?num=5&q=CRYPTOAPI_BLOB+site%3Amicrosoft.com) | wincrypt.h | Vanara.PInvoke.Crypt32+CRYPTOAPI_BLOB
[NCRYPT_ALLOC_PARA](http://msdn2.microsoft.com/en-us/library/4F546F51-E4DE-4703-B1D1-F84165C3C31B) | ncrypt.h | Vanara.PInvoke.NCrypt+NCRYPT_ALLOC_PARA
[NCRYPT_DESCRIPTOR_HANDLE](https://www.google.com/search?num=5&q=NCRYPT_DESCRIPTOR_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.NCrypt+NCRYPT_DESCRIPTOR_HANDLE
[NCRYPT_HANDLE](https://www.google.com/search?num=5&q=NCRYPT_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.NCrypt+NCRYPT_HANDLE
[NCRYPT_KEY_HANDLE](https://www.google.com/search?num=5&q=NCRYPT_KEY_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.NCrypt+NCRYPT_KEY_HANDLE
[NCRYPT_PROTECT_STREAM_INFO](http://msdn2.microsoft.com/en-us/library/77FADFC1-6C66-4801-B0BD-263963555C3C) | ncryptprotect.h | Vanara.PInvoke.NCrypt+NCRYPT_PROTECT_STREAM_INFO
[NCRYPT_PROTECT_STREAM_INFO_EX](https://www.google.com/search?num=5&q=NCRYPT_PROTECT_STREAM_INFO_EX+site%3Amicrosoft.com) | ncryptprotect.h | Vanara.PInvoke.NCrypt+NCRYPT_PROTECT_STREAM_INFO_EX
[NCRYPT_PROV_HANDLE](https://www.google.com/search?num=5&q=NCRYPT_PROV_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.NCrypt+NCRYPT_PROV_HANDLE
[NCRYPT_SECRET_HANDLE](https://www.google.com/search?num=5&q=NCRYPT_SECRET_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.NCrypt+NCRYPT_SECRET_HANDLE
[NCRYPT_STREAM_HANDLE](https://www.google.com/search?num=5&q=NCRYPT_STREAM_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.NCrypt+NCRYPT_STREAM_HANDLE
[NCryptBuffer](http://msdn2.microsoft.com/en-us/library/474d3c0d-ae14-448a-a56d-25abc7e5de88) | bcrypt.h | Vanara.PInvoke.NCrypt+NCryptBuffer
[NCryptBufferDesc](http://msdn2.microsoft.com/en-us/library/aa375370) | Bcrypt.h | Vanara.PInvoke.NCrypt+NCryptBufferDesc
[TOKENBINDING_IDENTIFIER](http://msdn2.microsoft.com/en-us/library/301E099E-B621-41E1-BF9B-3AF8C53F9227) | tokenbinding.h | Vanara.PInvoke.TokenBinding+TOKENBINDING_IDENTIFIER
[TOKENBINDING_KEY_TYPES](http://msdn2.microsoft.com/en-us/library/E5029CE3-CD23-4566-A951-35374DC7BC57) | tokenbinding.h | Vanara.PInvoke.TokenBinding+TOKENBINDING_KEY_TYPES
[TOKENBINDING_RESULT_DATA](http://msdn2.microsoft.com/en-us/library/6C34E174-CCC4-451D-82C3-C410C8C92C8C) | tokenbinding.h | Vanara.PInvoke.TokenBinding+TOKENBINDING_RESULT_DATA
[TOKENBINDING_RESULT_LIST](http://msdn2.microsoft.com/en-us/library/D14CBEA3-5F46-4C45-8C11-407D6E70FD56) | tokenbinding.h | Vanara.PInvoke.TokenBinding+TOKENBINDING_RESULT_LIST

View File

@ -8,11 +8,22 @@ namespace Vanara.PInvoke
/// <summary>Methods and data types found in Crypt32.dll.</summary>
public static partial class Crypt32
{
/// <summary>Private key pair type.</summary>
[PInvokeData("wincrypt.h")]
public enum PrivateKeyType
{
/// <summary>Key exchange</summary>
AT_KEYEXCHANGE = 1,
/// <summary>Digital signature</summary>
AT_SIGNATURE = 2
}
/// <summary>
/// The CERT_CONTEXT structure contains both the encoded and decoded representations of a certificate. A certificate context returned
/// by one of the functions defined in Wincrypt.h must be freed by calling the CertFreeCertificateContext function. The
/// CertDuplicateCertificateContext function can be called to make a duplicate copy (which also must be freed by calling CertFreeCertificateContext).
/// </summary>
[PInvokeData("wincrypt.h")]
[StructLayout(LayoutKind.Sequential)]
public struct CERT_CONTEXT
{
@ -39,6 +50,7 @@ namespace Vanara.PInvoke
/// The CERT_EXTENSION structure contains the extension information for a certificate, Certificate Revocation List (CRL) or
/// Certificate Trust List (CTL).
/// </summary>
[PInvokeData("wincrypt.h")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct CERT_EXTENSION
{
@ -63,6 +75,7 @@ namespace Vanara.PInvoke
}
/// <summary>The CERT_INFO structure contains the information of a certificate.</summary>
[PInvokeData("wincrypt.h")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct CERT_INFO
{
@ -126,6 +139,7 @@ namespace Vanara.PInvoke
}
/// <summary>The CERT_PUBLIC_KEY_INFO structure contains a public key and its algorithm.</summary>
[PInvokeData("wincrypt.h")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct CERT_PUBLIC_KEY_INFO
{
@ -141,6 +155,7 @@ namespace Vanara.PInvoke
/// identifier (OID) of the algorithm and any needed parameters for that algorithm. The parameters contained in its CRYPT_OBJID_BLOB
/// are encoded.
/// </summary>
[PInvokeData("wincrypt.h")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct CRYPT_ALGORITHM_IDENTIFIER
{
@ -158,6 +173,7 @@ namespace Vanara.PInvoke
/// The BLOB structure contains an arbitrary array of bytes. The structure definition includes aliases appropriate to the various
/// functions that use it.
/// </summary>
[PInvokeData("wincrypt.h")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct CRYPTOAPI_BLOB
{
@ -167,5 +183,210 @@ namespace Vanara.PInvoke
/// <summary>A pointer to the data buffer.</summary>
public IntPtr pbData;
}
/*CertAddCertificateContextToStore
CertAddCertificateLinkToStore
CertAddCRLContextToStore
CertAddCRLLinkToStore
CertAddCTLContextToStore
CertAddCTLLinkToStore
CertAddEncodedCertificateToStore
CertAddEncodedCertificateToSystemStore
CertAddEncodedCRLToStore
CertAddEncodedCTLToStore
CertAddEnhancedKeyUsageIdentifier
CertAddRefServerOcspResponse
CertAddRefServerOcspResponseContext
CertAddSerializedElementToStore
CertAddStoreToCollection
CertAlgIdToOID
CertCloseServerOcspResponse
CertCloseStore
CertCompareCertificate
CertCompareCertificateName
CertCompareIntegerBlob
CertComparePublicKeyInfo
CertControlStore
CertCreateCertificateChainEngine
CertCreateCertificateContext
CertCreateContext
CertCreateCRLContext
CertCreateCTLContext
CertCreateCTLEntryFromCertificateContextProperties
CertCreateSelfSignCertificate
CertDeleteCertificateFromStore
CertDeleteCRLFromStore
CertDeleteCTLFromStore
CertDuplicateCertificateChain
CertDuplicateCertificateContext
CertDuplicateCRLContext
CertDuplicateCTLContext
CertDuplicateStore
CertEnumCertificateContextProperties
CertEnumCertificatesInStore
CertEnumCRLContextProperties
CertEnumCRLsInStore
CertEnumCTLContextProperties
CertEnumCTLsInStore
CertEnumPhysicalStore
CertEnumSubjectInSortedCTL
CertEnumSystemStore
CertEnumSystemStoreLocation
CertFindAttribute
CertFindCertificateInCRL
CertFindCertificateInStore
CertFindChainInStore
CertFindCRLInStore
CertFindCTLInStore
CertFindExtension
CertFindRDNAttr
CertFindSubjectInCTL
CertFindSubjectInSortedCTL
CertFreeCertificateChain
CertFreeCertificateChainEngine
CertFreeCertificateChainList
CertFreeCertificateContext
CertFreeCRLContext
CertFreeCTLContext
CertFreeServerOcspResponseContext
CertGetCertificateChain
CertGetCertificateContextProperty
CertGetCRLContextProperty
CertGetCRLFromStore
CertGetCTLContextProperty
CertGetEnhancedKeyUsage
CertGetIntendedKeyUsage
CertGetIssuerCertificateFromStore
CertGetNameString
CertGetPublicKeyLength
CertGetServerOcspResponseContext
CertGetStoreProperty
CertGetSubjectCertificateFromStore
CertGetValidUsages
CertIsRDNAttrsInCertificateName
CertIsStrongHashToSign
CertIsValidCRLForCertificate
CertNameToStr
CertOIDToAlgId
CertOpenServerOcspResponse
CertOpenStore
CertOpenSystemStore
CertRDNValueToStr
CertRegisterPhysicalStore
CertRegisterSystemStore
CertRemoveEnhancedKeyUsageIdentifier
CertRemoveStoreFromCollection
CertResyncCertificateChainEngine
CertRetrieveLogoOrBiometricInfo
CertSaveStore
CertSelectCertificateChains
CertSerializeCertificateStoreElement
CertSerializeCRLStoreElement
CertSerializeCTLStoreElement
CertSetCertificateContextPropertiesFromCTLEntry
CertSetCertificateContextProperty
CertSetCRLContextProperty
CertSetCTLContextProperty
CertSetEnhancedKeyUsage
CertSetStoreProperty
CertStrToName
CertUnregisterPhysicalStore
CertUnregisterSystemStore
CertVerifyCertificateChainPolicy
CertVerifyCRLRevocation
CertVerifyCRLTimeValidity
CertVerifyCTLUsage
CertVerifyRevocation
CertVerifySubjectCertificateContext
CertVerifyTimeValidity
CertVerifyValidityNesting
CryptAcquireCertificatePrivateKey
CryptBinaryToString
CryptCreateKeyIdentifierFromCSP
CryptDecodeMessage
CryptDecodeObject
CryptDecodeObjectEx
CryptDecryptAndVerifyMessageSignature
CryptDecryptMessage
CryptEncodeObject
CryptEncodeObjectEx
CryptEncryptMessage
CryptEnumKeyIdentifierProperties
CryptEnumOIDFunction
CryptEnumOIDInfo
CryptExportPublicKeyInfo
CryptExportPublicKeyInfoEx
CryptExportPublicKeyInfoFromBCryptKeyHandle
CryptFindCertificateKeyProvInfo
CryptFindLocalizedName
CryptFindOIDInfo
CryptFormatObject
CryptFreeOIDFunctionAddress
CryptGetDefaultOIDDllList
CryptGetDefaultOIDFunctionAddress
CryptGetKeyIdentifierProperty
CryptGetMessageCertificates
CryptGetMessageSignerCount
CryptGetOIDFunctionAddress
CryptGetOIDFunctionValue
CryptHashCertificate
CryptHashCertificate2
CryptHashMessage
CryptHashPublicKeyInfo
CryptHashToBeSigned
CryptImportPublicKeyInfo
CryptImportPublicKeyInfoEx
CryptImportPublicKeyInfoEx2
CryptInitOIDFunctionSet
CryptInstallDefaultContext
CryptInstallOIDFunctionAddress
CryptMemAlloc
CryptMemFree
CryptMemRealloc
CryptMsgCalculateEncodedLength
CryptMsgClose
CryptMsgControl
CryptMsgCountersign
CryptMsgCountersignEncoded
CryptMsgDuplicate
CryptMsgEncodeAndSignCTL
CryptMsgGetAndVerifySigner
CryptMsgGetParam
CryptMsgOpenToDecode
CryptMsgOpenToEncode
CryptMsgSignCTL
CryptMsgUpdate
CryptMsgVerifyCountersignatureEncoded
CryptMsgVerifyCountersignatureEncodedEx
CryptQueryObject
CryptRegisterDefaultOIDFunction
CryptRegisterOIDFunction
CryptRegisterOIDInfo
CryptRetrieveTimeStamp
CryptSetKeyIdentifierProperty
CryptSetOIDFunctionValue
CryptSignAndEncodeCertificate
CryptSignAndEncryptMessage
CryptSignCertificate
CryptSignMessage
CryptSignMessageWithKey
CryptStringToBinary
CryptUninstallDefaultContext
CryptUnregisterDefaultOIDFunction
CryptUnregisterOIDFunction
CryptUnregisterOIDInfo
CryptVerifyCertificateSignature
CryptVerifyCertificateSignatureEx
CryptVerifyDetachedMessageHash
CryptVerifyDetachedMessageSignature
CryptVerifyMessageHash
CryptVerifyMessageSignature
CryptVerifyMessageSignatureWithKey
CryptVerifyTimeStampSignature
PFXExportCertStore
PFXExportCertStoreEx
PFXImportCertStore
PFXIsPFXBlob
PFXVerifyPassword*/
}
}

View File

@ -0,0 +1,7 @@
/*
CryptProtectData
CryptProtectMemory
CryptUnprotectData
CryptUnprotectMemory
CryptUpdateProtectedState
*/

View File

@ -0,0 +1,13 @@
/*
CryptSIPAddProvider
CryptSIPCreateIndirectData
CryptSIPGetCaps
CryptSIPGetSignedDataMsg
CryptSIPLoad
CryptSIPPutSignedDataMsg
CryptSIPRemoveProvider
CryptSIPRemoveSignedDataMsg
CryptSIPRetrieveSubjectGuid
CryptSIPRetrieveSubjectGuidForCatalogFile
CryptSIPVerifyIndirectData
*/

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
using System;
using System.Linq;
using System.Runtime.InteropServices;
using Vanara.Extensions;
using Vanara.InteropServices;
namespace Vanara.PInvoke
{
/// <summary>Methods and data types found in NCrypt.dll.</summary>
public static partial class NCrypt
{
/*
SslChangeNotify
SslComputeClientAuthHash
SslComputeEapKeyBlock
SslComputeFinishedHash
SslCreateClientAuthHash
SslCreateEphemeralKey
SslCreateHandshakeHash
SslDecrementProviderReferenceCount
SslDecryptPacket
SslEncryptPacket
SslEnumCipherSuites
SslEnumProtocolProviders
SslExportKey
SslExportKeyingMaterial
SslFreeBuffer
SslFreeObject
SslGenerateMasterKey
SslGenerateSessionKeys
SslGetCipherSuitePRFHashAlgorithm
SslGetKeyProperty
SslGetProviderProperty
SslHashHandshake
SslImportKey
SslImportMasterKey
SslIncrementProviderReferenceCount
SslLookupCipherLengths
SslLookupCipherSuiteInfo
SslOpenPrivateKey
SslOpenProvider
SslSignHash
SslVerifySignature
*/
}
}

View File

@ -0,0 +1,426 @@
using System;
using System.Runtime.InteropServices;
namespace Vanara.PInvoke
{
/// <summary>Methods and data types found in TokenBinding.dll.</summary>
public static partial class TokenBinding
{
/// <summary>
/// <para>Specifies the formats that are available to interpret extension data.</para>
/// </summary>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/ne-tokenbinding-tokenbinding_extension_format typedef enum
// TOKENBINDING_EXTENSION_FORMAT { TOKENBINDING_EXTENSION_FORMAT_UNDEFINED } ;
[PInvokeData("tokenbinding.h", MSDNShortId = "EBF14890-3F7D-4814-93E1-570E81E05DF2")]
public enum TOKENBINDING_EXTENSION_FORMAT
{
/// <summary>The format for interpreting the extension data is undefined.</summary>
TOKENBINDING_EXTENSION_FORMAT_UNDEFINED,
}
/// <summary>Undocumented.</summary>
public enum TOKENBINDING_KEY_PARAMETERS_TYPE
{
/// <summary>Undocumented.</summary>
TOKENBINDING_KEY_PARAMETERS_TYPE_RSA2048_PKCS = 0,
/// <summary>Undocumented.</summary>
TOKENBINDING_KEY_PARAMETERS_TYPE_RSA2048_PSS = 1,
/// <summary>Undocumented.</summary>
TOKENBINDING_KEY_PARAMETERS_TYPE_ECDSAP256 = 2,
}
/// <summary>
/// <para>Specifies the possible types for a token binding.</para>
/// </summary>
/// <remarks>
/// <para>
/// More information about the use of these Token Binding types can be found in the <c>Token Binding over HTTP Internet</c> draft.
/// </para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/ne-tokenbinding-tokenbinding_type typedef enum TOKENBINDING_TYPE
// { TOKENBINDING_TYPE_PROVIDED, TOKENBINDING_TYPE_REFERRED } ;
[PInvokeData("tokenbinding.h", MSDNShortId = "7F126B3E-1033-4C0A-AD5F-0FAD951C85C6")]
public enum TOKENBINDING_TYPE
{
/// <summary>
/// This type of Token Binding is used to protect tokens issued by the Identity Provider for the client to present with
/// subsequent requests back to this Identity Provider.
/// </summary>
TOKENBINDING_TYPE_PROVIDED,
/// <summary>
/// This type of Token Binding is used to protect tokens issued by the Identity Provider for the client to present to a Relying Party.
/// </summary>
TOKENBINDING_TYPE_REFERRED,
}
/// <summary>
/// <para>Deletes all token binding keys that are associated with the calling user or app container.</para>
/// </summary>
/// <returns>
/// <para>Returns a status code that indicates the success or failure of the function.</para>
/// </returns>
/// <remarks>
/// <para>You can call <c>TokenBindingDeleteAllBindings</c> from user mode.</para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/nf-tokenbinding-tokenbindingdeleteallbindings SECURITY_STATUS
// TokenBindingDeleteAllBindings( );
[DllImport(Lib.Tokenbinding, SetLastError = false, ExactSpelling = true)]
[PInvokeData("tokenbinding.h", MSDNShortId = "0446F62F-96B4-4F4B-9789-0CD12173E601")]
public static extern HRESULT TokenBindingDeleteAllBindings();
/// <summary>
/// <para>Deletes the token binding key that is associated with the specified target string.</para>
/// </summary>
/// <param name="targetURL">
/// <para>The target string for which <c>TokenBindingDeleteBinding</c> should delete the associated token binding key.</para>
/// </param>
/// <returns>
/// <para>Returns a status code that indicates the success or failure of the function.</para>
/// </returns>
/// <remarks>
/// <para>You can call <c>TokenBindingDeleteBinding</c> from user mode.</para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/nf-tokenbinding-tokenbindingdeletebinding SECURITY_STATUS
// TokenBindingDeleteBinding( PCWSTR targetURL );
[DllImport(Lib.Tokenbinding, SetLastError = false, ExactSpelling = true)]
[PInvokeData("tokenbinding.h", MSDNShortId = "4258CC92-580E-403C-9AE4-4BB726255464")]
public static extern HRESULT TokenBindingDeleteBinding([MarshalAs(UnmanagedType.LPWStr)] string targetURL);
/// <summary>
/// <para>
/// Constructs one token binding that contains the exported public key and signature by using the specified key type for the token
/// binding, a target identifier string for creating and retrieving the token binding key, and the unique data. This function also
/// returns the token binding identifier, if needed.
/// </para>
/// </summary>
/// <param name="keyType">
/// <para>
/// The negotiated key type to use. Use a value from the list of key types that you retrieved by calling the
/// TokenBindingGetKeyTypesClient function.
/// </para>
/// </param>
/// <param name="targetURL">
/// <para>
/// The target string to use in conjunction with the key type to generate or retrieve a token binding key for the NCrypt operations
/// that build the buffer for the tokenBinding parameter.
/// </para>
/// </param>
/// <param name="bindingType">
/// <para>The type of token binding that <c>TokenBindingGenerateBinding</c> should generate.</para>
/// </param>
/// <param name="tlsEKM">
/// <para>A pointer to the buffer that contains unique data.</para>
/// </param>
/// <param name="tlsEKMSize">
/// <para>The size of the buffer that the tlsUnique parameter points to, in bytes.</para>
/// </param>
/// <param name="extensionFormat">
/// <para>The format to use to interpret the data in the extensionData parameter. This value must be <c>TOKENBINDING_EXTENSION_FORMAT_UNDEFINED</c>.</para>
/// </param>
/// <param name="extensionData">
/// <para>
/// A pointer to a buffer that contains extension data. The value of the extensionFormat parameter determines how to interpret this data.
/// </para>
/// </param>
/// <param name="tokenBinding">
/// <para>
/// A pointer that receives the address of the token binding buffer. Use the HeapAlloc function to allocate the memory for this
/// buffer, and the HeapFree function to free that memory.
/// </para>
/// </param>
/// <param name="tokenBindingSize">
/// <para>Pointer to a variable that receives the size of the buffer allocated for the tokenBinding parameter, in bytes.</para>
/// </param>
/// <param name="resultData">
/// <para>
/// A pointer that receives the address of the buffer that contains result data that includes the token binding identifier of the
/// token binding that <c>TokenBindingGenerateBinding</c> generates. Use the HeapAlloc function to allocate the memory for this
/// buffer, and the HeapFree function to free that memory. Specify NULL is you do not need this information.
/// </para>
/// </param>
/// <returns>
/// <para>Returns a status code that indicates the success or failure of the function.</para>
/// </returns>
/// <remarks>
/// <para>You can call <c>TokenBindingGenerateBinding</c> from user mode.</para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/nf-tokenbinding-tokenbindinggeneratebinding SECURITY_STATUS
// TokenBindingGenerateBinding( TOKENBINDING_KEY_PARAMETERS_TYPE keyType, PCWSTR targetURL, TOKENBINDING_TYPE bindingType, const void
// *tlsEKM, DWORD tlsEKMSize, TOKENBINDING_EXTENSION_FORMAT extensionFormat, const void *extensionData, void **tokenBinding, DWORD
// *tokenBindingSize, TOKENBINDING_RESULT_DATA **resultData );
[DllImport(Lib.Tokenbinding, SetLastError = false, ExactSpelling = true)]
[PInvokeData("tokenbinding.h", MSDNShortId = "4289E3F0-17AC-485B-A326-2C8BECD5CABB")]
public static extern HRESULT TokenBindingGenerateBinding(TOKENBINDING_KEY_PARAMETERS_TYPE keyType, [MarshalAs(UnmanagedType.LPWStr)] string targetURL, TOKENBINDING_TYPE bindingType, [In] IntPtr tlsEKM,
uint tlsEKMSize, TOKENBINDING_EXTENSION_FORMAT extensionFormat, [In] IntPtr extensionData, out IntPtr tokenBinding, out uint tokenBindingSize, out IntPtr resultData);
/// <summary>
/// <para>
/// Constructs the token binding identifier by extracting the signature algorithm from the key type and copying the exported public key.
/// </para>
/// </summary>
/// <param name="keyType">
/// <para>
/// The negotiated key type to use. Use a value from the list of key types that you retrieved by calling the
/// TokenBindingGetKeyTypesClient function.
/// </para>
/// </param>
/// <param name="publicKey">
/// <para>An exported public key blob.</para>
/// </param>
/// <param name="publicKeySize">
/// <para>The size of the exported public key blob.</para>
/// </param>
/// <param name="resultData">
/// <para>
/// A pointer that receives the address of the buffer that is allocated for the token binding result data. The token binding result
/// data contains the token binding identifier.
/// </para>
/// <para>Use the HeapAlloc function to allocate the memory for this buffer, and the HeapFree method to free that memory.</para>
/// </param>
/// <returns>
/// <para>Returns a status code that indicates the success or failure of the function.</para>
/// </returns>
/// <remarks>
/// <para>You can call <c>TokenBindingGenerateID</c> from user mode.</para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/nf-tokenbinding-tokenbindinggenerateid SECURITY_STATUS
// TokenBindingGenerateID( TOKENBINDING_KEY_PARAMETERS_TYPE keyType, const void *publicKey, DWORD publicKeySize,
// TOKENBINDING_RESULT_DATA **resultData );
[DllImport(Lib.Tokenbinding, SetLastError = false, ExactSpelling = true)]
[PInvokeData("tokenbinding.h", MSDNShortId = "F3E30DF8-2A1D-445E-914B-62999428BB6F")]
public static extern HRESULT TokenBindingGenerateID(TOKENBINDING_KEY_PARAMETERS_TYPE keyType, [In] IntPtr publicKey, uint publicKeySize, out IntPtr resultData);
/// <summary>
/// <para>Assembles the list of token bindings and generates the final message for the client device to the server.</para>
/// </summary>
/// <param name="tokenBindings">
/// <para>Pointer to an array of token binding structures.</para>
/// </param>
/// <param name="tokenBindingsSize">
/// <para>
/// An array that contains the sizes of the corresponding token binding structures that the array in the tokenBindings parameter
/// contains, in bytes.
/// </para>
/// </param>
/// <param name="tokenBindingsCount">
/// <para>The number of elements that the array in the tokenBindings parameter contains. This value cannot be 0.</para>
/// </param>
/// <param name="tokenBindingMessage">
/// <para>
/// A pointer that receives the address of the buffer that is allocated for the token binding message. Use the HeapAlloc function to
/// allocate the memory for this buffer, and the HeapFree method to free that memory.
/// </para>
/// </param>
/// <param name="tokenBindingMessageSize">
/// <para>A pointer to a variable that contains the size of the buffer allocated for the tokenBindingMessage parameter.</para>
/// </param>
/// <returns>
/// <para>Returns a status code that indicates the success or failure of the function.</para>
/// </returns>
/// <remarks>
/// <para>You can call <c>TokenBindingGenerateMessage</c> from user mode.</para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/nf-tokenbinding-tokenbindinggeneratemessage SECURITY_STATUS
// TokenBindingGenerateMessage( const void * [] tokenBindings, const DWORD [] tokenBindingsSize, DWORD tokenBindingsCount, void
// **tokenBindingMessage, DWORD *tokenBindingMessageSize );
[DllImport(Lib.Tokenbinding, SetLastError = false, ExactSpelling = true)]
[PInvokeData("tokenbinding.h", MSDNShortId = "7A268C6D-952B-482A-835D-89D6452D986D")]
public static extern HRESULT TokenBindingGenerateMessage([In] IntPtr[] tokenBindings, [In] uint[] tokenBindingsSize, uint tokenBindingsCount, out IntPtr tokenBindingMessage, out uint tokenBindingMessageSize);
/// <summary>
/// <para>Retrieves a list of the key types that the client device supports.</para>
/// </summary>
/// <param name="keyTypes">
/// <para>
/// A pointer to a buffer that contains the list of key types that the client device supports. <c>TokenBindingGetKeyTypesClient</c>
/// returns the string identifiers for well-known algorithms that correspond to the keys that the client device supports. Use
/// HeapAlloc to allocate the memory for the buffer, and HeapFree to free that memory.
/// </para>
/// </param>
/// <returns>
/// <para>Returns a status code that indicates the success or failure of the function.</para>
/// </returns>
/// <remarks>
/// <para>You can call <c>TokenBindingGetKeyTypesClient</c> from user mode.</para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/nf-tokenbinding-tokenbindinggetkeytypesclient SECURITY_STATUS
// TokenBindingGetKeyTypesClient( TOKENBINDING_KEY_TYPES **keyTypes );
[DllImport(Lib.Tokenbinding, SetLastError = false, ExactSpelling = true)]
[PInvokeData("tokenbinding.h", MSDNShortId = "583687B6-5A87-4616-A5EE-4FECFF06749E")]
public static extern HRESULT TokenBindingGetKeyTypesClient(out IntPtr keyTypes);
/// <summary>
/// <para>Retrieves a list of the key types that the server supports.</para>
/// </summary>
/// <param name="keyTypes">
/// <para>
/// A pointer to a buffer that contains the list of key types that the server supports. <c>TokenBindingGetKeyTypesServer</c> returns
/// the string identifiers for well-known algorithms that correspond to the keys that the server supports.
/// </para>
/// <para>
/// In user mode, use HeapAlloc to allocate the memory for the buffer, and HeapFree to free that memory. In kernel mode, use
/// ExAllocatePoolWithTag to allocate the memory for the buffer, and ExFreePool to free that memory.
/// </para>
/// </param>
/// <returns>
/// <para>Returns a status code that indicates the success or failure of the function.</para>
/// </returns>
/// <remarks>
/// <para>
/// You can call <c>TokenBindingGetKeyTypesServer</c> from both user mode and kernel mode. To call this function in kernel mode, link
/// to Ksecdd.sys, and use the functions mentioned in the description for the keyTypes parameter for allocating and freeing memory.
/// </para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/nf-tokenbinding-tokenbindinggetkeytypesserver SECURITY_STATUS
// TokenBindingGetKeyTypesServer( TOKENBINDING_KEY_TYPES **keyTypes );
[DllImport(Lib.Tokenbinding, SetLastError = false, ExactSpelling = true)]
[PInvokeData("tokenbinding.h", MSDNShortId = "8ABAC0AF-AF68-4742-9C36-3FB17D303409")]
public static extern HRESULT TokenBindingGetKeyTypesServer(out IntPtr keyTypes);
/// <summary>
/// <para>Validates the token binding message and verifies the token bindings that the message contains.</para>
/// </summary>
/// <param name="tokenBindingMessage">
/// <para>A pointer to the buffer that contains the token binding message.</para>
/// </param>
/// <param name="tokenBindingMessageSize">
/// <para>The size of the buffer that the tokenBindingMessage parameter points to, in bytes.</para>
/// </param>
/// <param name="keyType">
/// <para>
/// The negotiated key algorithm to use. Use a value from the list of key types that you retrieved by calling the
/// TokenBindingGetKeyTypesServer function.
/// </para>
/// </param>
/// <param name="tlsEKM">
/// <para>A pointer to a buffer that contains unique data.</para>
/// </param>
/// <param name="tlsEKMSize">
/// <para>The size of the buffer that the tlsUnique parameter points to, in bytes.</para>
/// </param>
/// <param name="resultList">
/// <para>
/// A pointer that receives the address for the buffer that contains the results for each of the token bindings that
/// <c>TokenBindingVerifyMessage</c> verifies.
/// </para>
/// <para>
/// In user mode, use HeapAlloc to allocate the memory for the buffer, and HeapFree to free that memory. In kernel mode, use
/// ExAllocatePoolWithTag to allocate the memory for the buffer, and ExFreePool to free that memory.
/// </para>
/// </param>
/// <returns>
/// <para>Returns a status code that indicates the success or failure of the function.</para>
/// </returns>
/// <remarks>
/// <para>
/// You can call <c>TokenBindingVerifyMessage</c> from both user mode and kernel mode. o call this function in kernel mode, link to
/// Ksecdd.sys, and use the functions mentioned in the description for the resultList parameter for allocating and freeing memory.
/// </para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/nf-tokenbinding-tokenbindingverifymessage SECURITY_STATUS
// TokenBindingVerifyMessage( const void *tokenBindingMessage, DWORD tokenBindingMessageSize, TOKENBINDING_KEY_PARAMETERS_TYPE
// keyType, const void *tlsEKM, DWORD tlsEKMSize, TOKENBINDING_RESULT_LIST **resultList );
[DllImport(Lib.Tokenbinding, SetLastError = false, ExactSpelling = true)]
[PInvokeData("tokenbinding.h", MSDNShortId = "D6827DA3-75DC-4F31-B57A-4ED5B5F03112")]
public static extern HRESULT TokenBindingVerifyMessage([In] IntPtr tokenBindingMessage, uint tokenBindingMessageSize, TOKENBINDING_KEY_PARAMETERS_TYPE keyType, [In] IntPtr tlsEKM,
uint tlsEKMSize, out IntPtr resultList);
/// <summary>
/// <para>Contains the information for representing a token binding identifier that results from a token binding message exchange.</para>
/// </summary>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/ns-tokenbinding-tokenbinding_identifier typedef struct
// TOKENBINDING_IDENTIFIER { BYTE keyType; } TOKENBINDING_IDENTIFIER;
[PInvokeData("tokenbinding.h", MSDNShortId = "301E099E-B621-41E1-BF9B-3AF8C53F9227")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct TOKENBINDING_IDENTIFIER
{
/// <summary/>
public byte keyType;
}
/// <summary>
/// <para>Contains all of the combinations of types of token binding keys that a client device or server supports.</para>
/// </summary>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/ns-tokenbinding-tokenbinding_key_types typedef struct
// TOKENBINDING_KEY_TYPES { DWORD keyCount; TOKENBINDING_KEY_PARAMETERS_TYPE *keyType; } TOKENBINDING_KEY_TYPES;
[PInvokeData("tokenbinding.h", MSDNShortId = "E5029CE3-CD23-4566-A951-35374DC7BC57")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct TOKENBINDING_KEY_TYPES
{
/// <summary>
/// <para>The number of elements in the array that the <c>key</c> member contains.</para>
/// </summary>
public uint keyCount;
/// <summary/>
public IntPtr keyType;
}
/// <summary>
/// <para>
/// Contains data about the result of generating a token binding or verifying one of the token bindings in a token binding message.
/// </para>
/// </summary>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/ns-tokenbinding-tokenbinding_result_data typedef struct
// TOKENBINDING_RESULT_DATA { TOKENBINDING_TYPE bindingType; DWORD identifierSize; TOKENBINDING_IDENTIFIER *identifierData;
// TOKENBINDING_EXTENSION_FORMAT extensionFormat; DWORD extensionSize; PVOID extensionData; } TOKENBINDING_RESULT_DATA;
[PInvokeData("tokenbinding.h", MSDNShortId = "6C34E174-CCC4-451D-82C3-C410C8C92C8C")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct TOKENBINDING_RESULT_DATA
{
/// <summary/>
public TOKENBINDING_TYPE bindingType;
/// <summary>
/// <para>The size of the TOKENBINDING_IDENTIFIER structure that the <c>identifierData</c> member points to, in bytes.</para>
/// </summary>
public uint identifierSize;
/// <summary>
/// <para>Pointer to the token binding identifier for the token binding that was generated or verified.</para>
/// </summary>
public IntPtr identifierData;
/// <summary>
/// <para>The format to use to interpret the data in the extensionData parameter. This value must be <c>TOKENBINDING_EXTENSION_FORMAT_UNDEFINED</c>.</para>
/// </summary>
public TOKENBINDING_EXTENSION_FORMAT extensionFormat;
/// <summary>
/// <para>The size of the buffer that the <c>extensionData</c> member points to, in bytes.</para>
/// </summary>
public uint extensionSize;
/// <summary>
/// <para>
/// A pointer to a buffer that contains extension data. The value of the extensionFormat parameter determines how to interpret
/// this data.
/// </para>
/// </summary>
public IntPtr extensionData;
}
/// <summary>
/// <para>Contains the results for each of the token bindings that TokenBindingVerifyMessage verified.</para>
/// </summary>
// https://docs.microsoft.com/en-us/windows/desktop/api/tokenbinding/ns-tokenbinding-tokenbinding_result_list typedef struct
// TOKENBINDING_RESULT_LIST { DWORD resultCount; TOKENBINDING_RESULT_DATA *resultData; } TOKENBINDING_RESULT_LIST;
[PInvokeData("tokenbinding.h", MSDNShortId = "D14CBEA3-5F46-4C45-8C11-407D6E70FD56")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct TOKENBINDING_RESULT_LIST
{
/// <summary>
/// <para>The number of elements in the array that the <c>resultData</c> member contains.</para>
/// </summary>
public uint resultCount;
/// <summary>
/// <para>An array of results, one for each of the token bindings that TokenBindingVerifyMessage verified.</para>
/// </summary>
public IntPtr resultData;
}
}
}

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Description>Methods, structures and constants imported from BCrypt.dll and NCrypt.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.Cryptography</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
<RootNamespace>Vanara.PInvoke</RootNamespace>
<Authors>David Hall</Authors>
<PackageProjectUrl>https://github.com/dahall/vanara</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/dahall/vanara/blob/master/LICENSE</PackageLicenseUrl>
<PackageIconUrl>https://raw.githubusercontent.com/dahall/Vanara/master/docs/icons/Vanara48x48.png</PackageIconUrl>
<RepositoryUrl>https://github.com/dahall/vanara</RepositoryUrl>
<RepositoryType>Git</RepositoryType>
<PackageTags>pinvoke vanara net-extensions interop cryptography</PackageTags>
<NeutralLanguage>en-US</NeutralLanguage>
<IncludeSource>true</IncludeSource>
<IncludeSymbols>true</IncludeSymbols>
<Company>GitHub Community</Company>
<Product>Vanara</Product>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<PackageReleaseNotes>Currently implements:
Functions
BCryptAddContextFunction, BCryptCloseAlgorithmProvider, BCryptConfigureContext, BCryptConfigureContextFunction, BCryptCreateContext, BCryptCreateHash, BCryptCreateMultiHash, BCryptDecrypt, BCryptDeleteContext, BCryptDeriveKey, BCryptDeriveKeyCapi, BCryptDeriveKeyPBKDF2, BCryptDestroyHash, BCryptDestroyKey, BCryptDestroySecret, BCryptDuplicateHash, BCryptDuplicateKey, BCryptEncrypt, BCryptEnumAlgorithms, BCryptEnumContextFunctionProviders, BCryptEnumContextFunctions, BCryptEnumContexts, BCryptEnumProviders, BCryptEnumRegisteredProviders, BCryptExportKey, BCryptFinalizeKeyPair, BCryptFinishHash, BCryptFreeBuffer, BCryptGenerateKeyPair, BCryptGenerateSymmetricKey, BCryptGenRandom, BCryptGetFipsAlgorithmMode, BCryptGetProperty, BCryptHash, BCryptHashData, BCryptImportKey, BCryptImportKeyPair, BCryptKeyDerivation, BCryptOpenAlgorithmProvider, BCryptProcessMultiOperations, BCryptQueryContextConfiguration, BCryptQueryContextFunctionConfiguration, BCryptQueryContextFunctionProperty, BCryptQueryProviderRegistration, BCryptRegisterConfigChangeNotify, BCryptRemoveContextFunction, BCryptResolveProviders, BCryptSecretAgreement, BCryptSetContextFunctionProperty, BCryptSetProperty, BCryptSignHash, BCryptUnregisterConfigChangeNotify, BCryptVerifySignature, NCryptCloseProtectionDescriptor, NCryptCreatePersistedKey, NCryptCreateProtectionDescriptor, NCryptDeleteKey, NCryptDeriveKey, NCryptExportKey, NCryptFinalizeKey, NCryptFreeObject, NCryptGetProtectionDescriptorInfo, NCryptImportKey, NCryptOpenKey, NCryptOpenStorageProvider, NCryptProtectSecret, NCryptQueryProtectionDescriptorName, NCryptRegisterProtectionDescriptorName, NCryptSecretAgreement, NCryptSetProperty, NCryptStreamClose, NCryptStreamOpenToProtect, NCryptStreamOpenToUnprotect, NCryptStreamOpenToUnprotectEx, NCryptStreamUpdate, NCryptUnprotectSecret, TokenBindingDeleteAllBindings, TokenBindingDeleteBinding, TokenBindingGenerateBinding, TokenBindingGenerateID, TokenBindingGenerateMessage, TokenBindingGetKeyTypesClient, TokenBindingGetKeyTypesServer, TokenBindingVerifyMessage
Structures
BCRYPT_ALG_HANDLE, BCRYPT_ALGORITHM_IDENTIFIER, BCRYPT_HANDLE, BCRYPT_HASH_HANDLE, BCRYPT_KEY_HANDLE, BCRYPT_MULTI_HASH_OPERATION, BCRYPT_OAEP_PADDING_INFO, BCRYPT_PKCS1_PADDING_INFO, BCRYPT_PROVIDER_NAME, BCRYPT_PSS_PADDING_INFO, BCRYPT_SECRET_HANDLE, CRYPT_CONTEXT_CONFIG, CRYPT_CONTEXT_FUNCTION_CONFIG, CRYPT_CONTEXT_FUNCTION_PROVIDERS, CRYPT_CONTEXT_FUNCTIONS, CRYPT_CONTEXTS, CRYPT_PROVIDERS, CERT_CONTEXT, CERT_EXTENSION, CERT_INFO, CERT_PUBLIC_KEY_INFO, CRYPT_ALGORITHM_IDENTIFIER, CRYPTOAPI_BLOB, NCRYPT_ALLOC_PARA, NCRYPT_HANDLE, NCRYPT_KEY_HANDLE, NCRYPT_PROV_HANDLE, NCRYPT_SECRET_HANDLE, NCryptBuffer, NCryptBufferDesc, NCRYPT_DESCRIPTOR_HANDLE, NCRYPT_PROTECT_STREAM_INFO, NCRYPT_PROTECT_STREAM_INFO_EX, NCRYPT_STREAM_HANDLE, TOKENBINDING_IDENTIFIER, TOKENBINDING_KEY_TYPES, TOKENBINDING_RESULT_DATA, TOKENBINDING_RESULT_LIST
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\Vanara.snk" Link="Vanara.snk" />
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net20' ">
<Reference Include="System" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net35' ">
<Reference Include="System" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net40' ">
<Reference Include="System" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Core\Vanara.Core.csproj" />
<ProjectReference Include="..\Shared\Vanara.PInvoke.Shared.csproj" />
</ItemGroup>
</Project>

View File

@ -1,5 +1,5 @@
## Correlation report for dwmapi.dll
### Methods (100% complete)
### Methods (96% complete)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[DwmDefWindowProc](https://www.google.com/search?num=5&q=DwmDefWindowProc+site%3Amicrosoft.com) | dwmapi.dll | dwmapi.h | Vanara.PInvoke.DwmApi.DwmDefWindowProc
@ -11,6 +11,7 @@ Native Method | Native DLL | Header | Managed Method
[DwmGetColorizationColor](https://www.google.com/search?num=5&q=DwmGetColorizationColor+site%3Amicrosoft.com) | dwmapi.dll | dwmapi.h | Vanara.PInvoke.DwmApi.DwmGetColorizationColor
[DwmGetCompositionTimingInfo](https://www.google.com/search?num=5&q=DwmGetCompositionTimingInfo+site%3Amicrosoft.com) | dwmapi.dll | dwmapi.h | Vanara.PInvoke.DwmApi.DwmGetCompositionTimingInfo
[DwmGetTransportAttributes](https://www.google.com/search?num=5&q=DwmGetTransportAttributes+site%3Amicrosoft.com) | dwmapi.dll | dwmapi.h | Vanara.PInvoke.DwmApi.DwmGetTransportAttributes
[DwmGetUnmetTabRequirements](https://www.google.com/search?num=5&q=DwmGetUnmetTabRequirements+site%3Amicrosoft.com) | dwmapi.dll | |
[DwmGetWindowAttribute](https://www.google.com/search?num=5&q=DwmGetWindowAttribute+site%3Amicrosoft.com) | dwmapi.dll | dwmapi.h | Vanara.PInvoke.DwmApi.DwmGetWindowAttribute
[DwmInvalidateIconicBitmaps](https://www.google.com/search?num=5&q=DwmInvalidateIconicBitmaps+site%3Amicrosoft.com) | dwmapi.dll | dwmapi.h | Vanara.PInvoke.DwmApi.DwmInvalidateIconicBitmaps
[DwmIsCompositionEnabled](https://www.google.com/search?num=5&q=DwmIsCompositionEnabled+site%3Amicrosoft.com) | dwmapi.dll | dwmapi.h | Vanara.PInvoke.DwmApi.DwmIsCompositionEnabled
@ -30,6 +31,7 @@ Native Method | Native DLL | Header | Managed Method
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[DWM_BLURBEHIND](https://www.google.com/search?num=5&q=DWM_BLURBEHIND+site%3Amicrosoft.com) | dwmapi.h | Vanara.PInvoke.DwmApi+DWM_BLURBEHIND
[DWM_COLORIZATION_PARAMS](https://www.google.com/search?num=5&q=DWM_COLORIZATION_PARAMS+site%3Amicrosoft.com) | dwmapi.h | Vanara.PInvoke.DwmApi+DWM_COLORIZATION_PARAMS
[DWM_THUMBNAIL_PROPERTIES](http://msdn2.microsoft.com/en-us/library/aa969502) | Dwmapi.h | Vanara.PInvoke.DwmApi+DWM_THUMBNAIL_PROPERTIES
[DWM_TIMING_INFO](https://www.google.com/search?num=5&q=DWM_TIMING_INFO+site%3Amicrosoft.com) | dwmapi.h | Vanara.PInvoke.DwmApi+DWM_TIMING_INFO

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from DwmApi.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.DwmApi</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -28,10 +28,12 @@ Functions
DwmDefWindowProc, DwmEnableBlurBehindWindow, DwmEnableComposition, DwmEnableMMCSS, DwmExtendFrameIntoClientArea, DwmFlush, DwmGetColorizationColor, DwmGetCompositionTimingInfo, DwmGetTransportAttributes, DwmGetWindowAttribute, DwmInvalidateIconicBitmaps, DwmIsCompositionEnabled, DwmpGetColorizationParameters, DwmpSetColorizationParameters, DwmQueryThumbnailSourceSize, DwmRegisterThumbnail, DwmRenderGesture, DwmSetIconicLivePreviewBitmap, DwmSetIconicThumbnail, DwmSetWindowAttribute, DwmShowContact, DwmTetherContact, DwmTransitionOwnedWindow, DwmUnregisterThumbnail, DwmUpdateThumbnailProperties
Structures
DWM_COLORIZATION_PARAMS, DWM_THUMBNAIL_PROPERTIES, DWM_TIMING_INFO, MARGINS, UNSIGNED_RATIO
DWM_BLURBEHIND, DWM_COLORIZATION_PARAMS, DWM_THUMBNAIL_PROPERTIES, DWM_TIMING_INFO, MARGINS, UNSIGNED_RATIO
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from Gdi32.dll</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.Gdi32</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -32,6 +32,8 @@ BITMAP, BITMAPINFO, BITMAPINFOHEADER, DIBSECTION, RGBQUAD, BLENDFUNCTION, LOGBRU
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from IpHlpApi.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.IpHlpApi</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -32,6 +32,8 @@ IP_ADAPTER_INDEX_MAP, NET_LUID, FIXED_INFO, IP_ADAPTER_ADDRESSES, IP_ADAPTER_ANY
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -1,5 +1,5 @@
## Correlation report for kernel32.dll, kernelbase.dll
### Methods (98% complete)
### Methods (99% complete)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[AcquireSRWLockExclusive](http://msdn2.microsoft.com/en-us/library/ms681930) | kernel32.dll | WinBase.h | Vanara.PInvoke.Kernel32.AcquireSRWLockExclusive
@ -214,7 +214,6 @@ Native Method | Native DLL | Header | Managed Method
[ExitProcess](http://msdn2.microsoft.com/en-us/library/ms682658) | kernel32.dll | WinBase.h | Vanara.PInvoke.Kernel32.ExitProcess
[ExitThread](http://msdn2.microsoft.com/en-us/library/ms682659) | kernel32.dll | WinBase.h | Vanara.PInvoke.Kernel32.ExitThread
[ExpandEnvironmentStrings](http://msdn2.microsoft.com/en-us/library/ms724265) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.ExpandEnvironmentStrings
[ExpungeConsoleCommandHistory](https://www.google.com/search?num=5&q=ExpungeConsoleCommandHistoryA+site%3Amicrosoft.com) | kernelbase.dll | |
[FatalAppExit](http://msdn2.microsoft.com/en-us/library/ms679336) | kernel32.dll | WinBase.h | Vanara.PInvoke.Kernel32.FatalAppExit
[FatalExit](http://msdn2.microsoft.com/en-us/library/ms679337) | kernel32.dll | WinBase.h | Vanara.PInvoke.Kernel32.FatalExit
[FileTimeToDosDateTime](http://msdn2.microsoft.com/en-us/library/ms724274) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.FileTimeToDosDateTime
@ -290,7 +289,7 @@ Native Method | Native DLL | Header | Managed Method
[GetCommConfig](http://msdn2.microsoft.com/en-us/library/aa363256) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetCommConfig
[GetCommMask](http://msdn2.microsoft.com/en-us/library/aa363257) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetCommMask
[GetCommModemStatus](http://msdn2.microsoft.com/en-us/library/aa363258) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetCommModemStatus
[GetCommPorts](https://www.google.com/search?num=5&q=GetCommPorts+site%3Amicrosoft.com) | kernelbase.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetCommPorts
[GetCommPorts](http://msdn2.microsoft.com/en-us/library/8E57FB62-D7A0-4B47-942B-E33E0B7A37B1) | kernelbase.dll | winbase.h | Vanara.PInvoke.Kernel32.GetCommPorts
[GetCommProperties](http://msdn2.microsoft.com/en-us/library/aa363259) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetCommProperties
[GetCommState](http://msdn2.microsoft.com/en-us/library/aa363260) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetCommState
[GetCommTimeouts](http://msdn2.microsoft.com/en-us/library/aa363261) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetCommTimeouts
@ -501,7 +500,7 @@ Native Method | Native DLL | Header | Managed Method
[GetSystemRegistryQuota](http://msdn2.microsoft.com/en-us/library/ms724387) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetSystemRegistryQuota
[GetSystemTime](http://msdn2.microsoft.com/en-us/library/ms724390) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetSystemTime
[GetSystemTimeAdjustment](http://msdn2.microsoft.com/en-us/library/ms724394) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetSystemTimeAdjustment
[GetSystemTimeAdjustmentPrecise](https://www.google.com/search?num=5&q=GetSystemTimeAdjustmentPrecise+site%3Amicrosoft.com) | kernelbase.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetSystemTimeAdjustmentPrecise
[GetSystemTimeAdjustmentPrecise](http://msdn2.microsoft.com/en-us/library/95EEE23D-01D8-49E1-BA64-49C07E8B1619) | kernelbase.dll | sysinfoapi.h | Vanara.PInvoke.Kernel32.GetSystemTimeAdjustmentPrecise
[GetSystemTimeAsFileTime](http://msdn2.microsoft.com/en-us/library/ms724397) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetSystemTimeAsFileTime
[GetSystemTimePreciseAsFileTime](http://msdn2.microsoft.com/en-us/library/hh706895) | kernel32.dll | WinBase.h | Vanara.PInvoke.Kernel32.GetSystemTimePreciseAsFileTime
[GetSystemTimes](http://msdn2.microsoft.com/en-us/library/ms724400) | kernel32.dll | Winbase.h | Vanara.PInvoke.Kernel32.GetSystemTimes
@ -1101,9 +1100,11 @@ Native Method | Native DLL | Header | Managed Method
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[ACTCTX](http://msdn2.microsoft.com/en-us/library/aa374149) | Winbase.h | Vanara.PInvoke.Kernel32+ACTCTX
[ACTCTX_SECTION_KEYED_DATA](http://msdn2.microsoft.com/en-us/library/aa374148) | Winbase.h | Vanara.PInvoke.Kernel32+ACTCTX_SECTION_KEYED_DATA
[APP_MEMORY_INFORMATION](http://msdn2.microsoft.com/en-us/library/mt767995) | WinBase.h | Vanara.PInvoke.Kernel32+APP_MEMORY_INFORMATION
[BLOCK_DATA](https://www.google.com/search?num=5&q=BLOCK_DATA+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+PROCESS_HEAP_ENTRY+BLOCK_REGION_UNION+BLOCK_DATA
[BoundaryDescriptorHandle](https://www.google.com/search?num=5&q=BoundaryDescriptorHandle+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+BoundaryDescriptorHandle
[BY_HANDLE_FILE_INFORMATION](http://msdn2.microsoft.com/en-us/library/aa363788) | FileAPI.h | Vanara.PInvoke.Kernel32+BY_HANDLE_FILE_INFORMATION
[CACHE_DESCRIPTOR](http://msdn2.microsoft.com/en-us/library/ms681979) | WinNT.h | Vanara.PInvoke.Kernel32+CACHE_DESCRIPTOR
[CACHE_RELATIONSHIP](http://msdn2.microsoft.com/en-us/library/f8fe521b-02d6-4c58-8ef8-653280add111) | winnt.h | Vanara.PInvoke.Kernel32+CACHE_RELATIONSHIP
@ -1132,6 +1133,9 @@ Native Structure | Header | Managed Structure
[CPINFO](http://msdn2.microsoft.com/en-us/library/dd317780) | Winnls.h | Vanara.PInvoke.Kernel32+CPINFO
[CPINFOEX](http://msdn2.microsoft.com/en-us/library/dd317781) | Winnls.h | Vanara.PInvoke.Kernel32+CPINFOEX
[CPU_RATE_CONTROL_UNION](https://www.google.com/search?num=5&q=CPU_RATE_CONTROL_UNION+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+JOBOBJECT_CPU_RATE_CONTROL_INFORMATION+CPU_RATE_CONTROL_UNION
[CREATE_PROCESS_DEBUG_INFO](http://msdn2.microsoft.com/en-us/library/ms679286) | WinBase.h | Vanara.PInvoke.Kernel32+DEBUG_EVENT+EXCEPTION_INFO+CREATE_PROCESS_DEBUG_INFO
[CREATE_THREAD_DEBUG_INFO](http://msdn2.microsoft.com/en-us/library/ms679287) | WinBase.h | Vanara.PInvoke.Kernel32+DEBUG_EVENT+EXCEPTION_INFO+CREATE_THREAD_DEBUG_INFO
[CREATEFILE2_EXTENDED_PARAMETERS](http://msdn2.microsoft.com/en-us/library/hh449426) | FileAPI.h | Vanara.PInvoke.Kernel32+CREATEFILE2_EXTENDED_PARAMETERS
[CRITICAL_SECTION](https://www.google.com/search?num=5&q=CRITICAL_SECTION+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+CRITICAL_SECTION
[CURRENCYFMT](http://msdn2.microsoft.com/en-us/library/dd317784) | Winnls.h | Vanara.PInvoke.Kernel32+CURRENCYFMT
[DCB](http://msdn2.microsoft.com/en-us/library/aa363214) | Winbase.h | Vanara.PInvoke.Kernel32+DCB
@ -1165,6 +1169,7 @@ Native Structure | Header | Managed Structure
[FILE_ID_INFO](http://msdn2.microsoft.com/en-us/library/e2774e29-1a90-44d6-9001-f73a98be6624) | winbase.h | Vanara.PInvoke.Kernel32+FILE_ID_INFO
[FILE_IO_PRIORITY_HINT_INFO](http://msdn2.microsoft.com/en-us/library/a142b8fd-b71c-4449-a8c6-fb23715d1576) | winbase.h | Vanara.PInvoke.Kernel32+FILE_IO_PRIORITY_HINT_INFO
[FILE_NAME_INFO](http://msdn2.microsoft.com/en-us/library/7ab98f41-b99e-4731-b803-921064a961c4) | winbase.h | Vanara.PInvoke.Kernel32+FILE_NAME_INFO
[FILE_RENAME_INFO](http://msdn2.microsoft.com/en-us/library/f4de0130-66fd-4847-bb6f-3f16fe17ca6e) | winbase.h | Vanara.PInvoke.Kernel32+FILE_RENAME_INFO
[FILE_STANDARD_INFO](http://msdn2.microsoft.com/en-us/library/da3187de-7de2-4307-a083-ae5fff6d8096) | winbase.h | Vanara.PInvoke.Kernel32+FILE_STANDARD_INFO
[FILE_STORAGE_INFO](http://msdn2.microsoft.com/en-us/library/1aa9585d-9001-4d94-babe-a39c8dde2332) | winbase.h | Vanara.PInvoke.Kernel32+FILE_STORAGE_INFO
[FILE_STREAM_INFO](http://msdn2.microsoft.com/en-us/library/36d1b0b3-bd6b-41e7-937a-4e8deef6f9da) | winbase.h | Vanara.PInvoke.Kernel32+FILE_STREAM_INFO
@ -1181,7 +1186,10 @@ Native Structure | Header | Managed Structure
[HEAP_SUMMARY](https://www.google.com/search?num=5&q=HEAP_SUMMARY+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+HEAP_SUMMARY
[HEAPENTRY32](http://msdn2.microsoft.com/en-us/library/c5f1dc66-d44f-4491-b0b7-961b163d0f1f) | tlhelp32.h | Vanara.PInvoke.Kernel32+HEAPENTRY32
[HEAPLIST32](http://msdn2.microsoft.com/en-us/library/61e01d23-9f15-44c5-9f6d-45df4809ccad) | tlhelp32.h | Vanara.PInvoke.Kernel32+HEAPLIST32
[HGLOBAL](https://www.google.com/search?num=5&q=HGLOBAL+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+HGLOBAL
[HJOB](https://www.google.com/search?num=5&q=HJOB+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+HJOB
[HLOCAL](https://www.google.com/search?num=5&q=HLOCAL+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+HLOCAL
[HSNAPSHOT](https://www.google.com/search?num=5&q=HSNAPSHOT+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+HSNAPSHOT
[INIT_ONCE](https://www.google.com/search?num=5&q=INIT_ONCE+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+INIT_ONCE
[INPUT_RECORD](https://www.google.com/search?num=5&q=INPUT_RECORD+site%3Amicrosoft.com) | Wincon.h | Vanara.PInvoke.Kernel32+INPUT_RECORD
[INPUT_RECORD_EVENT](https://www.google.com/search?num=5&q=INPUT_RECORD_EVENT+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+INPUT_RECORD+INPUT_RECORD_EVENT
@ -1210,12 +1218,14 @@ Native Structure | Header | Managed Structure
[JOBOBJECT_SECURITY_LIMIT_INFORMATION](http://msdn2.microsoft.com/en-us/library/ms684159) | WinNT.h | Vanara.PInvoke.Kernel32+JOBOBJECT_SECURITY_LIMIT_INFORMATION
[KEY_EVENT_RECORD](https://www.google.com/search?num=5&q=KEY_EVENT_RECORD+site%3Amicrosoft.com) | Wincon.h | Vanara.PInvoke.Kernel32+KEY_EVENT_RECORD
[LDT_ENTRY](http://msdn2.microsoft.com/en-us/library/ms680348) | WinNT.h | Vanara.PInvoke.Kernel32+LDT_ENTRY
[LOAD_DLL_DEBUG_INFO](http://msdn2.microsoft.com/en-us/library/ms680351) | WinBase.h | Vanara.PInvoke.Kernel32+DEBUG_EVENT+EXCEPTION_INFO+LOAD_DLL_DEBUG_INFO
[M128A](https://www.google.com/search?num=5&q=M128A+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+CONTEXT64+M128A
[MEMORY_BASIC_INFORMATION](http://msdn2.microsoft.com/en-us/library/dc3fa48e-0986-49cc-88a9-ff8179fbe5f0) | winnt.h | Vanara.PInvoke.Kernel32+MEMORY_BASIC_INFORMATION
[MEMORY_PRIORITY_INFORMATION](http://msdn2.microsoft.com/en-us/library/hh448387) | WinBase.h | Vanara.PInvoke.Kernel32+MEMORY_PRIORITY_INFORMATION
[MEMORYSTATUS](http://msdn2.microsoft.com/en-us/library/aa366772) | WinBase.h | Vanara.PInvoke.Kernel32+MEMORYSTATUS
[MEMORYSTATUSEX](http://msdn2.microsoft.com/en-us/library/aa366770) | WinBase.h | Vanara.PInvoke.Kernel32+MEMORYSTATUSEX
[MENU_EVENT_RECORD](https://www.google.com/search?num=5&q=MENU_EVENT_RECORD+site%3Amicrosoft.com) | Wincon.h | Vanara.PInvoke.Kernel32+MENU_EVENT_RECORD
[MODULEENTRY32](http://msdn2.microsoft.com/en-us/library/305fab35-625c-42e3-a434-e2513e4c8870) | tlhelp32.h | Vanara.PInvoke.Kernel32+MODULEENTRY32
[MODULEINFO](http://msdn2.microsoft.com/en-us/library/583caafe-7fa3-4041-b5bc-4e8899b3a08a) | psapi.h | Vanara.PInvoke.Kernel32+MODULEINFO
[MOUSE_EVENT_RECORD](https://www.google.com/search?num=5&q=MOUSE_EVENT_RECORD+site%3Amicrosoft.com) | Wincon.h | Vanara.PInvoke.Kernel32+MOUSE_EVENT_RECORD
[Mutant](https://www.google.com/search?num=5&q=Mutant+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+PSS_HANDLE_ENTRY+Mutant
@ -1274,6 +1284,7 @@ Native Structure | Header | Managed Structure
[PSS_VA_CLONE_INFORMATION](http://msdn2.microsoft.com/en-us/library/F93D61B0-EDB2-4560-A69F-CF839EC98B53) | processsnapshot.h | Vanara.PInvoke.Kernel32+PSS_VA_CLONE_INFORMATION
[PSS_VA_SPACE_ENTRY](http://msdn2.microsoft.com/en-us/library/69B8F6A3-76DF-421B-B89B-73BA3254F897) | processsnapshot.h | Vanara.PInvoke.Kernel32+PSS_VA_SPACE_ENTRY
[PSS_VA_SPACE_INFORMATION](http://msdn2.microsoft.com/en-us/library/F38FF7EB-DDC5-4692-8F57-8D633193D891) | processsnapshot.h | Vanara.PInvoke.Kernel32+PSS_VA_SPACE_INFORMATION
[PTP_CALLBACK_ENVIRON](https://www.google.com/search?num=5&q=PTP_CALLBACK_ENVIRON+site%3Amicrosoft.com) | threadpoolapiset.h | Vanara.PInvoke.Kernel32+PTP_CALLBACK_ENVIRON
[PTP_CALLBACK_INSTANCE](https://www.google.com/search?num=5&q=PTP_CALLBACK_INSTANCE+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+PTP_CALLBACK_INSTANCE
[PTP_CLEANUP_GROUP](https://www.google.com/search?num=5&q=PTP_CLEANUP_GROUP+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+PTP_CLEANUP_GROUP
[PTP_IO](https://www.google.com/search?num=5&q=PTP_IO+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+PTP_IO
@ -1310,12 +1321,15 @@ Native Structure | Header | Managed Structure
[THREAD_POWER_THROTTLING_STATE](http://msdn2.microsoft.com/en-us/library/mt804325) | Processthreadsapi.h | Vanara.PInvoke.Kernel32+THREAD_POWER_THROTTLING_STATE
[THREADENTRY32](http://msdn2.microsoft.com/en-us/library/923feca1-8807-4752-8a5a-79075688aabd) | tlhelp32.h | Vanara.PInvoke.Kernel32+THREADENTRY32
[TIME_ZONE_INFORMATION](http://msdn2.microsoft.com/en-us/library/ms725481) | Winbase.h | Vanara.PInvoke.Kernel32+TIME_ZONE_INFORMATION
[TimerQueueHandle](https://www.google.com/search?num=5&q=TimerQueueHandle+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+TimerQueueHandle
[TimerQueueTimerHandle](https://www.google.com/search?num=5&q=TimerQueueTimerHandle+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+TimerQueueTimerHandle
[TP_POOL_STACK_INFORMATION](https://www.google.com/search?num=5&q=TP_POOL_STACK_INFORMATION+site%3Amicrosoft.com) | threadpoolapiset.h | Vanara.PInvoke.Kernel32+TP_POOL_STACK_INFORMATION
[UMS_SCHEDULER_STARTUP_INFO](http://msdn2.microsoft.com/en-us/library/e3f7b1b7-d2b8-432d-bce7-3633292e855b) | winbase.h | Vanara.PInvoke.Kernel32+UMS_SCHEDULER_STARTUP_INFO
[UMS_SYSTEM_THREAD_INFORMATION](http://msdn2.microsoft.com/en-us/library/eecdc592-5046-47c3-a4c6-ecb10899db3c) | winbase.h | Vanara.PInvoke.Kernel32+UMS_SYSTEM_THREAD_INFORMATION
[Union](https://www.google.com/search?num=5&q=Union+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+COPYFILE2_MESSAGE+Union
[UNION](https://www.google.com/search?num=5&q=UNION+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+PSS_HANDLE_ENTRY+UNION
[UNLOAD_DLL_DEBUG_INFO](http://msdn2.microsoft.com/en-us/library/ms681403) | WinBase.h | Vanara.PInvoke.Kernel32+DEBUG_EVENT+EXCEPTION_INFO+UNLOAD_DLL_DEBUG_INFO
[UpdateResourceHandle](https://www.google.com/search?num=5&q=UpdateResourceHandle+site%3Amicrosoft.com) | | Vanara.PInvoke.Kernel32+UpdateResourceHandle
[WIN32_FILE_ATTRIBUTE_DATA](http://msdn2.microsoft.com/en-us/library/aa365739) | WinBase.h | Vanara.PInvoke.Kernel32+WIN32_FILE_ATTRIBUTE_DATA
[WIN32_FIND_STREAM_DATA](http://msdn2.microsoft.com/en-us/library/aa365741) | WinBase.h | Vanara.PInvoke.Kernel32+WIN32_FIND_STREAM_DATA
[WIN32_MEMORY_RANGE_ENTRY](http://msdn2.microsoft.com/en-us/library/hh780544) | WinBase.h | Vanara.PInvoke.Kernel32+WIN32_MEMORY_RANGE_ENTRY

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
@ -1172,6 +1173,40 @@ namespace Vanara.PInvoke
if (disposing && mm.HeapHandle != GetProcessHeap())
mm.HeapHandle.DangerousRelease();
}
/// <summary>Represents a NULL memory pointer.</summary>
public static SafeHeapBlock Null => new SafeHeapBlock(IntPtr.Zero, 0, false);
/// <summary>Converts an <see cref="IntPtr"/> to a <see cref="SafeHeapBlock"/> where it owns the reference.</summary>
/// <param name="ptr">The <see cref="IntPtr"/>.</param>
/// <returns>The result of the conversion.</returns>
public static implicit operator SafeHeapBlock(IntPtr ptr) => new SafeHeapBlock(ptr, 0, true);
/// <summary>Allocates from unmanaged memory sufficient memory to hold an object of type T.</summary>
/// <typeparam name="T">Native type</typeparam>
/// <param name="value">The value.</param>
/// <returns><see cref="SafeHeapBlock"/> object to an native (unmanaged) memory block the size of T.</returns>
public static SafeHeapBlock CreateFromStructure<T>(T value = default) => new SafeHeapBlock(InteropExtensions.StructureToPtr(value, new CoTaskMemoryMethods().AllocMem, out int s), s);
/// <summary>
/// Allocates from unmanaged memory to represent a structure with a variable length array at the end and marshal these structure elements. It is the
/// callers responsibility to marshal what precedes the trailing array into the unmanaged memory. ONLY structures with attribute StructLayout of
/// LayoutKind.Sequential are supported.
/// </summary>
/// <typeparam name="T">Type of the trailing array of structures</typeparam>
/// <param name="values">Collection of structure objects</param>
/// <param name="count">Number of items in <paramref name="values"/>. Setting this value to -1 will cause the method to get the count by iterating through <paramref name="values"/>.</param>
/// <param name="prefixBytes">Number of bytes preceding the trailing array of structures</param>
/// <returns><see cref="SafeHeapBlock"/> object to an native (unmanaged) structure with a trail array of structures</returns>
public static SafeHeapBlock CreateFromList<T>(IEnumerable<T> values, int count = -1, int prefixBytes = 0) => new SafeHeapBlock(InteropExtensions.MarshalToPtr(values, new CoTaskMemoryMethods().AllocMem, out int s, prefixBytes), s);
/// <summary>Allocates from unmanaged memory sufficient memory to hold an array of strings.</summary>
/// <param name="values">The list of strings.</param>
/// <param name="packing">The packing type for the strings.</param>
/// <param name="charSet">The character set to use for the strings.</param>
/// <param name="prefixBytes">Number of bytes preceding the trailing strings.</param>
/// <returns><see cref="SafeHeapBlock"/> object to an native (unmanaged) array of strings stored using the <paramref name="packing"/> model and the character set defined by <paramref name="charSet"/>.</returns>
public static SafeHeapBlock CreateFromStringList(IEnumerable<string> values, StringListPackMethod packing = StringListPackMethod.Concatenated, CharSet charSet = CharSet.Auto, int prefixBytes = 0) => new SafeHeapBlock(InteropExtensions.MarshalToPtr(values, packing, new CoTaskMemoryMethods().AllocMem, out int s, charSet, prefixBytes), s);
}
/// <summary>Provides a <see cref="SafeHandle"/> to a that releases a created HHEAP instance at disposal using HeapDestroy.</summary>

View File

@ -9,122 +9,150 @@ namespace Vanara.PInvoke
{
public static partial class Kernel32
{
/// <summary>
/// Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.
/// </summary>
/// <param name="hDev">A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream. To retrieve a device
/// handle, use the CreateFile function. For more information, see Remarks.</param>
/// <param name="ioControlCode">The control code for the operation. This value identifies the specific operation to be performed and the type of device on which to perform it.</param>
/// <param name="inputBuffer">The input buffer required to perform the operation. Can be null if unnecessary.</param>
/// <param name="outputBuffer">The output buffer that is to receive the data returned by the operation. Can be null if unnecessary.</param>
/// <returns>An asynchronous empty result.</returns>
/// <remarks>
/// <para>
/// To retrieve a handle to the device, you must call the CreateFile function with either the name of a device or the name of the driver associated with
/// a device. To specify a device name, use the following format:
/// </para>
/// <para>\\.\DeviceName</para>
/// <para>
/// DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to open handles to the
/// physical drives on a system.
/// </para>
/// <para>
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device driver. However, when
/// you open a communications resource, such as a serial port, you must specify exclusive access. Use the other CreateFile parameters as follows when
/// opening a device handle:
/// </para>
/// <list type="bullet">
/// <item>
/// <description>The fdwCreate parameter must specify OPEN_EXISTING.</description>
/// </item>
/// <item>
/// <description>The hTemplateFile parameter must be NULL.</description>
/// </item>
/// <item>
/// <description>The fdwAttrsAndFlags parameter can specify FILE_FLAG_OVERLAPPED to indicate that the returned handle can be used in overlapped (asynchronous) I/O operations.</description>
/// </item>
/// </list>
/// </remarks>
public static Task DeviceIoControlAsync(HFILE hDev, uint ioControlCode, byte[] inputBuffer, byte[] outputBuffer) {
var buf = Pack(inputBuffer, outputBuffer);
return Task.Factory.FromAsync(BeginDeviceIoControl, EndDeviceIoControl, hDev, ioControlCode, buf, null);
}
/// <summary>
/// Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.
/// </summary>
/// <param name="hDev">
/// A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream.
/// To retrieve a device handle, use the CreateFile function. For more information, see Remarks.
/// </param>
/// <param name="ioControlCode">
/// The control code for the operation. This value identifies the specific operation to be performed and the type of device on which
/// to perform it.
/// </param>
/// <param name="inputBuffer">The input buffer required to perform the operation. Can be null if unnecessary.</param>
/// <param name="outputBuffer">The output buffer that is to receive the data returned by the operation. Can be null if unnecessary.</param>
/// <returns>An asynchronous empty result.</returns>
/// <remarks>
/// <para>
/// To retrieve a handle to the device, you must call the CreateFile function with either the name of a device or the name of the
/// driver associated with a device. To specify a device name, use the following format:
/// </para>
/// <para>\\.\DeviceName</para>
/// <para>
/// DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to
/// open handles to the physical drives on a system.
/// </para>
/// <para>
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device
/// driver. However, when you open a communications resource, such as a serial port, you must specify exclusive access. Use the other
/// CreateFile parameters as follows when opening a device handle:
/// </para>
/// <list type="bullet">
/// <item>
/// <description>The fdwCreate parameter must specify OPEN_EXISTING.</description>
/// </item>
/// <item>
/// <description>The hTemplateFile parameter must be NULL.</description>
/// </item>
/// <item>
/// <description>
/// The fdwAttrsAndFlags parameter can specify FILE_FLAG_OVERLAPPED to indicate that the returned handle can be used in overlapped
/// (asynchronous) I/O operations.
/// </description>
/// </item>
/// </list>
/// </remarks>
public static Task DeviceIoControlAsync(HFILE hDev, uint ioControlCode, byte[] inputBuffer, byte[] outputBuffer)
{
var buf = Pack(inputBuffer, outputBuffer);
return Task.Factory.FromAsync(BeginDeviceIoControl, EndDeviceIoControl, hDev, ioControlCode, buf, null);
}
/// <summary>
/// Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.
/// </summary>
/// <typeparam name="TIn">The type of the <paramref name="inVal"/>.</typeparam>
/// <param name="hDev">A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream. To retrieve a device
/// handle, use the CreateFile function. For more information, see Remarks.</param>
/// <param name="ioControlCode">The control code for the operation. This value identifies the specific operation to be performed and the type of device on which to perform it.</param>
/// <param name="inVal">The input value required to perform the operation. The type of this data depends on the value of the <paramref name="ioControlCode"/> parameter.</param>
/// <returns>An asynchronous empty result.</returns>
/// <remarks>
/// <para>
/// To retrieve a handle to the device, you must call the CreateFile function with either the name of a device or the name of the driver associated with
/// a device. To specify a device name, use the following format:
/// </para>
/// <para>\\.\DeviceName</para>
/// <para>
/// DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to open handles to the
/// physical drives on a system.
/// </para>
/// <para>
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device driver. However, when
/// you open a communications resource, such as a serial port, you must specify exclusive access. Use the other CreateFile parameters as follows when
/// opening a device handle:
/// </para>
/// <list type="bullet">
/// <item>
/// <description>The fdwCreate parameter must specify OPEN_EXISTING.</description>
/// </item>
/// <item>
/// <description>The hTemplateFile parameter must be NULL.</description>
/// </item>
/// <item>
/// <description>The fdwAttrsAndFlags parameter can specify FILE_FLAG_OVERLAPPED to indicate that the returned handle can be used in overlapped (asynchronous) I/O operations.</description>
/// </item>
/// </list>
/// </remarks>
public static Task DeviceIoControlAsync<TIn>(HFILE hDev, uint ioControlCode, TIn inVal) where TIn : struct =>
/// <summary>
/// Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.
/// </summary>
/// <typeparam name="TIn">The type of the <paramref name="inVal"/>.</typeparam>
/// <param name="hDev">
/// A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream.
/// To retrieve a device handle, use the CreateFile function. For more information, see Remarks.
/// </param>
/// <param name="ioControlCode">
/// The control code for the operation. This value identifies the specific operation to be performed and the type of device on which
/// to perform it.
/// </param>
/// <param name="inVal">
/// The input value required to perform the operation. The type of this data depends on the value of the <paramref
/// name="ioControlCode"/> parameter.
/// </param>
/// <returns>An asynchronous empty result.</returns>
/// <remarks>
/// <para>
/// To retrieve a handle to the device, you must call the CreateFile function with either the name of a device or the name of the
/// driver associated with a device. To specify a device name, use the following format:
/// </para>
/// <para>\\.\DeviceName</para>
/// <para>
/// DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to
/// open handles to the physical drives on a system.
/// </para>
/// <para>
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device
/// driver. However, when you open a communications resource, such as a serial port, you must specify exclusive access. Use the other
/// CreateFile parameters as follows when opening a device handle:
/// </para>
/// <list type="bullet">
/// <item>
/// <description>The fdwCreate parameter must specify OPEN_EXISTING.</description>
/// </item>
/// <item>
/// <description>The hTemplateFile parameter must be NULL.</description>
/// </item>
/// <item>
/// <description>
/// The fdwAttrsAndFlags parameter can specify FILE_FLAG_OVERLAPPED to indicate that the returned handle can be used in overlapped
/// (asynchronous) I/O operations.
/// </description>
/// </item>
/// </list>
/// </remarks>
public static Task DeviceIoControlAsync<TIn>(HFILE hDev, uint ioControlCode, TIn inVal) where TIn : struct =>
DeviceIoControlAsync(hDev, ioControlCode, (TIn?)inVal, (int?)null);
/// <summary>
/// Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.
/// </summary>
/// <typeparam name="TOut">The type of the return value.</typeparam>
/// <param name="hDev">A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream. To retrieve a device
/// handle, use the CreateFile function. For more information, see Remarks.</param>
/// <param name="ioControlCode">The control code for the operation. This value identifies the specific operation to be performed and the type of device on which to perform it.</param>
/// <param name="hDev">
/// A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream.
/// To retrieve a device handle, use the CreateFile function. For more information, see Remarks.
/// </param>
/// <param name="ioControlCode">
/// The control code for the operation. This value identifies the specific operation to be performed and the type of device on which
/// to perform it.
/// </param>
/// <returns>An asynchronous result containing the resulting value of type <typeparamref name="TOut"/>.</returns>
/// <remarks>
/// <para>
/// To retrieve a handle to the device, you must call the CreateFile function with either the name of a device or the name of the driver associated with
/// a device. To specify a device name, use the following format:
/// To retrieve a handle to the device, you must call the CreateFile function with either the name of a device or the name of the
/// driver associated with a device. To specify a device name, use the following format:
/// </para>
/// <para>\\.\DeviceName</para>
/// <para>
/// DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to open handles to the
/// physical drives on a system.
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to
/// open handles to the physical drives on a system.
/// </para>
/// <para>
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device driver. However, when
/// you open a communications resource, such as a serial port, you must specify exclusive access. Use the other CreateFile parameters as follows when
/// opening a device handle:
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device
/// driver. However, when you open a communications resource, such as a serial port, you must specify exclusive access. Use the other
/// CreateFile parameters as follows when opening a device handle:
/// </para>
/// <list type="bullet">
/// <item>
/// <description>The fdwCreate parameter must specify OPEN_EXISTING.</description>
/// </item>
/// <item>
/// <description>The hTemplateFile parameter must be NULL.</description>
/// </item>
/// <item>
/// <description>The fdwAttrsAndFlags parameter can specify FILE_FLAG_OVERLAPPED to indicate that the returned handle can be used in overlapped (asynchronous) I/O operations.</description>
/// </item>
/// <item>
/// <description>The fdwCreate parameter must specify OPEN_EXISTING.</description>
/// </item>
/// <item>
/// <description>The hTemplateFile parameter must be NULL.</description>
/// </item>
/// <item>
/// <description>
/// The fdwAttrsAndFlags parameter can specify FILE_FLAG_OVERLAPPED to indicate that the returned handle can be used in overlapped
/// (asynchronous) I/O operations.
/// </description>
/// </item>
/// </list>
/// </remarks>
public static Task<TOut?> DeviceIoControlAsync<TOut>(HFILE hDev, uint ioControlCode) where TOut : struct
@ -138,38 +166,52 @@ namespace Vanara.PInvoke
/// </summary>
/// <typeparam name="TIn">The type of the <paramref name="inVal"/>.</typeparam>
/// <typeparam name="TOut">The type of the <paramref name="outVal"/>.</typeparam>
/// <param name="hDevice">A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream. To retrieve a device
/// handle, use the CreateFile function. For more information, see Remarks.</param>
/// <param name="ioControlCode">The control code for the operation. This value identifies the specific operation to be performed and the type of device on which to perform it.</param>
/// <param name="inVal">The input value required to perform the operation. The type of this data depends on the value of the <paramref name="ioControlCode"/> parameter.</param>
/// <param name="outVal">The output value that is to receive the data returned by the operation. The type of this data depends on the value of the dwIoControlCode parameter.</param>
/// <param name="hDevice">
/// A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream.
/// To retrieve a device handle, use the CreateFile function. For more information, see Remarks.
/// </param>
/// <param name="ioControlCode">
/// The control code for the operation. This value identifies the specific operation to be performed and the type of device on which
/// to perform it.
/// </param>
/// <param name="inVal">
/// The input value required to perform the operation. The type of this data depends on the value of the <paramref
/// name="ioControlCode"/> parameter.
/// </param>
/// <param name="outVal">
/// The output value that is to receive the data returned by the operation. The type of this data depends on the value of the
/// dwIoControlCode parameter.
/// </param>
/// <returns>An asynchronous result containing the populated data supplied by <paramref name="outVal"/>.</returns>
/// <remarks>
/// <para>
/// To retrieve a handle to the device, you must call the CreateFile function with either the name of a device or the name of the driver associated with
/// a device. To specify a device name, use the following format:
/// To retrieve a handle to the device, you must call the CreateFile function with either the name of a device or the name of the
/// driver associated with a device. To specify a device name, use the following format:
/// </para>
/// <para>\\.\DeviceName</para>
/// <para>
/// DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to open handles to the
/// physical drives on a system.
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to
/// open handles to the physical drives on a system.
/// </para>
/// <para>
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device driver. However, when
/// you open a communications resource, such as a serial port, you must specify exclusive access. Use the other CreateFile parameters as follows when
/// opening a device handle:
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device
/// driver. However, when you open a communications resource, such as a serial port, you must specify exclusive access. Use the other
/// CreateFile parameters as follows when opening a device handle:
/// </para>
/// <list type="bullet">
/// <item>
/// <description>The fdwCreate parameter must specify OPEN_EXISTING.</description>
/// </item>
/// <item>
/// <description>The hTemplateFile parameter must be NULL.</description>
/// </item>
/// <item>
/// <description>The fdwAttrsAndFlags parameter can specify FILE_FLAG_OVERLAPPED to indicate that the returned handle can be used in overlapped (asynchronous) I/O operations.</description>
/// </item>
/// <item>
/// <description>The fdwCreate parameter must specify OPEN_EXISTING.</description>
/// </item>
/// <item>
/// <description>The hTemplateFile parameter must be NULL.</description>
/// </item>
/// <item>
/// <description>
/// The fdwAttrsAndFlags parameter can specify FILE_FLAG_OVERLAPPED to indicate that the returned handle can be used in overlapped
/// (asynchronous) I/O operations.
/// </description>
/// </item>
/// </list>
/// </remarks>
public static Task<TOut?> DeviceIoControlAsync<TIn, TOut>(HFILE hDevice, uint ioControlCode, TIn? inVal, TOut? outVal) where TIn : struct where TOut : struct
@ -178,6 +220,15 @@ namespace Vanara.PInvoke
return new TaskFactory().FromAsync(BeginDeviceIoControl<TIn, TOut>, EndDeviceIoControl<TIn, TOut>, hDevice, ioControlCode, buf, null);
}
/// <summary>Explicits the device io control asynchronous.</summary>
/// <typeparam name="TIn">The type of the in.</typeparam>
/// <typeparam name="TOut">The type of the out.</typeparam>
/// <param name="hDevice">The h device.</param>
/// <param name="ioControlCode">The io control code.</param>
/// <param name="inVal">The in value.</param>
/// <param name="outVal">The out value.</param>
/// <returns></returns>
/// <exception cref="Win32Exception"></exception>
private static unsafe Task<TOut?> ExplicitDeviceIoControlAsync<TIn, TOut>(HFILE hDevice, uint ioControlCode, TIn? inVal, TOut? outVal) where TIn : struct where TOut : struct
{
#pragma warning disable CS0618 // Type or member is obsolete
@ -218,8 +269,7 @@ namespace Vanara.PInvoke
var inSz = Marshal.SizeOf(typeof(TIn));
fixed (byte* pIn = buffer, pOut = &buffer[inSz])
{
uint bRet;
var ret = DeviceIoControl(hDevice, ioControlCode, pIn, (uint)inSz, pOut, (uint)(buffer.Length - inSz), out bRet,
var ret = DeviceIoControl(hDevice, ioControlCode, pIn, (uint)inSz, pOut, (uint)(buffer.Length - inSz), out var bRet,
nativeOverlapped);
if (ret)
{

View File

@ -159,49 +159,50 @@ namespace Vanara.PInvoke
return BeginDeviceIoControl<TIn, TOut>(hDevice, dwIoControlCode, buffer, userCallback, null);
}
/// <summary>
/// Starts the asynchronous operation of sending a control code directly to a specified device driver, causing the corresponding
/// device to perform the corresponding operation.
/// </summary>
/// <param name="hDevice">
/// A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream.
/// To retrieve a device handle, use the CreateFile function. For more information, see Remarks.
/// </param>
/// <param name="dwIoControlCode">
/// The control code for the operation. This value identifies the specific operation to be performed and the type of device on which
/// to perform it.
/// </param>
/// <param name="inputBuffer">The input buffer required to perform the operation. Can be null if unnecessary.</param>
/// <param name="outputBuffer">The output buffer that is to receive the data returned by the operation. Can be null if unnecessary.</param>
/// <param name="userCallback">An AsyncCallback delegate that references the method to invoke when the operation is complete.</param>
/// <returns>An IAsyncResult instance that references the asynchronous request.</returns>
[PInvokeData("Winbase.h", MSDNShortId = "aa363216")]
public static IAsyncResult BeginDeviceIoControl(HFILE hDevice, uint dwIoControlCode, byte[] inputBuffer, byte[] outputBuffer, AsyncCallback userCallback) {
var buffer = Pack(inputBuffer, outputBuffer);
return BeginDeviceIoControl(hDevice, dwIoControlCode, buffer, userCallback, null);
}
/// <summary>
/// Starts the asynchronous operation of sending a control code directly to a specified device driver, causing the corresponding
/// device to perform the corresponding operation.
/// </summary>
/// <param name="hDevice">
/// A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream.
/// To retrieve a device handle, use the CreateFile function. For more information, see Remarks.
/// </param>
/// <param name="dwIoControlCode">
/// The control code for the operation. This value identifies the specific operation to be performed and the type of device on which
/// to perform it.
/// </param>
/// <param name="inputBuffer">The input buffer required to perform the operation. Can be null if unnecessary.</param>
/// <param name="outputBuffer">The output buffer that is to receive the data returned by the operation. Can be null if unnecessary.</param>
/// <param name="userCallback">An AsyncCallback delegate that references the method to invoke when the operation is complete.</param>
/// <returns>An IAsyncResult instance that references the asynchronous request.</returns>
[PInvokeData("Winbase.h", MSDNShortId = "aa363216")]
public static IAsyncResult BeginDeviceIoControl(HFILE hDevice, uint dwIoControlCode, byte[] inputBuffer, byte[] outputBuffer, AsyncCallback userCallback)
{
var buffer = Pack(inputBuffer, outputBuffer);
return BeginDeviceIoControl(hDevice, dwIoControlCode, buffer, userCallback, null);
}
/// <summary>
/// <para>
/// Cancels all pending input and output (I/O) operations that are issued by the calling thread for the specified file. The function
/// does not cancel I/O operations that other threads issue for a file handle.
/// </para>
/// <para>To cancel I/O operations from another thread, use the <c>CancelIoEx</c> function.</para>
/// </summary>
/// <param name="hFile">
/// <para>A handle to the file.</para>
/// <para>The function cancels all pending I/O operations for this file handle.</para>
/// </param>
/// <returns>
/// <para>
/// If the function succeeds, the return value is nonzero. The cancel operation for all pending I/O operations issued by the calling
/// thread for the specified file handle was successfully requested. The thread can use the <c>GetOverlappedResult</c> function to
/// determine when the I/O operations themselves have been completed.
/// </para>
/// <para>If the function fails, the return value is zero (0). To get extended error information, call the <c>GetLastError</c> function.</para>
/// </returns>
// BOOL WINAPI CancelIo( _In_ HANDLE hFile);// https://msdn.microsoft.com/en-us/library/windows/desktop/aa363791(v=vs.85).aspx
[DllImport(Lib.Kernel32, SetLastError = true, ExactSpelling = true)]
/// <summary>
/// <para>
/// Cancels all pending input and output (I/O) operations that are issued by the calling thread for the specified file. The function
/// does not cancel I/O operations that other threads issue for a file handle.
/// </para>
/// <para>To cancel I/O operations from another thread, use the <c>CancelIoEx</c> function.</para>
/// </summary>
/// <param name="hFile">
/// <para>A handle to the file.</para>
/// <para>The function cancels all pending I/O operations for this file handle.</para>
/// </param>
/// <returns>
/// <para>
/// If the function succeeds, the return value is nonzero. The cancel operation for all pending I/O operations issued by the calling
/// thread for the specified file handle was successfully requested. The thread can use the <c>GetOverlappedResult</c> function to
/// determine when the I/O operations themselves have been completed.
/// </para>
/// <para>If the function fails, the return value is zero (0). To get extended error information, call the <c>GetLastError</c> function.</para>
/// </returns>
// BOOL WINAPI CancelIo( _In_ HANDLE hFile);// https://msdn.microsoft.com/en-us/library/windows/desktop/aa363791(v=vs.85).aspx
[DllImport(Lib.Kernel32, SetLastError = true, ExactSpelling = true)]
[PInvokeData("IoAPI.h", MSDNShortId = "aa363791")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool CancelIo([In] HFILE hFile);
@ -361,6 +362,7 @@ namespace Vanara.PInvoke
/// </list>
/// </param>
/// <returns>The resulting I/O control code.</returns>
/// <exception cref="ArgumentOutOfRangeException">function</exception>
public static uint CTL_CODE(ushort deviceType, ushort function, byte method, byte access)
{
if (function > 0xfff)
@ -460,7 +462,7 @@ namespace Vanara.PInvoke
/// <para>
/// DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to
/// open handles to the physical drives on a system.
/// open handles to the physical drives on a system.
/// </para>
/// <para>
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device
@ -559,7 +561,7 @@ namespace Vanara.PInvoke
/// <para>
/// DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive
/// A: with CreateFile, specify \\.\a:. Alternatively, you can use the names \\.\PhysicalDrive0, \\.\PhysicalDrive1, and so on, to
/// open handles to the physical drives on a system.
/// open handles to the physical drives on a system.
/// </para>
/// <para>
/// You should specify the FILE_SHARE_READ and FILE_SHARE_WRITE access flags when calling CreateFile to open a handle to a device
@ -585,7 +587,7 @@ namespace Vanara.PInvoke
[return: MarshalAs(UnmanagedType.Bool)]
[PInvokeData("Winbase.h", MSDNShortId = "aa363216")]
public static extern unsafe bool DeviceIoControl(HFILE hDevice, uint dwIoControlCode, byte* lpInBuffer, uint nInBufferSize, byte* lpOutBuffer,
uint nOutBufferSize, out uint lpBytesReturned, NativeOverlapped* lpOverlapped);
uint nOutBufferSize, out uint lpBytesReturned, NativeOverlapped* lpOverlapped);
/// <summary>
/// Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.
@ -684,47 +686,48 @@ namespace Vanara.PInvoke
return Unpack<TIn, TOut>(ret as byte[]).Item2;
}
/// <summary>Ends the asynchronous call to <see cref="BeginDeviceIoControl{TIn, TOut}(HFILE, uint, TIn?, TOut?, AsyncCallback)"/>.</summary>
/// <summary>Ends the asynchronous call to <see cref="BeginDeviceIoControl{TIn, TOut}(HFILE, uint, TIn?, TOut?, AsyncCallback)"/>.</summary>
/// <param name="asyncResult">
/// The asynchronous result returned from <see cref="BeginDeviceIoControl{TIn, TOut}(HFILE, uint, TIn?, TOut?, AsyncCallback)"/>.
/// </param>
/// <returns>The output buffer, if exists; <c>null</c> otherwise.</returns>
[PInvokeData("Winbase.h", MSDNShortId = "aa363216")]
public static byte[] EndDeviceIoControl(IAsyncResult asyncResult) {
var ret = OverlappedAsync.EndOverlappedFunction(asyncResult);
return Unpack(ret as byte[]).Item2;
}
[PInvokeData("Winbase.h", MSDNShortId = "aa363216")]
public static byte[] EndDeviceIoControl(IAsyncResult asyncResult)
{
var ret = OverlappedAsync.EndOverlappedFunction(asyncResult);
return Unpack(ret as byte[]).Item2;
}
/// <summary>
/// Retrieves the results of an overlapped operation on the specified file, named pipe, or communications device. To specify a
/// timeout interval or wait on an alertable thread, use <c>GetOverlappedResultEx</c>.
/// </summary>
/// <param name="hFile">
/// A handle to the file, named pipe, or communications device. This is the same handle that was specified when the overlapped
/// operation was started by a call to the <c>ReadFile</c>, <c>WriteFile</c>, <c>ConnectNamedPipe</c>, <c>TransactNamedPipe</c>,
/// <c>DeviceIoControl</c>, or <c>WaitCommEvent</c> function.
/// </param>
/// <param name="lpOverlapped">
/// A pointer to an <c>OVERLAPPED</c> structure that was specified when the overlapped operation was started.
/// </param>
/// <param name="lpNumberOfBytesTransferred">
/// A pointer to a variable that receives the number of bytes that were actually transferred by a read or write operation. For a
/// <c>TransactNamedPipe</c> operation, this is the number of bytes that were read from the pipe. For a <c>DeviceIoControl</c>
/// operation, this is the number of bytes of output data returned by the device driver. For a <c>ConnectNamedPipe</c> or
/// <c>WaitCommEvent</c> operation, this value is undefined.
/// </param>
/// <param name="bWait">
/// If this parameter is <c>TRUE</c>, and the <c>Internal</c> member of the lpOverlapped structure is <c>STATUS_PENDING</c>, the
/// function does not return until the operation has been completed. If this parameter is <c>FALSE</c> and the operation is still
/// pending, the function returns <c>FALSE</c> and the <c>GetLastError</c> function returns <c>ERROR_IO_INCOMPLETE</c>.
/// </param>
/// <returns>
/// <para>If the function succeeds, the return value is nonzero.</para>
/// <para>If the function fails, the return value is zero. To get extended error information, call <c>GetLastError</c>.</para>
/// </returns>
// BOOL WINAPI GetOverlappedResult( _In_ HANDLE hFile, _In_ LPOVERLAPPED lpOverlapped, _Out_ LPDWORD lpNumberOfBytesTransferred, _In_
// BOOL bWait); https://msdn.microsoft.com/en-us/library/windows/desktop/ms683209(v=vs.85).aspx
[DllImport(Lib.Kernel32, SetLastError = true, ExactSpelling = true)]
/// <summary>
/// Retrieves the results of an overlapped operation on the specified file, named pipe, or communications device. To specify a
/// timeout interval or wait on an alertable thread, use <c>GetOverlappedResultEx</c>.
/// </summary>
/// <param name="hFile">
/// A handle to the file, named pipe, or communications device. This is the same handle that was specified when the overlapped
/// operation was started by a call to the <c>ReadFile</c>, <c>WriteFile</c>, <c>ConnectNamedPipe</c>, <c>TransactNamedPipe</c>,
/// <c>DeviceIoControl</c>, or <c>WaitCommEvent</c> function.
/// </param>
/// <param name="lpOverlapped">
/// A pointer to an <c>OVERLAPPED</c> structure that was specified when the overlapped operation was started.
/// </param>
/// <param name="lpNumberOfBytesTransferred">
/// A pointer to a variable that receives the number of bytes that were actually transferred by a read or write operation. For a
/// <c>TransactNamedPipe</c> operation, this is the number of bytes that were read from the pipe. For a <c>DeviceIoControl</c>
/// operation, this is the number of bytes of output data returned by the device driver. For a <c>ConnectNamedPipe</c> or
/// <c>WaitCommEvent</c> operation, this value is undefined.
/// </param>
/// <param name="bWait">
/// If this parameter is <c>TRUE</c>, and the <c>Internal</c> member of the lpOverlapped structure is <c>STATUS_PENDING</c>, the
/// function does not return until the operation has been completed. If this parameter is <c>FALSE</c> and the operation is still
/// pending, the function returns <c>FALSE</c> and the <c>GetLastError</c> function returns <c>ERROR_IO_INCOMPLETE</c>.
/// </param>
/// <returns>
/// <para>If the function succeeds, the return value is nonzero.</para>
/// <para>If the function fails, the return value is zero. To get extended error information, call <c>GetLastError</c>.</para>
/// </returns>
// BOOL WINAPI GetOverlappedResult( _In_ HANDLE hFile, _In_ LPOVERLAPPED lpOverlapped, _Out_ LPDWORD lpNumberOfBytesTransferred, _In_
// BOOL bWait); https://msdn.microsoft.com/en-us/library/windows/desktop/ms683209(v=vs.85).aspx
[DllImport(Lib.Kernel32, SetLastError = true, ExactSpelling = true)]
[PInvokeData("WinBase.h", MSDNShortId = "ms683209")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern unsafe bool GetOverlappedResult([In] HFILE hFile, [In] NativeOverlapped* lpOverlapped, out uint lpNumberOfBytesTransferred, [MarshalAs(UnmanagedType.Bool)] bool bWait);
@ -885,10 +888,6 @@ namespace Vanara.PInvoke
/// and the calling thread is the thread that initiated the operation. An APC is queued when you call <c>QueueUserAPC</c>.
/// </para>
/// </param>
/// <returns>
/// <para>Returns nonzero ( <c>TRUE</c>) if successful or zero ( <c>FALSE</c>) otherwise.</para>
/// <para>To get extended error information, call <c>GetLastError</c>.</para>
/// </returns>
// BOOL WINAPI GetQueuedCompletionStatusEx( _In_ HANDLE CompletionPort, _Out_ LPOVERLAPPED_ENTRY lpCompletionPortEntries, _In_ ULONG
// ulCount, _Out_ PULONG ulNumEntriesRemoved, _In_ DWORD dwMilliseconds, _In_ BOOL fAlertable); https://msdn.microsoft.com/en-us/library/windows/desktop/aa364988(v=vs.85).aspx
[DllImport(Lib.Kernel32, SetLastError = true, ExactSpelling = true)]
@ -917,23 +916,23 @@ namespace Vanara.PInvoke
[return: MarshalAs(UnmanagedType.Bool)]
public static extern unsafe bool PostQueuedCompletionStatus([In] IntPtr CompletionPort, uint dwNumberOfBytesTransferred, UIntPtr dwCompletionKey, NativeOverlapped* lpOverlapped);
private static unsafe IAsyncResult BeginDeviceIoControl<TIn, TOut>(HFILE hDevice, uint dwIoControlCode, byte[] buffer, AsyncCallback userCallback, object userState) where TIn : struct where TOut : struct
private static unsafe IAsyncResult BeginDeviceIoControl<TIn, TOut>(HFILE hDevice, uint dwIoControlCode, byte[] buffer, AsyncCallback userCallback, object userState) where TIn : struct where TOut : struct =>
BeginDeviceIoControl(hDevice, dwIoControlCode, buffer, userCallback, userState);
private static unsafe IAsyncResult BeginDeviceIoControl(HFILE hDevice, uint dwIoControlCode, byte[] buffer, AsyncCallback userCallback, object userState)
{
return BeginDeviceIoControl(hDevice, dwIoControlCode, buffer, userCallback, userState);
var ar = OverlappedAsync.SetupOverlappedFunction(hDevice, userCallback, buffer);
var intSz = Marshal.SizeOf(typeof(int));
var inSz = BitConverter.ToInt32(buffer, 0);
var outSz = BitConverter.ToInt32(buffer, intSz);
fixed (byte* pIn = &buffer[intSz * 2], pOut = &buffer[outSz == 0 ? 0 : intSz * 2 + inSz])
{
var ret = DeviceIoControl(hDevice, dwIoControlCode, pIn, (uint)inSz, pOut, (uint)outSz, out var bRet, ar.Overlapped);
return OverlappedAsync.EvaluateOverlappedFunction(ar, ret);
}
}
private static unsafe IAsyncResult BeginDeviceIoControl(HFILE hDevice, uint dwIoControlCode, byte[] buffer, AsyncCallback userCallback, object userState) {
var ar = OverlappedAsync.SetupOverlappedFunction(hDevice, userCallback, buffer);
var intSz = Marshal.SizeOf(typeof(int));
var inSz = BitConverter.ToInt32(buffer, 0);
var outSz = BitConverter.ToInt32(buffer, intSz);
fixed (byte* pIn = &buffer[intSz * 2], pOut = &buffer[outSz == 0 ? 0 : intSz * 2 + inSz]) {
var ret = DeviceIoControl(hDevice, dwIoControlCode, pIn, (uint)inSz, pOut, (uint)outSz, out var bRet, ar.Overlapped);
return OverlappedAsync.EvaluateOverlappedFunction(ar, ret);
}
}
private static T MemRead<T>(byte[] buffer, ref int startIndex) where T : struct
private static T MemRead<T>(byte[] buffer, ref int startIndex) where T : struct
{
using (var pin = new PinnedObject(buffer, startIndex))
{
@ -963,20 +962,22 @@ namespace Vanara.PInvoke
}
}
private static byte[] Pack(byte[] inputBuffer, byte[] outputBuffer) {
using (var ms = new MemoryStream())
using (var wtr = new BinaryWriter(ms)) {
wtr.Write(inputBuffer != null ? inputBuffer.Length : 0);
wtr.Write(outputBuffer != null ? outputBuffer.Length : 0);
if (inputBuffer != null && inputBuffer.Length > 0)
wtr.Write(inputBuffer);
if (outputBuffer != null && outputBuffer.Length > 0)
wtr.Write(outputBuffer);
return ms.ToArray();
}
}
private static byte[] Pack(byte[] inputBuffer, byte[] outputBuffer)
{
using (var ms = new MemoryStream())
using (var wtr = new BinaryWriter(ms))
{
wtr.Write(inputBuffer != null ? inputBuffer.Length : 0);
wtr.Write(outputBuffer != null ? outputBuffer.Length : 0);
if (inputBuffer != null && inputBuffer.Length > 0)
wtr.Write(inputBuffer);
if (outputBuffer != null && outputBuffer.Length > 0)
wtr.Write(outputBuffer);
return ms.ToArray();
}
}
private static Tuple<TIn?, TOut?> Unpack<TIn, TOut>(byte[] buffer) where TIn : struct where TOut : struct
private static Tuple<TIn?, TOut?> Unpack<TIn, TOut>(byte[] buffer) where TIn : struct where TOut : struct
{
using (var ms = new MemoryStream(buffer))
using (var rdr = new BinaryReader(ms))
@ -987,16 +988,18 @@ namespace Vanara.PInvoke
}
}
private static Tuple<byte[], byte[]> Unpack(byte[] buffer) {
using (var ms = new MemoryStream(buffer))
using (var rdr = new BinaryReader(ms)) {
var inLen = rdr.ReadInt32();
var outLen = rdr.ReadInt32();
return new Tuple<byte[], byte[]>(rdr.ReadBytes(inLen), rdr.ReadBytes(outLen));
}
}
private static Tuple<byte[], byte[]> Unpack(byte[] buffer)
{
using (var ms = new MemoryStream(buffer))
using (var rdr = new BinaryReader(ms))
{
var inLen = rdr.ReadInt32();
var outLen = rdr.ReadInt32();
return new Tuple<byte[], byte[]>(rdr.ReadBytes(inLen), rdr.ReadBytes(outLen));
}
}
[PInvokeData("WinIOCtl.h")]
[PInvokeData("WinIOCtl.h")]
public static class IOControlCode
{
public static uint FSCTL_GET_COMPRESSION

File diff suppressed because one or more lines are too long

View File

@ -27,6 +27,8 @@ Native Method | Native DLL | Header | Managed Method
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[CONNECTDLGSTRUCT](http://msdn2.microsoft.com/en-us/library/aa385332) | Winnetwk.h | Vanara.PInvoke.Mpr+CONNECTDLGSTRUCT
[DISCDLGSTRUCT](http://msdn2.microsoft.com/en-us/library/aa385339) | Winnetwk.h | Vanara.PInvoke.Mpr+DISCDLGSTRUCT
[NETCONNECTINFOSTRUCT](http://msdn2.microsoft.com/en-us/library/aa385345) | Winnetwk.h | Vanara.PInvoke.Mpr+NETCONNECTINFOSTRUCT
[NETINFOSTRUCT](http://msdn2.microsoft.com/en-us/library/aa385349) | Winnetwk.h | Vanara.PInvoke.Mpr+NETINFOSTRUCT
[NETRESOURCE](http://msdn2.microsoft.com/en-us/library/aa385353) | Winnetwk.h | Vanara.PInvoke.Mpr+NETRESOURCE

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from Mpr.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.Mpr</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -28,10 +28,12 @@ Functions
MultinetGetConnectionPerformanceA, MultinetGetConnectionPerformanceW, WNetAddConnection2A, WNetAddConnection2W, WNetAddConnection3A, WNetAddConnection3W, WNetAddConnectionA, WNetAddConnectionW, WNetCancelConnection2A, WNetCancelConnection2W, WNetCloseEnum, WNetConnectionDialog, WNetConnectionDialog1A, WNetConnectionDialog1W, WNetDisconnectDialog, WNetDisconnectDialog1A, WNetDisconnectDialog1W, WNetEnumResourceA, WNetEnumResourceW, WNetGetConnectionA, WNetGetConnectionW, WNetGetLastErrorA, WNetGetLastErrorW, WNetGetNetworkInformationA, WNetGetNetworkInformationW, WNetGetProviderNameA, WNetGetProviderNameW, WNetGetResourceInformationA, WNetGetResourceInformationW, WNetGetResourceParentA, WNetGetResourceParentW, WNetGetUniversalNameA, WNetGetUniversalNameW, WNetGetUserA, WNetGetUserW, WNetOpenEnumA, WNetOpenEnumW, WNetSetLastErrorA, WNetSetLastErrorW, WNetUseConnectionA, WNetUseConnectionW
Structures
NETCONNECTINFOSTRUCT, NETINFOSTRUCT, NETRESOURCE, REMOTE_NAME_INFO, UNIVERSAL_NAME_INFO
CONNECTDLGSTRUCT, DISCDLGSTRUCT, NETCONNECTINFOSTRUCT, NETINFOSTRUCT, NETRESOURCE, REMOTE_NAME_INFO, UNIVERSAL_NAME_INFO
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -1,11 +1,10 @@
## Correlation report for ntdsapi.dll
### Methods (57% complete)
### Methods (100% complete)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[DsAddSidHistory](http://msdn2.microsoft.com/en-us/library/36ef8734-717a-4c3a-a839-6591d85c9734) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsAddSidHistory
[DsBind](http://msdn2.microsoft.com/en-us/library/ms675931) | ntdsapi.dll | NTDSApi.h | Vanara.PInvoke.NTDSApi.DsBind
[DsBindByInstanceA](https://www.google.com/search?num=5&q=DsBindByInstanceA+site%3Amicrosoft.com) | Ntdsapi.dll | | Vanara.PInvoke.NTDSApi.DsBindByInstance
[DsBindByInstanceW](https://www.google.com/search?num=5&q=DsBindByInstanceW+site%3Amicrosoft.com) | Ntdsapi.dll | | Vanara.PInvoke.NTDSApi.DsBindByInstance
[DsBindByInstance](http://msdn2.microsoft.com/en-us/library/65302ddc-2bc0-4d80-b028-e268859be227) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsBindByInstance
[DsBindingSetTimeout](http://msdn2.microsoft.com/en-us/library/abdaae89-fba3-4949-92a9-acd62898ec24) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsBindingSetTimeout
[DsBindToISTG](http://msdn2.microsoft.com/en-us/library/bd53124c-8578-495d-b540-d4b4c09297c3) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsBindToISTG
[DsBindWithCred](http://msdn2.microsoft.com/en-us/library/ms675961) | ntdsapi.dll | NTDSApi.h | Vanara.PInvoke.NTDSApi.DsBindWithCred
@ -18,44 +17,86 @@ Native Method | Native DLL | Header | Managed Method
[DsFreeDomainControllerInfo](http://msdn2.microsoft.com/en-us/library/1b6d3136-91e2-4653-a4b0-ae2f66a6c5a2) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsFreeDomainControllerInfo
[DsFreeNameResult](http://msdn2.microsoft.com/en-us/library/ms675978) | ntdsapi.dll | NTDSApi.h | Vanara.PInvoke.NTDSApi.DsFreeNameResult
[DsFreePasswordCredentials](http://msdn2.microsoft.com/en-us/library/ms675979) | ntdsapi.dll | NTDSApi.h | Vanara.PInvoke.NTDSApi.DsFreePasswordCredentials
[DsFreeSchemaGuidMap](http://msdn2.microsoft.com/en-us/library/54d6acb9-5602-4996-a483-08534143bc0a) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsFreeSchemaGuidMap
[DsFreeSpnArray](http://msdn2.microsoft.com/en-us/library/1c229933-432d-4ded-be3b-3bd339a0abe4) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsFreeSpnArray
[DsGetDomainControllerInfo](http://msdn2.microsoft.com/en-us/library/52db3b25-e6b0-4a0d-831b-89a203580cf1) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsGetDomainControllerInfo
[DsGetRdnW](http://msdn2.microsoft.com/en-us/library/22627f2e-adfb-49de-bae5-20aaf69830ac) | ntdsapi.dll | dsparse.h | Vanara.PInvoke.NTDSApi.DsGetRdnW
[DsGetSpn](http://msdn2.microsoft.com/en-us/library/cbd53850-9b05-4f74-ab07-30dcad583fc5) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsGetSpn
[DsInheritSecurityIdentity](http://msdn2.microsoft.com/en-us/library/ea467069-f886-4e22-896c-16e6e01f3968) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsInheritSecurityIdentity
[DsIsMangledDn](http://msdn2.microsoft.com/en-us/library/e4aaa83c-3bd6-48db-9d34-367b76ba629c) | ntdsapi.dll | dsparse.h | Vanara.PInvoke.NTDSApi.DsIsMangledDn
[DsIsMangledRdnValue](http://msdn2.microsoft.com/en-us/library/adf5e133-9e48-4e97-af0c-4f8ea9b8bf8f) | ntdsapi.dll | dsparse.h | Vanara.PInvoke.NTDSApi.DsIsMangledRdnValue
[DsListDomainsInSite](https://www.google.com/search?num=5&q=DsListDomainsInSiteA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsListRoles](https://www.google.com/search?num=5&q=DsListRolesA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsListServersForDomainInSite](https://www.google.com/search?num=5&q=DsListServersForDomainInSiteA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsListServersInSite](https://www.google.com/search?num=5&q=DsListServersInSiteA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsListSites](https://www.google.com/search?num=5&q=DsListSitesA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsListDomainsInSite](http://msdn2.microsoft.com/en-us/library/3a039c0c-ac5b-4455-960d-b26a207693ed) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsListDomainsInSite
[DsListInfoForServer](http://msdn2.microsoft.com/en-us/library/15dcc7ac-4edb-42fa-8466-033794762046) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsListInfoForServer
[DsListRoles](http://msdn2.microsoft.com/en-us/library/679a2dca-019b-4f6e-acd9-efb30e0d4b44) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsListRoles
[DsListServersForDomainInSite](http://msdn2.microsoft.com/en-us/library/1e346532-bbbe-4b3b-a1cb-6a72319cb3e2) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsListServersForDomainInSite
[DsListServersInSite](http://msdn2.microsoft.com/en-us/library/46773631-d464-4d9e-83e7-aa502599df71) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsListServersInSite
[DsListSites](http://msdn2.microsoft.com/en-us/library/d424e750-6700-42b8-9d4f-e430cd0a7e4e) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsListSites
[DsMakePasswordCredentials](http://msdn2.microsoft.com/en-us/library/ms676006) | ntdsapi.dll | NTDSApi.h | Vanara.PInvoke.NTDSApi.DsMakePasswordCredentials
[DsMakeSpn](http://msdn2.microsoft.com/en-us/library/fca3c59c-bb81-42a0-acd3-2e55c902febe) | ntdsapi.dll | dsparse.h | Vanara.PInvoke.NTDSApi.DsMakeSpn
[DsMapSchemaGuids](https://www.google.com/search?num=5&q=DsMapSchemaGuidsA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsQuerySitesByCost](https://www.google.com/search?num=5&q=DsQuerySitesByCostA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsQuerySitesFree](https://www.google.com/search?num=5&q=DsQuerySitesFree+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsMapSchemaGuids](http://msdn2.microsoft.com/en-us/library/439fff20-51eb-490d-a330-61d07f79c436) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsMapSchemaGuids
[DsQuerySitesByCost](http://msdn2.microsoft.com/en-us/library/7a4cbd1c-8445-4882-8559-d44b6e5693e7) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsQuerySitesByCost
[DsQuerySitesFree](http://msdn2.microsoft.com/en-us/library/810caa4f-8275-4ad8-ad3e-72061fc073dd) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsQuerySitesFree
[DsQuoteRdnValue](http://msdn2.microsoft.com/en-us/library/a1e8a4c0-965a-4061-aab3-3e719ec6374d) | ntdsapi.dll | dsparse.h | Vanara.PInvoke.NTDSApi.DsQuoteRdnValue
[DsRemoveDsDomain](https://www.google.com/search?num=5&q=DsRemoveDsDomainA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsRemoveDsServer](https://www.google.com/search?num=5&q=DsRemoveDsServerA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaConsistencyCheck](https://www.google.com/search?num=5&q=DsReplicaConsistencyCheck+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaDel](https://www.google.com/search?num=5&q=DsReplicaDelA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaFreeInfo](https://www.google.com/search?num=5&q=DsReplicaFreeInfo+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaGetInfo2W](https://www.google.com/search?num=5&q=DsReplicaGetInfo2W+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaGetInfoW](https://www.google.com/search?num=5&q=DsReplicaGetInfoW+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaModify](https://www.google.com/search?num=5&q=DsReplicaModifyA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaSync](https://www.google.com/search?num=5&q=DsReplicaSyncA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaSyncAll](https://www.google.com/search?num=5&q=DsReplicaSyncAllA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaUpdateRefs](https://www.google.com/search?num=5&q=DsReplicaUpdateRefsA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsReplicaVerifyObjects](https://www.google.com/search?num=5&q=DsReplicaVerifyObjectsA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsServerRegisterSpn](https://www.google.com/search?num=5&q=DsServerRegisterSpnA+site%3Amicrosoft.com) | ntdsapi.dll | |
[DsRemoveDsDomain](http://msdn2.microsoft.com/en-us/library/0639cc04-2821-4421-8aa7-363621c1d6b5) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsRemoveDsDomain
[DsRemoveDsServer](http://msdn2.microsoft.com/en-us/library/a79a2b71-10c7-495b-861f-0c7a4d86f720) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsRemoveDsServer
[DsReplicaAdd](http://msdn2.microsoft.com/en-us/library/33bd1b61-b9ed-479f-a128-fb7ddbb5e9af) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaAdd
[DsReplicaConsistencyCheck](http://msdn2.microsoft.com/en-us/library/2a83ffcb-1ebd-4024-a186-9c079896f4e1) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaConsistencyCheck
[DsReplicaDel](http://msdn2.microsoft.com/en-us/library/68c767c4-bbb6-477b-8ffb-94f3ae235375) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaDel
[DsReplicaFreeInfo](http://msdn2.microsoft.com/en-us/library/32ce378e-a178-4970-b3bd-3887866e97af) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaFreeInfo
[DsReplicaGetInfo2W](http://msdn2.microsoft.com/en-us/library/5735d91d-1b7d-4dc6-b6c6-61ba38ebe50d) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaGetInfo2W
[DsReplicaGetInfoW](http://msdn2.microsoft.com/en-us/library/b7ab22fe-ed92-4213-9b66-2dd5526286fa) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaGetInfoW
[DsReplicaModify](http://msdn2.microsoft.com/en-us/library/aad20527-1211-41bc-b0e9-02e4ab28ae2e) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaModify
[DsReplicaSync](http://msdn2.microsoft.com/en-us/library/20c7f96d-f298-4321-a6f5-910c25e418db) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaSync
[DsReplicaSyncAll](http://msdn2.microsoft.com/en-us/library/2608adde-4f18-4048-a96f-d736ff09cd4b) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaSyncAll
[DsReplicaUpdateRefs](http://msdn2.microsoft.com/en-us/library/158c7e73-0e6c-4b71-a87f-2f60f3db91cb) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaUpdateRefs
[DsReplicaVerifyObjects](http://msdn2.microsoft.com/en-us/library/d0e139dc-6aaf-47e1-a76f-4e84f17aa7c6) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsReplicaVerifyObjects
[DsServerRegisterSpn](http://msdn2.microsoft.com/en-us/library/d95dfa55-f978-4d8d-a63d-cd1339769c79) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsServerRegisterSpn
[DsUnBind](http://msdn2.microsoft.com/en-us/library/7106d67f-d421-4a7c-b775-440e5944f25e) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsUnBind
[DsUnquoteRdnValue](http://msdn2.microsoft.com/en-us/library/6e3dd220-ba98-46b5-8522-93cbe2029aa4) | ntdsapi.dll | dsparse.h | Vanara.PInvoke.NTDSApi.DsUnquoteRdnValue
[DsWriteAccountSpn](http://msdn2.microsoft.com/en-us/library/2b555f6b-643d-4fa0-9aca-701e6b3313fa) | ntdsapi.dll | ntdsapi.h | Vanara.PInvoke.NTDSApi.DsWriteAccountSpn
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[DCInfoHandle](https://www.google.com/search?num=5&q=DCInfoHandle+site%3Amicrosoft.com) | | Vanara.PInvoke.NTDSApi+DCInfoHandle
[DS_DOMAIN_CONTROLLER_INFO_1](http://msdn2.microsoft.com/en-us/library/6cc829ac-2aa6-49ef-b1ab-9c249249e0d6) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_DOMAIN_CONTROLLER_INFO_1
[DS_DOMAIN_CONTROLLER_INFO_2](http://msdn2.microsoft.com/en-us/library/9d45b732-363d-4b20-ae5c-e9e76264bf1f) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_DOMAIN_CONTROLLER_INFO_2
[DS_DOMAIN_CONTROLLER_INFO_3](http://msdn2.microsoft.com/en-us/library/510f458e-4c08-41c7-b290-1372ac9c8beb) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_DOMAIN_CONTROLLER_INFO_3
[DS_NAME_RESULT](http://msdn2.microsoft.com/en-us/library/ms676246) | NTDSApi.h | Vanara.PInvoke.NTDSApi+DS_NAME_RESULT
[DS_NAME_RESULT_ITEM](http://msdn2.microsoft.com/en-us/library/ms676246) | NTDSApi.h | Vanara.PInvoke.NTDSApi+DS_NAME_RESULT_ITEM
[DS_REPL_ATTR_META_DATA](http://msdn2.microsoft.com/en-us/library/27ccc1c9-03d7-4d13-b9ec-65d6b8bdfd37) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_ATTR_META_DATA
[DS_REPL_ATTR_META_DATA_2](http://msdn2.microsoft.com/en-us/library/392457b7-df69-44d0-82b2-8381d5877354) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_ATTR_META_DATA_2
[DS_REPL_ATTR_META_DATA_BLOB](http://msdn2.microsoft.com/en-us/library/eee12de1-287a-4e76-9a9c-37e6b967971f) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_ATTR_META_DATA_BLOB
[DS_REPL_ATTR_VALUE_META_DATA](http://msdn2.microsoft.com/en-us/library/b13cdd31-d154-4539-81d6-d7a449e2b3d5) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_ATTR_VALUE_META_DATA
[DS_REPL_ATTR_VALUE_META_DATA_2](http://msdn2.microsoft.com/en-us/library/2022362a-e2f7-4cfd-a512-cfe29e5d439d) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_ATTR_VALUE_META_DATA_2
[DS_REPL_ATTR_VALUE_META_DATA_EXT](http://msdn2.microsoft.com/en-us/library/CA41C6BF-A485-4AC7-B761-3A07159C2FF1) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_ATTR_VALUE_META_DATA_EXT
[DS_REPL_CURSOR](http://msdn2.microsoft.com/en-us/library/ab4ee8d8-5ccd-4f3f-a1c0-de78c65a10d3) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_CURSOR
[DS_REPL_CURSOR_2](http://msdn2.microsoft.com/en-us/library/ff839372-41f0-499a-9582-59ace02f1485) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_CURSOR_2
[DS_REPL_CURSOR_3W](http://msdn2.microsoft.com/en-us/library/0361a3e1-814c-4ef2-b574-2870a9289e52) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_CURSOR_3W
[DS_REPL_CURSOR_BLOB](http://msdn2.microsoft.com/en-us/library/c41e4737-5ef8-40ce-9af1-0afff7e11dc1) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_CURSOR_BLOB
[DS_REPL_CURSORS](http://msdn2.microsoft.com/en-us/library/0fe5ad72-d3f3-42a8-a36f-ca1fc9c55c50) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_CURSORS
[DS_REPL_CURSORS_2](http://msdn2.microsoft.com/en-us/library/5a1981ac-3b6a-4e48-8430-f8297ddd3283) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_CURSORS_2
[DS_REPL_CURSORS_3W](http://msdn2.microsoft.com/en-us/library/7b8e0015-dd8f-4cba-8ea2-683cb107f294) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_CURSORS_3W
[DS_REPL_KCC_DSA_FAILURESW](http://msdn2.microsoft.com/en-us/library/bb011502-38ae-43b7-a6ad-de16b499f61b) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_KCC_DSA_FAILURESW
[DS_REPL_KCC_DSA_FAILUREW](http://msdn2.microsoft.com/en-us/library/7a7131ce-a647-4b3d-a9f3-091b6dcebff7) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_KCC_DSA_FAILUREW
[DS_REPL_KCC_DSA_FAILUREW_BLOB](http://msdn2.microsoft.com/en-us/library/b0df588a-2ef1-4870-b304-c6f9e07322b0) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_KCC_DSA_FAILUREW_BLOB
[DS_REPL_NEIGHBOR](http://msdn2.microsoft.com/en-us/library/acab74f4-5739-4310-895b-081062c0360b) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_NEIGHBOR
[DS_REPL_NEIGHBORS](http://msdn2.microsoft.com/en-us/library/1307399b-de29-43ec-97b4-05cd70c1a92d) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_NEIGHBORS
[DS_REPL_NEIGHBORW_BLOB](http://msdn2.microsoft.com/en-us/library/1a56968a-29ed-4c94-80ee-02bdd279f5c2) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_NEIGHBORW_BLOB
[DS_REPL_OBJ_META_DATA](http://msdn2.microsoft.com/en-us/library/7851ffbc-5d05-4ea7-b3b4-1b8b77299be5) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_OBJ_META_DATA
[DS_REPL_OBJ_META_DATA_2](http://msdn2.microsoft.com/en-us/library/2aed753f-432c-4de8-a6be-aa79833f002f) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_OBJ_META_DATA_2
[DS_REPL_OPW](http://msdn2.microsoft.com/en-us/library/9ea783b3-1529-4424-a582-f46f2a239a60) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_OPW
[DS_REPL_OPW_BLOB](http://msdn2.microsoft.com/en-us/library/14676159-cc31-4254-b174-dcd84d9ceec1) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_OPW_BLOB
[DS_REPL_PENDING_OPSW](http://msdn2.microsoft.com/en-us/library/2e4b96cb-fbd6-496b-aff3-cb7d82f1fa39) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_PENDING_OPSW
[DS_REPL_QUEUE_STATISTICSW](http://msdn2.microsoft.com/en-us/library/bfddd7ed-0ff4-46ca-84c2-39020acb37d0) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_QUEUE_STATISTICSW
[DS_REPL_VALUE_META_DATA](http://msdn2.microsoft.com/en-us/library/294a466e-8a83-4b33-a8a8-ac7b51d081d4) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_VALUE_META_DATA
[DS_REPL_VALUE_META_DATA_2](http://msdn2.microsoft.com/en-us/library/747e32b8-2cc0-4fcd-88dc-027188598361) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_VALUE_META_DATA_2
[DS_REPL_VALUE_META_DATA_BLOB](http://msdn2.microsoft.com/en-us/library/7d8bb666-c5d8-43de-ab72-5b02b6e0593d) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_VALUE_META_DATA_BLOB
[DS_REPL_VALUE_META_DATA_BLOB_EXT](http://msdn2.microsoft.com/en-us/library/095180F4-9E3F-47EE-B39E-107D7D219DCB) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_VALUE_META_DATA_BLOB_EXT
[DS_REPL_VALUE_META_DATA_EXT](http://msdn2.microsoft.com/en-us/library/2BE0F9C4-D688-4DE6-8DB2-15666D8BD070) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPL_VALUE_META_DATA_EXT
[DS_REPSYNCALL_ERRINFO](http://msdn2.microsoft.com/en-us/library/70af4e3e-1f0e-49c5-b8c6-5e89114ed4ea) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPSYNCALL_ERRINFO
[DS_REPSYNCALL_UPDATE](http://msdn2.microsoft.com/en-us/library/3b0005cb-0fb6-492c-89e5-8a18a88f881b) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_REPSYNCALL_UPDATE
[DS_SCHEMA_GUID_MAP](https://www.google.com/search?num=5&q=DS_SCHEMA_GUID_MAP+site%3Amicrosoft.com) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_SCHEMA_GUID_MAP
[DS_SITE_COST_INFO](https://www.google.com/search?num=5&q=DS_SITE_COST_INFO+site%3Amicrosoft.com) | ntdsapi.h | Vanara.PInvoke.NTDSApi+DS_SITE_COST_INFO
[SCHEDULE](http://msdn2.microsoft.com/en-us/library/d86890db-b34a-415a-820a-6d4790914218) | schedule.h | Vanara.PInvoke.NTDSApi+SCHEDULE
[SCHEDULE_HEADER](http://msdn2.microsoft.com/en-us/library/5453927e-306e-4442-a855-916005dc8e3b) | schedule.h | Vanara.PInvoke.NTDSApi+SCHEDULE_HEADER
[SpnArrayHandle](https://www.google.com/search?num=5&q=SpnArrayHandle+site%3Amicrosoft.com) | | Vanara.PInvoke.NTDSApi+SpnArrayHandle

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from NTDSApi.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard20</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.NTDSApi</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -25,13 +25,15 @@
<PackageReleaseNotes>Currently implements:
Functions
DsAddSidHistoryA, DsAddSidHistoryW, DsBindA, DsBindByInstanceA, DsBindByInstanceW, DsBindingSetTimeout, DsBindToISTGA, DsBindToISTGW, DsBindW, DsBindWithCredA, DsBindWithCredW, DsBindWithSpnA, DsBindWithSpnExA, DsBindWithSpnExW, DsBindWithSpnW, DsClientMakeSpnForTargetServerA, DsClientMakeSpnForTargetServerW, DsCrackNamesA, DsCrackNamesW, DsCrackSpnA, DsCrackSpnW, DsCrackUnquotedMangledRdnA, DsCrackUnquotedMangledRdnW, DsFreeDomainControllerInfoA, DsFreeDomainControllerInfoW, DsFreeNameResultA, DsFreeNameResultW, DsFreePasswordCredentials, DsFreeSpnArrayA, DsFreeSpnArrayW, DsGetDomainControllerInfoA, DsGetDomainControllerInfoW, DsGetRdnW, DsGetSpnA, DsGetSpnW, DsIsMangledDnA, DsIsMangledDnW, DsIsMangledRdnValueA, DsIsMangledRdnValueW, DsMakePasswordCredentialsA, DsMakePasswordCredentialsW, DsMakeSpnA, DsMakeSpnW, DsQuoteRdnValueA, DsQuoteRdnValueW, DsUnBindA, DsUnBindW, DsUnquoteRdnValueA, DsUnquoteRdnValueW, DsWriteAccountSpnA, DsWriteAccountSpnW
DsAddSidHistoryA, DsAddSidHistoryW, DsBindA, DsBindByInstanceA, DsBindByInstanceW, DsBindingSetTimeout, DsBindToISTGA, DsBindToISTGW, DsBindW, DsBindWithCredA, DsBindWithCredW, DsBindWithSpnA, DsBindWithSpnExA, DsBindWithSpnExW, DsBindWithSpnW, DsClientMakeSpnForTargetServerA, DsClientMakeSpnForTargetServerW, DsCrackNamesA, DsCrackNamesW, DsCrackSpnA, DsCrackSpnW, DsCrackUnquotedMangledRdnA, DsCrackUnquotedMangledRdnW, DsFreeDomainControllerInfoA, DsFreeDomainControllerInfoW, DsFreeNameResultA, DsFreeNameResultW, DsFreePasswordCredentials, DsFreeSchemaGuidMapA, DsFreeSchemaGuidMapW, DsFreeSpnArrayA, DsFreeSpnArrayW, DsGetDomainControllerInfoA, DsGetDomainControllerInfoW, DsGetRdnW, DsGetSpnA, DsGetSpnW, DsInheritSecurityIdentityA, DsInheritSecurityIdentityW, DsIsMangledDnA, DsIsMangledDnW, DsIsMangledRdnValueA, DsIsMangledRdnValueW, DsListDomainsInSiteA, DsListDomainsInSiteW, DsListInfoForServerA, DsListInfoForServerW, DsListRolesA, DsListRolesW, DsListServersForDomainInSiteA, DsListServersForDomainInSiteW, DsListServersInSiteA, DsListServersInSiteW, DsListSitesA, DsListSitesW, DsMakePasswordCredentialsA, DsMakePasswordCredentialsW, DsMakeSpnA, DsMakeSpnW, DsMapSchemaGuidsA, DsMapSchemaGuidsW, DsQuerySitesByCostA, DsQuerySitesByCostW, DsQuerySitesFree, DsQuoteRdnValueA, DsQuoteRdnValueW, DsRemoveDsDomainA, DsRemoveDsDomainW, DsRemoveDsServerA, DsRemoveDsServerW, DsReplicaAddA, DsReplicaAddW, DsReplicaConsistencyCheck, DsReplicaDelA, DsReplicaDelW, DsReplicaFreeInfo, DsReplicaGetInfo2W, DsReplicaGetInfoW, DsReplicaModifyA, DsReplicaModifyW, DsReplicaSyncA, DsReplicaSyncAllA, DsReplicaSyncAllW, DsReplicaSyncW, DsReplicaUpdateRefsA, DsReplicaUpdateRefsW, DsReplicaVerifyObjectsA, DsReplicaVerifyObjectsW, DsServerRegisterSpnA, DsServerRegisterSpnW, DsUnBindA, DsUnBindW, DsUnquoteRdnValueA, DsUnquoteRdnValueW, DsWriteAccountSpnA, DsWriteAccountSpnW
Structures
DS_DOMAIN_CONTROLLER_INFO_1, DS_DOMAIN_CONTROLLER_INFO_2, DS_DOMAIN_CONTROLLER_INFO_3, DS_NAME_RESULT, DS_NAME_RESULT_ITEM
DCInfoHandle, DS_DOMAIN_CONTROLLER_INFO_1, DS_DOMAIN_CONTROLLER_INFO_2, DS_DOMAIN_CONTROLLER_INFO_3, DS_NAME_RESULT, DS_NAME_RESULT_ITEM, DS_REPL_ATTR_META_DATA, DS_REPL_ATTR_META_DATA_2, DS_REPL_ATTR_META_DATA_BLOB, DS_REPL_ATTR_VALUE_META_DATA, DS_REPL_ATTR_VALUE_META_DATA_2, DS_REPL_ATTR_VALUE_META_DATA_EXT, DS_REPL_CURSOR, DS_REPL_CURSOR_2, DS_REPL_CURSOR_3W, DS_REPL_CURSOR_BLOB, DS_REPL_CURSORS, DS_REPL_CURSORS_2, DS_REPL_CURSORS_3W, DS_REPL_KCC_DSA_FAILURESW, DS_REPL_KCC_DSA_FAILUREW, DS_REPL_KCC_DSA_FAILUREW_BLOB, DS_REPL_NEIGHBOR, DS_REPL_NEIGHBORS, DS_REPL_NEIGHBORW_BLOB, DS_REPL_OBJ_META_DATA, DS_REPL_OBJ_META_DATA_2, DS_REPL_OPW, DS_REPL_OPW_BLOB, DS_REPL_PENDING_OPSW, DS_REPL_QUEUE_STATISTICSW, DS_REPL_VALUE_META_DATA, DS_REPL_VALUE_META_DATA_2, DS_REPL_VALUE_META_DATA_BLOB, DS_REPL_VALUE_META_DATA_BLOB_EXT, DS_REPL_VALUE_META_DATA_EXT, DS_REPSYNCALL_ERRINFO, DS_REPSYNCALL_UPDATE, DS_SCHEMA_GUID_MAP, DS_SITE_COST_INFO, SCHEDULE_HEADER, SpnArrayHandle, SCHEDULE
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from NtDll.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard20</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.NtDll</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -32,6 +32,8 @@ CLIENT_ID, IO_STATUS_BLOCK, KEY_BASIC_INFORMATION, KEY_FULL_INFORMATION, KEY_NAM
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -1023,7 +1023,7 @@ namespace Vanara.PInvoke
// ComputerName, OUT LPSTR *SiteName );
[DllImport(Lib.NetApi32, SetLastError = false, CharSet = CharSet.Auto)]
[PInvokeData("dsgetdc.h", MSDNShortId = "2dfffd9a-af4f-4a93-8b3c-966e4f7c455f")]
public static extern Win32Error DsGetSiteName(string ComputerName, out SafeNetApiBuffer SiteName);
public static extern Win32Error DsGetSiteName([Optional] string ComputerName, out SafeNetApiBuffer SiteName);
/// <summary>
/// <para>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from NetApi32.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard20</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.NetApi32</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -32,6 +32,8 @@ DOMAIN_CONTROLLER_INFO, DS_DOMAIN_TRUSTS, DSROLE_OPERATION_STATE_INFO, DSROLE_PR
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants for NetListMgr COM object.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard20</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.NetListMgr</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -32,6 +32,8 @@ IEnumNetworkConnections, IEnumNetworks, INetwork, INetworkConnection, INetworkCo
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from Ole32.dll, OleAut32 and PropSys.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard20</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.Ole</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -35,6 +35,8 @@ IErrorLog, IPropertyBag, IRecordInfo, IEnumSTATSTG, IStorage, IDropSource, IOleW
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -1,8 +1,8 @@
## Correlation report for advapi32.dll, secur32.dll, authz.dll
### Methods (5% complete)
### Methods (28% complete)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[AbortSystemShutdown](https://www.google.com/search?num=5&q=AbortSystemShutdownA+site%3Amicrosoft.com) | advapi32.dll | |
[AbortSystemShutdown](http://msdn2.microsoft.com/en-us/library/aa376630) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.AbortSystemShutdown
[AcceptSecurityContext](https://www.google.com/search?num=5&q=AcceptSecurityContext+site%3Amicrosoft.com) | secur32.dll | |
[AccessCheck](https://www.google.com/search?num=5&q=AccessCheck+site%3Amicrosoft.com) | advapi32.dll | |
[AccessCheckAndAuditAlarm](https://www.google.com/search?num=5&q=AccessCheckAndAuditAlarmA+site%3Amicrosoft.com) | advapi32.dll | |
@ -29,9 +29,9 @@ Native Method | Native DLL | Header | Managed Method
[AddUsersToEncryptedFile](https://www.google.com/search?num=5&q=AddUsersToEncryptedFile+site%3Amicrosoft.com) | advapi32.dll | |
[AddUsersToEncryptedFileEx](https://www.google.com/search?num=5&q=AddUsersToEncryptedFileEx+site%3Amicrosoft.com) | advapi32.dll | |
[AdjustTokenGroups](https://www.google.com/search?num=5&q=AdjustTokenGroups+site%3Amicrosoft.com) | advapi32.dll | |
[AdjustTokenPrivileges](https://www.google.com/search?num=5&q=AdjustTokenPrivileges+site%3Amicrosoft.com) | advapi32.dll | |
[AllocateAndInitializeSid](https://www.google.com/search?num=5&q=AllocateAndInitializeSid+site%3Amicrosoft.com) | advapi32.dll | |
[AllocateLocallyUniqueId](https://www.google.com/search?num=5&q=AllocateLocallyUniqueId+site%3Amicrosoft.com) | advapi32.dll | |
[AdjustTokenPrivileges](http://msdn2.microsoft.com/en-us/library/aa375202) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.AdjustTokenPrivileges
[AllocateAndInitializeSid](http://msdn2.microsoft.com/en-us/library/aa375213) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.AllocateAndInitializeSid
[AllocateLocallyUniqueId](http://msdn2.microsoft.com/en-us/library/aa375260) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.AllocateLocallyUniqueId
[ApplyControlToken](https://www.google.com/search?num=5&q=ApplyControlToken+site%3Amicrosoft.com) | secur32.dll | |
[AreAllAccessesGranted](https://www.google.com/search?num=5&q=AreAllAccessesGranted+site%3Amicrosoft.com) | advapi32.dll | |
[AreAnyAccessesGranted](https://www.google.com/search?num=5&q=AreAnyAccessesGranted+site%3Amicrosoft.com) | advapi32.dll | |
@ -125,18 +125,18 @@ Native Method | Native DLL | Header | Managed Method
[BaseRegSetKeySecurity](https://www.google.com/search?num=5&q=BaseRegSetKeySecurity+site%3Amicrosoft.com) | advapi32.dll | |
[BaseRegSetValue](https://www.google.com/search?num=5&q=BaseRegSetValue+site%3Amicrosoft.com) | advapi32.dll | |
[BaseRegUnLoadKey](https://www.google.com/search?num=5&q=BaseRegUnLoadKey+site%3Amicrosoft.com) | advapi32.dll | |
[BuildExplicitAccessWithName](https://www.google.com/search?num=5&q=BuildExplicitAccessWithNameA+site%3Amicrosoft.com) | advapi32.dll | |
[BuildExplicitAccessWithName](http://msdn2.microsoft.com/en-us/library/5f12db19-63cf-4be6-9450-3c36e425967b) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.BuildExplicitAccessWithName
[BuildImpersonateExplicitAccessWithName](https://www.google.com/search?num=5&q=BuildImpersonateExplicitAccessWithNameA+site%3Amicrosoft.com) | advapi32.dll | |
[BuildImpersonateTrustee](https://www.google.com/search?num=5&q=BuildImpersonateTrusteeA+site%3Amicrosoft.com) | advapi32.dll | |
[BuildSecurityDescriptor](https://www.google.com/search?num=5&q=BuildSecurityDescriptorA+site%3Amicrosoft.com) | advapi32.dll | |
[BuildTrusteeWithName](https://www.google.com/search?num=5&q=BuildTrusteeWithNameA+site%3Amicrosoft.com) | advapi32.dll | |
[BuildTrusteeWithObjectsAndName](https://www.google.com/search?num=5&q=BuildTrusteeWithObjectsAndNameA+site%3Amicrosoft.com) | advapi32.dll | |
[BuildTrusteeWithObjectsAndSid](https://www.google.com/search?num=5&q=BuildTrusteeWithObjectsAndSidA+site%3Amicrosoft.com) | advapi32.dll | |
[BuildTrusteeWithSid](https://www.google.com/search?num=5&q=BuildTrusteeWithSidA+site%3Amicrosoft.com) | advapi32.dll | |
[BuildSecurityDescriptor](http://msdn2.microsoft.com/en-us/library/becc1218-5bc3-4ab2-86f8-3ebd10e16966) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.BuildSecurityDescriptor
[BuildTrusteeWithName](http://msdn2.microsoft.com/en-us/library/a66c23ac-8211-40fd-bfe8-ef9089bf3745) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.BuildTrusteeWithName
[BuildTrusteeWithObjectsAndName](http://msdn2.microsoft.com/en-us/library/62edadfe-0a7b-43ec-bd02-a63f928c7618) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.BuildTrusteeWithObjectsAndName
[BuildTrusteeWithObjectsAndSid](http://msdn2.microsoft.com/en-us/library/e940a87f-013e-458c-bdc1-9e81c7d905e0) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.BuildTrusteeWithObjectsAndSid
[BuildTrusteeWithSid](http://msdn2.microsoft.com/en-us/library/3745fbf2-911a-4cb6-81a8-6256c742c700) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.BuildTrusteeWithSid
[CancelOverlappedAccess](https://www.google.com/search?num=5&q=CancelOverlappedAccess+site%3Amicrosoft.com) | advapi32.dll | |
[ChangeAccountPassword](https://www.google.com/search?num=5&q=ChangeAccountPasswordA+site%3Amicrosoft.com) | secur32.dll | |
[ChangeServiceConfig](https://www.google.com/search?num=5&q=ChangeServiceConfigA+site%3Amicrosoft.com) | advapi32.dll | |
[ChangeServiceConfig2](https://www.google.com/search?num=5&q=ChangeServiceConfig2A+site%3Amicrosoft.com) | advapi32.dll | |
[ChangeServiceConfig](http://msdn2.microsoft.com/en-us/library/ms681987) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.ChangeServiceConfig
[ChangeServiceConfig2](http://msdn2.microsoft.com/en-us/library/ms681988) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.ChangeServiceConfig2
[CheckForHiberboot](https://www.google.com/search?num=5&q=CheckForHiberboot+site%3Amicrosoft.com) | advapi32.dll | |
[CheckTokenMembership](https://www.google.com/search?num=5&q=CheckTokenMembership+site%3Amicrosoft.com) | advapi32.dll | |
[ClearEventLog](https://www.google.com/search?num=5&q=ClearEventLogA+site%3Amicrosoft.com) | advapi32.dll | |
@ -144,7 +144,7 @@ Native Method | Native DLL | Header | Managed Method
[CloseEncryptedFileRaw](https://www.google.com/search?num=5&q=CloseEncryptedFileRaw+site%3Amicrosoft.com) | advapi32.dll | |
[CloseEventLog](https://www.google.com/search?num=5&q=CloseEventLog+site%3Amicrosoft.com) | advapi32.dll | |
[CloseLsaPerformanceData](https://www.google.com/search?num=5&q=CloseLsaPerformanceData+site%3Amicrosoft.com) | secur32.dll | |
[CloseServiceHandle](https://www.google.com/search?num=5&q=CloseServiceHandle+site%3Amicrosoft.com) | advapi32.dll | |
[CloseServiceHandle](http://msdn2.microsoft.com/en-us/library/6cf25994-4939-4aff-af38-5ffc8fc606ae) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.CloseServiceHandle
[CloseThreadWaitChainSession](https://www.google.com/search?num=5&q=CloseThreadWaitChainSession+site%3Amicrosoft.com) | advapi32.dll | |
[CloseTrace](https://www.google.com/search?num=5&q=CloseTrace+site%3Amicrosoft.com) | advapi32.dll | |
[CollectLsaPerformanceData](https://www.google.com/search?num=5&q=CollectLsaPerformanceData+site%3Amicrosoft.com) | secur32.dll | |
@ -159,14 +159,14 @@ Native Method | Native DLL | Header | Managed Method
[ConvertSDToStringSDRootDomain](https://www.google.com/search?num=5&q=ConvertSDToStringSDRootDomainA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertSecurityDescriptorToAccess](https://www.google.com/search?num=5&q=ConvertSecurityDescriptorToAccessA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertSecurityDescriptorToAccessNamed](https://www.google.com/search?num=5&q=ConvertSecurityDescriptorToAccessNamedA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertSecurityDescriptorToStringSecurityDescriptor](https://www.google.com/search?num=5&q=ConvertSecurityDescriptorToStringSecurityDescriptorA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertSidToStringSid](https://www.google.com/search?num=5&q=ConvertSidToStringSidA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertSecurityDescriptorToStringSecurityDescriptor](http://msdn2.microsoft.com/en-us/library/36140833-8e30-4c32-a88a-c10751b6c223) | advapi32.dll | sddl.h | Vanara.PInvoke.AdvApi32.ConvertSecurityDescriptorToStringSecurityDescriptor
[ConvertSidToStringSid](http://msdn2.microsoft.com/en-us/library/aa376399) | advapi32.dll | sddl.h | Vanara.PInvoke.AdvApi32.ConvertSidToStringSid
[ConvertStringSDToSDDomain](https://www.google.com/search?num=5&q=ConvertStringSDToSDDomainA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertStringSDToSDRootDomain](https://www.google.com/search?num=5&q=ConvertStringSDToSDRootDomainA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertStringSecurityDescriptorToSecurityDescriptor](https://www.google.com/search?num=5&q=ConvertStringSecurityDescriptorToSecurityDescriptorA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertStringSidToSid](https://www.google.com/search?num=5&q=ConvertStringSidToSidA+site%3Amicrosoft.com) | advapi32.dll | |
[ConvertStringSecurityDescriptorToSecurityDescriptor](http://msdn2.microsoft.com/en-us/library/c5654148-fb4c-436d-9378-a1168fc82607) | advapi32.dll | sddl.h | Vanara.PInvoke.AdvApi32.ConvertStringSecurityDescriptorToSecurityDescriptor
[ConvertStringSidToSid](http://msdn2.microsoft.com/en-us/library/aa376402) | advapi32.dll | sddl.h | Vanara.PInvoke.AdvApi32.ConvertStringSidToSid
[ConvertToAutoInheritPrivateObjectSecurity](https://www.google.com/search?num=5&q=ConvertToAutoInheritPrivateObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
[CopySid](https://www.google.com/search?num=5&q=CopySid+site%3Amicrosoft.com) | advapi32.dll | |
[CopySid](http://msdn2.microsoft.com/en-us/library/aa376404) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.CopySid
[CreateCodeAuthzLevel](https://www.google.com/search?num=5&q=CreateCodeAuthzLevel+site%3Amicrosoft.com) | advapi32.dll | |
[CreatePrivateObjectSecurity](https://www.google.com/search?num=5&q=CreatePrivateObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
[CreatePrivateObjectSecurityEx](https://www.google.com/search?num=5&q=CreatePrivateObjectSecurityEx+site%3Amicrosoft.com) | advapi32.dll | |
@ -175,25 +175,29 @@ Native Method | Native DLL | Header | Managed Method
[CreateProcessWithLogonW](https://www.google.com/search?num=5&q=CreateProcessWithLogonW+site%3Amicrosoft.com) | advapi32.dll | |
[CreateProcessWithTokenW](https://www.google.com/search?num=5&q=CreateProcessWithTokenW+site%3Amicrosoft.com) | advapi32.dll | |
[CreateRestrictedToken](https://www.google.com/search?num=5&q=CreateRestrictedToken+site%3Amicrosoft.com) | advapi32.dll | |
[CreateService](https://www.google.com/search?num=5&q=CreateServiceA+site%3Amicrosoft.com) | advapi32.dll | |
[CreateService](http://msdn2.microsoft.com/en-us/library/47288924-3294-4a50-b27d-7df80d5c957c) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.CreateService
[CreateServiceEx](https://www.google.com/search?num=5&q=CreateServiceEx+site%3Amicrosoft.com) | advapi32.dll | |
[CreateTraceInstanceId](https://www.google.com/search?num=5&q=CreateTraceInstanceId+site%3Amicrosoft.com) | advapi32.dll | |
[CreateWellKnownSid](https://www.google.com/search?num=5&q=CreateWellKnownSid+site%3Amicrosoft.com) | advapi32.dll | |
[CredDelete](https://www.google.com/search?num=5&q=CredDeleteA+site%3Amicrosoft.com) | advapi32.dll | |
[CredEnumerate](https://www.google.com/search?num=5&q=CredEnumerateA+site%3Amicrosoft.com) | advapi32.dll | |
[CredFindBestCredential](https://www.google.com/search?num=5&q=CredFindBestCredentialA+site%3Amicrosoft.com) | advapi32.dll | |
[CredFree](https://www.google.com/search?num=5&q=CredFree+site%3Amicrosoft.com) | advapi32.dll | |
[CredGetSessionTypes](https://www.google.com/search?num=5&q=CredGetSessionTypes+site%3Amicrosoft.com) | advapi32.dll | |
[CredGetTargetInfo](https://www.google.com/search?num=5&q=CredGetTargetInfoA+site%3Amicrosoft.com) | advapi32.dll | |
[CredIsMarshaledCredential](https://www.google.com/search?num=5&q=CredIsMarshaledCredentialA+site%3Amicrosoft.com) | advapi32.dll | |
[CredIsProtected](https://www.google.com/search?num=5&q=CredIsProtectedA+site%3Amicrosoft.com) | advapi32.dll | |
[CredProtect](https://www.google.com/search?num=5&q=CredProtectA+site%3Amicrosoft.com) | advapi32.dll | |
[CredRead](https://www.google.com/search?num=5&q=CredReadA+site%3Amicrosoft.com) | advapi32.dll | |
[CredReadDomainCredentials](https://www.google.com/search?num=5&q=CredReadDomainCredentialsA+site%3Amicrosoft.com) | advapi32.dll | |
[CredRename](https://www.google.com/search?num=5&q=CredRenameA+site%3Amicrosoft.com) | advapi32.dll | |
[CredUnprotect](https://www.google.com/search?num=5&q=CredUnprotectA+site%3Amicrosoft.com) | advapi32.dll | |
[CredWrite](https://www.google.com/search?num=5&q=CredWriteA+site%3Amicrosoft.com) | advapi32.dll | |
[CredWriteDomainCredentials](https://www.google.com/search?num=5&q=CredWriteDomainCredentialsA+site%3Amicrosoft.com) | advapi32.dll | |
[CredDelete](http://msdn2.microsoft.com/en-us/library/154af9c8-18fd-412d-899d-7c6d2138380d) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredDelete
[CredEnumerate](http://msdn2.microsoft.com/en-us/library/ef0b7620-7b00-45f1-af16-141d2e940783) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredEnumerate
[CredFindBestCredential](http://msdn2.microsoft.com/en-us/library/b39e3167-dd63-4b81-b850-f3117be348a5) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredFindBestCredential
[CredFree](http://msdn2.microsoft.com/en-us/library/bc33ab1b-dd3f-4e1b-96d2-e32ceff89ada) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredFree
[CredGetSessionTypes](http://msdn2.microsoft.com/en-us/library/70f8d5e0-235b-4330-8add-566b41c91c17) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredGetSessionTypes
[CredGetTargetInfo](http://msdn2.microsoft.com/en-us/library/14dca0af-72d7-4ca8-84bb-c7040c5b5fb9) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredGetTargetInfo
[CredIsMarshaledCredential](http://msdn2.microsoft.com/en-us/library/fc902c0c-41e0-4178-8ca0-227a1d218388) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredIsMarshaledCredential
[CredIsProtected](http://msdn2.microsoft.com/en-us/library/3c38ecf5-1288-4a50-ad17-595e9ff4aaca) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredIsProtected
[CredMarshalCredentialA](http://msdn2.microsoft.com/en-us/library/20a1d54b-04a7-4b0a-88e4-1970d1f71502) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredMarshalCredential
[CredMarshalCredentialW](http://msdn2.microsoft.com/en-us/library/20a1d54b-04a7-4b0a-88e4-1970d1f71502) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredMarshalCredential
[CredProtect](http://msdn2.microsoft.com/en-us/library/1e299dfb-2ffe-463c-9e2c-b7774a2216e3) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredProtect
[CredRead](http://msdn2.microsoft.com/en-us/library/3222de7b-5290-4e82-a382-b2db6afc78cc) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredRead
[CredReadDomainCredentials](http://msdn2.microsoft.com/en-us/library/b62cb9c9-2a64-4ef4-97f0-e1ea85976d3e) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredReadDomainCredentials
[CredRename](http://msdn2.microsoft.com/en-us/library/e598f2ae-f975-4dd2-bf0b-e2fd96d4c940) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredRename
[CredUnmarshalCredentialA](http://msdn2.microsoft.com/en-us/library/65757235-d92c-479f-8e2b-1f8d8564792b) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredUnmarshalCredential
[CredUnmarshalCredentialW](http://msdn2.microsoft.com/en-us/library/65757235-d92c-479f-8e2b-1f8d8564792b) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredUnmarshalCredential
[CredUnprotect](http://msdn2.microsoft.com/en-us/library/7a22fb2b-edfc-45f2-b2d2-729f3761584d) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredUnprotect
[CredWrite](http://msdn2.microsoft.com/en-us/library/9a590347-d610-4916-bf63-60fbec173ac2) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredWrite
[CredWriteDomainCredentials](http://msdn2.microsoft.com/en-us/library/6b54c14f-a736-4fb0-b4e4-97765a792a5e) | advapi32.dll | wincred.h | Vanara.PInvoke.AdvApi32.CredWriteDomainCredentials
[CveEventWrite](https://www.google.com/search?num=5&q=CveEventWrite+site%3Amicrosoft.com) | advapi32.dll | |
[DecryptFile](https://www.google.com/search?num=5&q=DecryptFileA+site%3Amicrosoft.com) | advapi32.dll | |
[DecryptMessage](https://www.google.com/search?num=5&q=DecryptMessage+site%3Amicrosoft.com) | secur32.dll | |
@ -201,11 +205,11 @@ Native Method | Native DLL | Header | Managed Method
[DeleteSecurityContext](https://www.google.com/search?num=5&q=DeleteSecurityContext+site%3Amicrosoft.com) | secur32.dll | |
[DeleteSecurityPackage](https://www.google.com/search?num=5&q=DeleteSecurityPackageA+site%3Amicrosoft.com) | secur32.dll | |
[DeleteService](https://www.google.com/search?num=5&q=DeleteService+site%3Amicrosoft.com) | advapi32.dll | |
[DeregisterEventSource](https://www.google.com/search?num=5&q=DeregisterEventSource+site%3Amicrosoft.com) | advapi32.dll | |
[DeregisterEventSource](http://msdn2.microsoft.com/en-us/library/f5d1f4b0-5320-4aec-a129-cafff6f1fed1) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.DeregisterEventSource
[DestroyPrivateObjectSecurity](https://www.google.com/search?num=5&q=DestroyPrivateObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
[DuplicateEncryptionInfoFile](https://www.google.com/search?num=5&q=DuplicateEncryptionInfoFile+site%3Amicrosoft.com) | advapi32.dll | |
[DuplicateToken](https://www.google.com/search?num=5&q=DuplicateToken+site%3Amicrosoft.com) | advapi32.dll | |
[DuplicateTokenEx](https://www.google.com/search?num=5&q=DuplicateTokenEx+site%3Amicrosoft.com) | advapi32.dll | |
[DuplicateToken](http://msdn2.microsoft.com/en-us/library/aa446616) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.DuplicateToken
[DuplicateTokenEx](http://msdn2.microsoft.com/en-us/library/aa446617) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.DuplicateTokenEx
[EnableTrace](https://www.google.com/search?num=5&q=EnableTrace+site%3Amicrosoft.com) | advapi32.dll | |
[EnableTraceEx](https://www.google.com/search?num=5&q=EnableTraceEx+site%3Amicrosoft.com) | advapi32.dll | |
[EnableTraceEx2](https://www.google.com/search?num=5&q=EnableTraceEx2+site%3Amicrosoft.com) | advapi32.dll | |
@ -223,7 +227,7 @@ Native Method | Native DLL | Header | Managed Method
[EnumServicesStatusEx](https://www.google.com/search?num=5&q=EnumServicesStatusExA+site%3Amicrosoft.com) | advapi32.dll | |
[EqualDomainSid](https://www.google.com/search?num=5&q=EqualDomainSid+site%3Amicrosoft.com) | advapi32.dll | |
[EqualPrefixSid](https://www.google.com/search?num=5&q=EqualPrefixSid+site%3Amicrosoft.com) | advapi32.dll | |
[EqualSid](https://www.google.com/search?num=5&q=EqualSid+site%3Amicrosoft.com) | advapi32.dll | |
[EqualSid](http://msdn2.microsoft.com/en-us/library/aa446622) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.EqualSid
[EventAccessControl](https://www.google.com/search?num=5&q=EventAccessControl+site%3Amicrosoft.com) | advapi32.dll | |
[EventAccessQuery](https://www.google.com/search?num=5&q=EventAccessQuery+site%3Amicrosoft.com) | advapi32.dll | |
[EventAccessRemove](https://www.google.com/search?num=5&q=EventAccessRemove+site%3Amicrosoft.com) | advapi32.dll | |
@ -251,13 +255,13 @@ Native Method | Native DLL | Header | Managed Method
[FreeEncryptedFileKeyInfo](https://www.google.com/search?num=5&q=FreeEncryptedFileKeyInfo+site%3Amicrosoft.com) | advapi32.dll | |
[FreeEncryptedFileMetadata](https://www.google.com/search?num=5&q=FreeEncryptedFileMetadata+site%3Amicrosoft.com) | advapi32.dll | |
[FreeEncryptionCertificateHashList](https://www.google.com/search?num=5&q=FreeEncryptionCertificateHashList+site%3Amicrosoft.com) | advapi32.dll | |
[FreeInheritedFromArray](https://www.google.com/search?num=5&q=FreeInheritedFromArray+site%3Amicrosoft.com) | advapi32.dll | |
[FreeSid](https://www.google.com/search?num=5&q=FreeSid+site%3Amicrosoft.com) | advapi32.dll | |
[FreeInheritedFromArray](http://msdn2.microsoft.com/en-us/library/aa446630) | advapi32.dll | Aclapi.h | Vanara.PInvoke.AdvApi32.FreeInheritedFromArray
[FreeSid](http://msdn2.microsoft.com/en-us/library/aa446631) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.FreeSid
[GenerateNewCAPID](https://www.google.com/search?num=5&q=GenerateNewCAPID+site%3Amicrosoft.com) | authz.dll | |
[GetAccessPermissionsForObject](https://www.google.com/search?num=5&q=GetAccessPermissionsForObjectA+site%3Amicrosoft.com) | advapi32.dll | |
[GetAce](https://www.google.com/search?num=5&q=GetAce+site%3Amicrosoft.com) | advapi32.dll | |
[GetAclInformation](https://www.google.com/search?num=5&q=GetAclInformation+site%3Amicrosoft.com) | advapi32.dll | |
[GetAuditedPermissionsFromAcl](https://www.google.com/search?num=5&q=GetAuditedPermissionsFromAclA+site%3Amicrosoft.com) | advapi32.dll | |
[GetAce](http://msdn2.microsoft.com/en-us/library/aa446634) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetAce
[GetAclInformation](http://msdn2.microsoft.com/en-us/library/aa446635) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetAclInformation
[GetAuditedPermissionsFromAcl](http://msdn2.microsoft.com/en-us/library/4381fe12-5fb3-4f9c-8daa-261cb1a466ec) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.GetAuditedPermissionsFromAcl
[GetCentralAccessPoliciesByCapID](https://www.google.com/search?num=5&q=GetCentralAccessPoliciesByCapID+site%3Amicrosoft.com) | authz.dll | |
[GetCentralAccessPoliciesByDN](https://www.google.com/search?num=5&q=GetCentralAccessPoliciesByDN+site%3Amicrosoft.com) | authz.dll | |
[GetClaimDefinitions](https://www.google.com/search?num=5&q=GetClaimDefinitions+site%3Amicrosoft.com) | authz.dll | |
@ -266,60 +270,60 @@ Native Method | Native DLL | Header | Managed Method
[GetCurrentHwProfile](https://www.google.com/search?num=5&q=GetCurrentHwProfileA+site%3Amicrosoft.com) | advapi32.dll | |
[GetDefaultCAPESecurityDescriptor](https://www.google.com/search?num=5&q=GetDefaultCAPESecurityDescriptor+site%3Amicrosoft.com) | authz.dll | |
[GetDynamicTimeZoneInformationEffectiveYears](https://www.google.com/search?num=5&q=GetDynamicTimeZoneInformationEffectiveYears+site%3Amicrosoft.com) | advapi32.dll | |
[GetEffectiveRightsFromAcl](https://www.google.com/search?num=5&q=GetEffectiveRightsFromAclA+site%3Amicrosoft.com) | advapi32.dll | |
[GetEffectiveRightsFromAcl](http://msdn2.microsoft.com/en-us/library/aa446637) | advapi32.dll | Aclapi.h | Vanara.PInvoke.AdvApi32.GetEffectiveRightsFromAcl
[GetEncryptedFileMetadata](https://www.google.com/search?num=5&q=GetEncryptedFileMetadata+site%3Amicrosoft.com) | advapi32.dll | |
[GetEventLogInformation](https://www.google.com/search?num=5&q=GetEventLogInformation+site%3Amicrosoft.com) | advapi32.dll | |
[GetExplicitEntriesFromAcl](https://www.google.com/search?num=5&q=GetExplicitEntriesFromAclA+site%3Amicrosoft.com) | advapi32.dll | |
[GetExplicitEntriesFromAcl](http://msdn2.microsoft.com/en-us/library/186aa6aa-efc3-4f8a-acad-e257da3dac0b) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.GetExplicitEntriesFromAcl
[GetFileSecurity](https://www.google.com/search?num=5&q=GetFileSecurityA+site%3Amicrosoft.com) | advapi32.dll | |
[GetInformationCodeAuthzLevelW](https://www.google.com/search?num=5&q=GetInformationCodeAuthzLevelW+site%3Amicrosoft.com) | advapi32.dll | |
[GetInformationCodeAuthzPolicyW](https://www.google.com/search?num=5&q=GetInformationCodeAuthzPolicyW+site%3Amicrosoft.com) | advapi32.dll | |
[GetInheritanceSource](https://www.google.com/search?num=5&q=GetInheritanceSourceA+site%3Amicrosoft.com) | advapi32.dll | |
[GetInheritanceSource](http://msdn2.microsoft.com/en-us/library/aa446640) | advapi32.dll | Aclapi.h | Vanara.PInvoke.AdvApi32.GetInheritanceSource
[GetKernelObjectSecurity](https://www.google.com/search?num=5&q=GetKernelObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
[GetLengthSid](https://www.google.com/search?num=5&q=GetLengthSid+site%3Amicrosoft.com) | advapi32.dll | |
[GetLengthSid](http://msdn2.microsoft.com/en-us/library/aa446642) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetLengthSid
[GetLocalManagedApplicationData](https://www.google.com/search?num=5&q=GetLocalManagedApplicationData+site%3Amicrosoft.com) | advapi32.dll | |
[GetLocalManagedApplications](https://www.google.com/search?num=5&q=GetLocalManagedApplications+site%3Amicrosoft.com) | advapi32.dll | |
[GetManagedApplicationCategories](https://www.google.com/search?num=5&q=GetManagedApplicationCategories+site%3Amicrosoft.com) | advapi32.dll | |
[GetManagedApplications](https://www.google.com/search?num=5&q=GetManagedApplications+site%3Amicrosoft.com) | advapi32.dll | |
[GetMultipleTrustee](https://www.google.com/search?num=5&q=GetMultipleTrusteeA+site%3Amicrosoft.com) | advapi32.dll | |
[GetMultipleTrusteeOperation](https://www.google.com/search?num=5&q=GetMultipleTrusteeOperationA+site%3Amicrosoft.com) | advapi32.dll | |
[GetNamedSecurityInfo](https://www.google.com/search?num=5&q=GetNamedSecurityInfoA+site%3Amicrosoft.com) | advapi32.dll | |
[GetNamedSecurityInfo](http://msdn2.microsoft.com/en-us/library/aa446645) | advapi32.dll | Aclapi.h | Vanara.PInvoke.AdvApi32.GetNamedSecurityInfo
[GetNamedSecurityInfoEx](https://www.google.com/search?num=5&q=GetNamedSecurityInfoExA+site%3Amicrosoft.com) | advapi32.dll | |
[GetNumberOfEventLogRecords](https://www.google.com/search?num=5&q=GetNumberOfEventLogRecords+site%3Amicrosoft.com) | advapi32.dll | |
[GetOldestEventLogRecord](https://www.google.com/search?num=5&q=GetOldestEventLogRecord+site%3Amicrosoft.com) | advapi32.dll | |
[GetOverlappedAccessResults](https://www.google.com/search?num=5&q=GetOverlappedAccessResults+site%3Amicrosoft.com) | advapi32.dll | |
[GetPrivateObjectSecurity](https://www.google.com/search?num=5&q=GetPrivateObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityDescriptorControl](https://www.google.com/search?num=5&q=GetSecurityDescriptorControl+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityDescriptorDacl](https://www.google.com/search?num=5&q=GetSecurityDescriptorDacl+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityDescriptorGroup](https://www.google.com/search?num=5&q=GetSecurityDescriptorGroup+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityDescriptorLength](https://www.google.com/search?num=5&q=GetSecurityDescriptorLength+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityDescriptorOwner](https://www.google.com/search?num=5&q=GetSecurityDescriptorOwner+site%3Amicrosoft.com) | advapi32.dll | |
[GetPrivateObjectSecurity](http://msdn2.microsoft.com/en-us/library/aa446646) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetPrivateObjectSecurity
[GetSecurityDescriptorControl](http://msdn2.microsoft.com/en-us/library/d66682f2-8017-4245-9d93-5f8332a5b483) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSecurityDescriptorControl
[GetSecurityDescriptorDacl](http://msdn2.microsoft.com/en-us/library/aa446648) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSecurityDescriptorDacl
[GetSecurityDescriptorGroup](http://msdn2.microsoft.com/en-us/library/a920b49e-a4c2-4e49-b529-88c12205d995) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSecurityDescriptorGroup
[GetSecurityDescriptorLength](http://msdn2.microsoft.com/en-us/library/eb331839-ff3e-4f4b-b93b-18da2ea72697) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSecurityDescriptorLength
[GetSecurityDescriptorOwner](http://msdn2.microsoft.com/en-us/library/aa446651) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSecurityDescriptorOwner
[GetSecurityDescriptorRMControl](https://www.google.com/search?num=5&q=GetSecurityDescriptorRMControl+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityDescriptorSacl](https://www.google.com/search?num=5&q=GetSecurityDescriptorSacl+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityInfo](https://www.google.com/search?num=5&q=GetSecurityInfo+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityDescriptorSacl](http://msdn2.microsoft.com/en-us/library/6bf59735-aaa3-4751-8c98-00cc197df4e5) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSecurityDescriptorSacl
[GetSecurityInfo](http://msdn2.microsoft.com/en-us/library/64767a6b-cd79-4e02-881a-706a078ff446) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.GetSecurityInfo
[GetSecurityInfoEx](https://www.google.com/search?num=5&q=GetSecurityInfoExA+site%3Amicrosoft.com) | advapi32.dll | |
[GetSecurityUserInfo](https://www.google.com/search?num=5&q=GetSecurityUserInfo+site%3Amicrosoft.com) | secur32.dll | |
[GetServiceDisplayName](https://www.google.com/search?num=5&q=GetServiceDisplayNameA+site%3Amicrosoft.com) | advapi32.dll | |
[GetServiceKeyName](https://www.google.com/search?num=5&q=GetServiceKeyNameA+site%3Amicrosoft.com) | advapi32.dll | |
[GetSidIdentifierAuthority](https://www.google.com/search?num=5&q=GetSidIdentifierAuthority+site%3Amicrosoft.com) | advapi32.dll | |
[GetSidLengthRequired](https://www.google.com/search?num=5&q=GetSidLengthRequired+site%3Amicrosoft.com) | advapi32.dll | |
[GetSidSubAuthority](https://www.google.com/search?num=5&q=GetSidSubAuthority+site%3Amicrosoft.com) | advapi32.dll | |
[GetSidIdentifierAuthority](http://msdn2.microsoft.com/en-us/library/67a06e7b-775f-424c-ab36-0fc9b93b801a) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSidIdentifierAuthority
[GetSidLengthRequired](http://msdn2.microsoft.com/en-us/library/a481fb4f-20bd-4f44-a3d5-d8b8d6228339) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSidLengthRequired
[GetSidSubAuthority](http://msdn2.microsoft.com/en-us/library/aa446657) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetSidSubAuthority
[GetSidSubAuthorityCount](https://www.google.com/search?num=5&q=GetSidSubAuthorityCount+site%3Amicrosoft.com) | advapi32.dll | |
[GetStringConditionFromBinary](https://www.google.com/search?num=5&q=GetStringConditionFromBinary+site%3Amicrosoft.com) | advapi32.dll | |
[GetThreadWaitChain](https://www.google.com/search?num=5&q=GetThreadWaitChain+site%3Amicrosoft.com) | advapi32.dll | |
[GetTokenInformation](https://www.google.com/search?num=5&q=GetTokenInformation+site%3Amicrosoft.com) | advapi32.dll | |
[GetTokenInformation](http://msdn2.microsoft.com/en-us/library/aa446671) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.GetTokenInformation
[GetTraceEnableFlags](https://www.google.com/search?num=5&q=GetTraceEnableFlags+site%3Amicrosoft.com) | advapi32.dll | |
[GetTraceEnableLevel](https://www.google.com/search?num=5&q=GetTraceEnableLevel+site%3Amicrosoft.com) | advapi32.dll | |
[GetTraceLoggerHandle](https://www.google.com/search?num=5&q=GetTraceLoggerHandle+site%3Amicrosoft.com) | advapi32.dll | |
[GetTrusteeForm](https://www.google.com/search?num=5&q=GetTrusteeFormA+site%3Amicrosoft.com) | advapi32.dll | |
[GetTrusteeName](https://www.google.com/search?num=5&q=GetTrusteeNameA+site%3Amicrosoft.com) | advapi32.dll | |
[GetTrusteeType](https://www.google.com/search?num=5&q=GetTrusteeTypeA+site%3Amicrosoft.com) | advapi32.dll | |
[GetTrusteeForm](http://msdn2.microsoft.com/en-us/library/e5e450b8-0b7b-4324-b453-5c020e74b1ee) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.GetTrusteeForm
[GetTrusteeName](http://msdn2.microsoft.com/en-us/library/9d3ce528-fb28-4e2e-bf7f-7d84c697fcb6) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.GetTrusteeName
[GetTrusteeType](http://msdn2.microsoft.com/en-us/library/19777929-43cf-45ea-8283-e42bf9ce8d7a) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.GetTrusteeType
[GetUserName](https://www.google.com/search?num=5&q=GetUserNameA+site%3Amicrosoft.com) | advapi32.dll | |
[GetUserNameEx](https://www.google.com/search?num=5&q=GetUserNameExA+site%3Amicrosoft.com) | secur32.dll | |
[GetWindowsAccountDomainSid](https://www.google.com/search?num=5&q=GetWindowsAccountDomainSid+site%3Amicrosoft.com) | advapi32.dll | |
[IdentifyCodeAuthzLevelW](https://www.google.com/search?num=5&q=IdentifyCodeAuthzLevelW+site%3Amicrosoft.com) | advapi32.dll | |
[ImpersonateAnonymousToken](https://www.google.com/search?num=5&q=ImpersonateAnonymousToken+site%3Amicrosoft.com) | advapi32.dll | |
[ImpersonateLoggedOnUser](https://www.google.com/search?num=5&q=ImpersonateLoggedOnUser+site%3Amicrosoft.com) | advapi32.dll | |
[ImpersonateNamedPipeClient](https://www.google.com/search?num=5&q=ImpersonateNamedPipeClient+site%3Amicrosoft.com) | advapi32.dll | |
[ImpersonateLoggedOnUser](http://msdn2.microsoft.com/en-us/library/cf5c31ae-6749-45c2-888f-697060cc8c75) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.ImpersonateLoggedOnUser
[ImpersonateNamedPipeClient](http://msdn2.microsoft.com/en-us/library/aa378618) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.ImpersonateNamedPipeClient
[ImpersonateSecurityContext](https://www.google.com/search?num=5&q=ImpersonateSecurityContext+site%3Amicrosoft.com) | secur32.dll | |
[ImpersonateSelf](https://www.google.com/search?num=5&q=ImpersonateSelf+site%3Amicrosoft.com) | advapi32.dll | |
[ImportSecurityContext](https://www.google.com/search?num=5&q=ImportSecurityContextA+site%3Amicrosoft.com) | secur32.dll | |
@ -328,9 +332,9 @@ Native Method | Native DLL | Header | Managed Method
[InitializeSecurityContext](https://www.google.com/search?num=5&q=InitializeSecurityContextA+site%3Amicrosoft.com) | secur32.dll | |
[InitializeSecurityDescriptor](https://www.google.com/search?num=5&q=InitializeSecurityDescriptor+site%3Amicrosoft.com) | advapi32.dll | |
[InitializeSid](https://www.google.com/search?num=5&q=InitializeSid+site%3Amicrosoft.com) | advapi32.dll | |
[InitiateShutdown](https://www.google.com/search?num=5&q=InitiateShutdownA+site%3Amicrosoft.com) | advapi32.dll | |
[InitiateSystemShutdown](https://www.google.com/search?num=5&q=InitiateSystemShutdownA+site%3Amicrosoft.com) | advapi32.dll | |
[InitiateSystemShutdownEx](https://www.google.com/search?num=5&q=InitiateSystemShutdownExA+site%3Amicrosoft.com) | advapi32.dll | |
[InitiateShutdown](http://msdn2.microsoft.com/en-us/library/aa376872) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.InitiateShutdown
[InitiateSystemShutdown](http://msdn2.microsoft.com/en-us/library/cad54fea-7f59-438c-83ac-f0160d81496b) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.InitiateSystemShutdown
[InitiateSystemShutdownEx](http://msdn2.microsoft.com/en-us/library/aa376874) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.InitiateSystemShutdownEx
[InitSecurityInterface](https://www.google.com/search?num=5&q=InitSecurityInterfaceA+site%3Amicrosoft.com) | secur32.dll | |
[InstallApplication](https://www.google.com/search?num=5&q=InstallApplication+site%3Amicrosoft.com) | advapi32.dll | |
[IsTextUnicode](https://www.google.com/search?num=5&q=IsTextUnicode+site%3Amicrosoft.com) | advapi32.dll | |
@ -339,46 +343,46 @@ Native Method | Native DLL | Header | Managed Method
[IsValidAcl](https://www.google.com/search?num=5&q=IsValidAcl+site%3Amicrosoft.com) | advapi32.dll | |
[IsValidRelativeSecurityDescriptor](https://www.google.com/search?num=5&q=IsValidRelativeSecurityDescriptor+site%3Amicrosoft.com) | advapi32.dll | |
[IsValidSecurityDescriptor](https://www.google.com/search?num=5&q=IsValidSecurityDescriptor+site%3Amicrosoft.com) | advapi32.dll | |
[IsValidSid](https://www.google.com/search?num=5&q=IsValidSid+site%3Amicrosoft.com) | advapi32.dll | |
[IsValidSid](http://msdn2.microsoft.com/en-us/library/aa379151) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.IsValidSid
[IsWellKnownSid](https://www.google.com/search?num=5&q=IsWellKnownSid+site%3Amicrosoft.com) | advapi32.dll | |
[LockServiceDatabase](https://www.google.com/search?num=5&q=LockServiceDatabase+site%3Amicrosoft.com) | advapi32.dll | |
[LogonUser](https://www.google.com/search?num=5&q=LogonUserA+site%3Amicrosoft.com) | advapi32.dll | |
[LogonUserEx](https://www.google.com/search?num=5&q=LogonUserExA+site%3Amicrosoft.com) | advapi32.dll | |
[LogonUser](http://msdn2.microsoft.com/en-us/library/aa378184) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.LogonUser
[LogonUserEx](http://msdn2.microsoft.com/en-us/library/aa378189) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.LogonUserEx
[LogonUserExExW](https://www.google.com/search?num=5&q=LogonUserExExW+site%3Amicrosoft.com) | advapi32.dll | |
[LookupAccountName](https://www.google.com/search?num=5&q=LookupAccountNameA+site%3Amicrosoft.com) | advapi32.dll | |
[LookupAccountSid](https://www.google.com/search?num=5&q=LookupAccountSidA+site%3Amicrosoft.com) | advapi32.dll | |
[LookupPrivilegeDisplayName](https://www.google.com/search?num=5&q=LookupPrivilegeDisplayNameA+site%3Amicrosoft.com) | advapi32.dll | |
[LookupPrivilegeName](https://www.google.com/search?num=5&q=LookupPrivilegeNameA+site%3Amicrosoft.com) | advapi32.dll | |
[LookupPrivilegeValue](https://www.google.com/search?num=5&q=LookupPrivilegeValueA+site%3Amicrosoft.com) | advapi32.dll | |
[LookupSecurityDescriptorParts](https://www.google.com/search?num=5&q=LookupSecurityDescriptorPartsA+site%3Amicrosoft.com) | advapi32.dll | |
[LsaAddAccountRights](https://www.google.com/search?num=5&q=LsaAddAccountRights+site%3Amicrosoft.com) | advapi32.dll | |
[LookupAccountName](http://msdn2.microsoft.com/en-us/library/aa379159) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.LookupAccountName
[LookupAccountSid](http://msdn2.microsoft.com/en-us/library/aa379166) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.LookupAccountSid
[LookupPrivilegeDisplayName](http://msdn2.microsoft.com/en-us/library/1fbb26b6-615e-4883-9f4b-3a1d05d9feaa) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.LookupPrivilegeDisplayName
[LookupPrivilegeName](http://msdn2.microsoft.com/en-us/library/580fb58f-1470-4389-9f07-8f37403e2bdf) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.LookupPrivilegeName
[LookupPrivilegeValue](http://msdn2.microsoft.com/en-us/library/334b8ba8-101d-43a1-a8bf-1c7e0448c272) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.LookupPrivilegeValue
[LookupSecurityDescriptorParts](http://msdn2.microsoft.com/en-us/library/68c3f56b-6c48-4f4b-bd38-9f4e346c663b) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.LookupSecurityDescriptorParts
[LsaAddAccountRights](http://msdn2.microsoft.com/en-us/library/ms721786) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaAddAccountRights
[LsaAddPrivilegesToAccount](https://www.google.com/search?num=5&q=LsaAddPrivilegesToAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaCallAuthenticationPackage](https://www.google.com/search?num=5&q=LsaCallAuthenticationPackage+site%3Amicrosoft.com) | secur32.dll | |
[LsaClearAuditLog](https://www.google.com/search?num=5&q=LsaClearAuditLog+site%3Amicrosoft.com) | advapi32.dll | |
[LsaClose](https://www.google.com/search?num=5&q=LsaClose+site%3Amicrosoft.com) | advapi32.dll | |
[LsaClose](http://msdn2.microsoft.com/en-us/library/6283b1da-4ec3-48e1-91f6-321c6390befe) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaClose
[LsaConnectUntrusted](http://msdn2.microsoft.com/en-us/library/b54917c8-51cd-4891-9613-f37a4a46448b) | secur32.dll | ntsecapi.h | Vanara.PInvoke.Secur32.LsaConnectUntrusted
[LsaCreateAccount](https://www.google.com/search?num=5&q=LsaCreateAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaCreateAccount](https://www.google.com/search?num=5&q=LsaCreateAccount+site%3Amicrosoft.com) | advapi32.dll | | Vanara.PInvoke.AdvApi32.LsaCreateAccount
[LsaCreateSecret](https://www.google.com/search?num=5&q=LsaCreateSecret+site%3Amicrosoft.com) | advapi32.dll | |
[LsaCreateTrustedDomain](https://www.google.com/search?num=5&q=LsaCreateTrustedDomain+site%3Amicrosoft.com) | advapi32.dll | |
[LsaCreateTrustedDomainEx](https://www.google.com/search?num=5&q=LsaCreateTrustedDomainEx+site%3Amicrosoft.com) | advapi32.dll | |
[LsaDelete](https://www.google.com/search?num=5&q=LsaDelete+site%3Amicrosoft.com) | advapi32.dll | |
[LsaDeleteTrustedDomain](https://www.google.com/search?num=5&q=LsaDeleteTrustedDomain+site%3Amicrosoft.com) | advapi32.dll | |
[LsaDeregisterLogonProcess](http://msdn2.microsoft.com/en-us/library/aa378269) | secur32.dll | Ntsecapi.h | Vanara.PInvoke.Secur32.LsaDeregisterLogonProcess
[LsaEnumerateAccountRights](https://www.google.com/search?num=5&q=LsaEnumerateAccountRights+site%3Amicrosoft.com) | advapi32.dll | |
[LsaEnumerateAccountRights](http://msdn2.microsoft.com/en-us/library/3f4a4a9a-66ca-410a-8bdc-c390e8b966e3) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaEnumerateAccountRights
[LsaEnumerateAccounts](https://www.google.com/search?num=5&q=LsaEnumerateAccounts+site%3Amicrosoft.com) | advapi32.dll | |
[LsaEnumerateAccountsWithUserRight](https://www.google.com/search?num=5&q=LsaEnumerateAccountsWithUserRight+site%3Amicrosoft.com) | advapi32.dll | |
[LsaEnumerateAccountsWithUserRight](http://msdn2.microsoft.com/en-us/library/97e7180e-4edb-4edd-915e-0477e7e7a9ff) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaEnumerateAccountsWithUserRight
[LsaEnumerateLogonSessions](https://www.google.com/search?num=5&q=LsaEnumerateLogonSessions+site%3Amicrosoft.com) | secur32.dll | |
[LsaEnumeratePrivileges](https://www.google.com/search?num=5&q=LsaEnumeratePrivileges+site%3Amicrosoft.com) | advapi32.dll | |
[LsaEnumeratePrivilegesOfAccount](https://www.google.com/search?num=5&q=LsaEnumeratePrivilegesOfAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaEnumerateTrustedDomains](https://www.google.com/search?num=5&q=LsaEnumerateTrustedDomains+site%3Amicrosoft.com) | advapi32.dll | |
[LsaEnumerateTrustedDomainsEx](https://www.google.com/search?num=5&q=LsaEnumerateTrustedDomainsEx+site%3Amicrosoft.com) | advapi32.dll | |
[LsaFreeMemory](https://www.google.com/search?num=5&q=LsaFreeMemory+site%3Amicrosoft.com) | advapi32.dll | |
[LsaFreeReturnBuffer](https://www.google.com/search?num=5&q=LsaFreeReturnBuffer+site%3Amicrosoft.com) | secur32.dll | |
[LsaGetAppliedCAPIDs](https://www.google.com/search?num=5&q=LsaGetAppliedCAPIDs+site%3Amicrosoft.com) | advapi32.dll | |
[LsaFreeMemory](http://msdn2.microsoft.com/en-us/library/6eb3d18f-c54c-4e51-8a4b-b7a3f930cfa9) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaFreeMemory
[LsaFreeReturnBuffer](http://msdn2.microsoft.com/en-us/library/e814ed68-07e7-4936-ba96-5411086f43f6) | secur32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaFreeReturnBuffer
[LsaGetAppliedCAPIDs](http://msdn2.microsoft.com/en-us/library/hh846251) | advapi32.dll | ntlsa.h | Vanara.PInvoke.AdvApi32.LsaGetAppliedCAPIDs
[LsaGetLogonSessionData](https://www.google.com/search?num=5&q=LsaGetLogonSessionData+site%3Amicrosoft.com) | secur32.dll | |
[LsaGetQuotasForAccount](https://www.google.com/search?num=5&q=LsaGetQuotasForAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaGetRemoteUserName](https://www.google.com/search?num=5&q=LsaGetRemoteUserName+site%3Amicrosoft.com) | advapi32.dll | |
[LsaGetSystemAccessAccount](https://www.google.com/search?num=5&q=LsaGetSystemAccessAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaGetSystemAccessAccount](https://www.google.com/search?num=5&q=LsaGetSystemAccessAccount+site%3Amicrosoft.com) | advapi32.dll | | Vanara.PInvoke.AdvApi32.LsaGetSystemAccessAccount
[LsaGetUserName](https://www.google.com/search?num=5&q=LsaGetUserName+site%3Amicrosoft.com) | advapi32.dll | |
[LsaICLookupNames](https://www.google.com/search?num=5&q=LsaICLookupNames+site%3Amicrosoft.com) | advapi32.dll | |
[LsaICLookupNamesWithCreds](https://www.google.com/search?num=5&q=LsaICLookupNamesWithCreds+site%3Amicrosoft.com) | advapi32.dll | |
@ -387,32 +391,32 @@ Native Method | Native DLL | Header | Managed Method
[LsaLogonUser](https://www.google.com/search?num=5&q=LsaLogonUser+site%3Amicrosoft.com) | secur32.dll | |
[LsaLookupAuthenticationPackage](http://msdn2.microsoft.com/en-us/library/aa378297) | secur32.dll | Ntsecapi.h | Vanara.PInvoke.Secur32.LsaLookupAuthenticationPackage
[LsaLookupNames](https://www.google.com/search?num=5&q=LsaLookupNames+site%3Amicrosoft.com) | advapi32.dll | |
[LsaLookupNames2](https://www.google.com/search?num=5&q=LsaLookupNames2+site%3Amicrosoft.com) | advapi32.dll | |
[LsaLookupNames2](http://msdn2.microsoft.com/en-us/library/fe219070-6a00-4b8c-b2e4-2ad290a1cb9c) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaLookupNames2
[LsaLookupPrivilegeDisplayName](https://www.google.com/search?num=5&q=LsaLookupPrivilegeDisplayName+site%3Amicrosoft.com) | advapi32.dll | |
[LsaLookupPrivilegeName](https://www.google.com/search?num=5&q=LsaLookupPrivilegeName+site%3Amicrosoft.com) | advapi32.dll | |
[LsaLookupPrivilegeValue](https://www.google.com/search?num=5&q=LsaLookupPrivilegeValue+site%3Amicrosoft.com) | advapi32.dll | |
[LsaLookupPrivilegeValue](http://msdn2.microsoft.com/en-us/library/4926fff9-6e1a-475c-95ab-78c9b67aaa87) | advapi32.dll | ntlsa.h | Vanara.PInvoke.AdvApi32.LsaLookupPrivilegeValue
[LsaLookupSids](https://www.google.com/search?num=5&q=LsaLookupSids+site%3Amicrosoft.com) | advapi32.dll | |
[LsaLookupSids2](https://www.google.com/search?num=5&q=LsaLookupSids2+site%3Amicrosoft.com) | advapi32.dll | |
[LsaLookupSids2](http://msdn2.microsoft.com/en-us/library/6B30D1FF-35DC-44E8-A765-36A5761EC0CE) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaLookupSids2
[LsaManageSidNameMapping](https://www.google.com/search?num=5&q=LsaManageSidNameMapping+site%3Amicrosoft.com) | advapi32.dll | |
[LsaNtStatusToWinError](https://www.google.com/search?num=5&q=LsaNtStatusToWinError+site%3Amicrosoft.com) | advapi32.dll | |
[LsaOpenAccount](https://www.google.com/search?num=5&q=LsaOpenAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaOpenPolicy](https://www.google.com/search?num=5&q=LsaOpenPolicy+site%3Amicrosoft.com) | advapi32.dll | |
[LsaNtStatusToWinError](http://msdn2.microsoft.com/en-us/library/fa91794c-c502-4b36-84cc-a8d77c8e9d9f) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaNtStatusToWinError
[LsaOpenAccount](https://www.google.com/search?num=5&q=LsaOpenAccount+site%3Amicrosoft.com) | advapi32.dll | | Vanara.PInvoke.AdvApi32.LsaOpenAccount
[LsaOpenPolicy](http://msdn2.microsoft.com/en-us/library/361bc962-1e97-4606-a835-cbce37692c55) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaOpenPolicy
[LsaOpenPolicySce](https://www.google.com/search?num=5&q=LsaOpenPolicySce+site%3Amicrosoft.com) | advapi32.dll | |
[LsaOpenSecret](https://www.google.com/search?num=5&q=LsaOpenSecret+site%3Amicrosoft.com) | advapi32.dll | |
[LsaOpenTrustedDomain](https://www.google.com/search?num=5&q=LsaOpenTrustedDomain+site%3Amicrosoft.com) | advapi32.dll | |
[LsaOpenTrustedDomainByName](https://www.google.com/search?num=5&q=LsaOpenTrustedDomainByName+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQueryCAPs](https://www.google.com/search?num=5&q=LsaQueryCAPs+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQueryCAPs](http://msdn2.microsoft.com/en-us/library/55D6FD6F-0FD5-41F6-967B-F5600E19C3EF) | advapi32.dll | ntlsa.h | Vanara.PInvoke.AdvApi32.LsaQueryCAPs
[LsaQueryDomainInformationPolicy](https://www.google.com/search?num=5&q=LsaQueryDomainInformationPolicy+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQueryForestTrustInformation](https://www.google.com/search?num=5&q=LsaQueryForestTrustInformation+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQueryInformationPolicy](https://www.google.com/search?num=5&q=LsaQueryInformationPolicy+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQueryInfoTrustedDomain](https://www.google.com/search?num=5&q=LsaQueryInfoTrustedDomain+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQuerySecret](https://www.google.com/search?num=5&q=LsaQuerySecret+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQuerySecurityObject](https://www.google.com/search?num=5&q=LsaQuerySecurityObject+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQueryTrustedDomainInfo](https://www.google.com/search?num=5&q=LsaQueryTrustedDomainInfo+site%3Amicrosoft.com) | advapi32.dll | |
[LsaQueryTrustedDomainInfo](http://msdn2.microsoft.com/en-us/library/62925515-a6f3-4b5f-bf97-edb968af19a3) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaQueryTrustedDomainInfo
[LsaQueryTrustedDomainInfoByName](https://www.google.com/search?num=5&q=LsaQueryTrustedDomainInfoByName+site%3Amicrosoft.com) | advapi32.dll | |
[LsaRegisterLogonProcess](http://msdn2.microsoft.com/en-us/library/aa378318) | secur32.dll | Ntsecapi.h | Vanara.PInvoke.Secur32.LsaRegisterLogonProcess
[LsaRegisterPolicyChangeNotification](https://www.google.com/search?num=5&q=LsaRegisterPolicyChangeNotification+site%3Amicrosoft.com) | secur32.dll | |
[LsaRemoveAccountRights](https://www.google.com/search?num=5&q=LsaRemoveAccountRights+site%3Amicrosoft.com) | advapi32.dll | |
[LsaRemoveAccountRights](http://msdn2.microsoft.com/en-us/library/ad250a01-7a24-4fae-975c-aa3e65731c82) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaRemoveAccountRights
[LsaRemovePrivilegesFromAccount](https://www.google.com/search?num=5&q=LsaRemovePrivilegesFromAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaRetrievePrivateData](https://www.google.com/search?num=5&q=LsaRetrievePrivateData+site%3Amicrosoft.com) | advapi32.dll | |
[LsaSetCAPs](https://www.google.com/search?num=5&q=LsaSetCAPs+site%3Amicrosoft.com) | advapi32.dll | |
@ -423,16 +427,16 @@ Native Method | Native DLL | Header | Managed Method
[LsaSetQuotasForAccount](https://www.google.com/search?num=5&q=LsaSetQuotasForAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaSetSecret](https://www.google.com/search?num=5&q=LsaSetSecret+site%3Amicrosoft.com) | advapi32.dll | |
[LsaSetSecurityObject](https://www.google.com/search?num=5&q=LsaSetSecurityObject+site%3Amicrosoft.com) | advapi32.dll | |
[LsaSetSystemAccessAccount](https://www.google.com/search?num=5&q=LsaSetSystemAccessAccount+site%3Amicrosoft.com) | advapi32.dll | |
[LsaSetSystemAccessAccount](https://www.google.com/search?num=5&q=LsaSetSystemAccessAccount+site%3Amicrosoft.com) | advapi32.dll | | Vanara.PInvoke.AdvApi32.LsaSetSystemAccessAccount
[LsaSetTrustedDomainInfoByName](https://www.google.com/search?num=5&q=LsaSetTrustedDomainInfoByName+site%3Amicrosoft.com) | advapi32.dll | |
[LsaSetTrustedDomainInformation](https://www.google.com/search?num=5&q=LsaSetTrustedDomainInformation+site%3Amicrosoft.com) | advapi32.dll | |
[LsaSetTrustedDomainInformation](http://msdn2.microsoft.com/en-us/library/a7b89ea7-af92-46ba-ac73-2fba1cc27680) | advapi32.dll | ntsecapi.h | Vanara.PInvoke.AdvApi32.LsaSetTrustedDomainInformation
[LsaStorePrivateData](https://www.google.com/search?num=5&q=LsaStorePrivateData+site%3Amicrosoft.com) | advapi32.dll | |
[LsaUnregisterPolicyChangeNotification](https://www.google.com/search?num=5&q=LsaUnregisterPolicyChangeNotification+site%3Amicrosoft.com) | secur32.dll | |
[MakeAbsoluteSD](https://www.google.com/search?num=5&q=MakeAbsoluteSD+site%3Amicrosoft.com) | advapi32.dll | |
[MakeAbsoluteSD2](https://www.google.com/search?num=5&q=MakeAbsoluteSD2+site%3Amicrosoft.com) | advapi32.dll | |
[MakeSelfRelativeSD](https://www.google.com/search?num=5&q=MakeSelfRelativeSD+site%3Amicrosoft.com) | advapi32.dll | |
[MakeSignature](https://www.google.com/search?num=5&q=MakeSignature+site%3Amicrosoft.com) | secur32.dll | |
[MapGenericMask](https://www.google.com/search?num=5&q=MapGenericMask+site%3Amicrosoft.com) | advapi32.dll | |
[MapGenericMask](http://msdn2.microsoft.com/en-us/library/aa379266) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.MapGenericMask
[MD4Final](https://www.google.com/search?num=5&q=MD4Final+site%3Amicrosoft.com) | advapi32.dll | |
[MD4Init](https://www.google.com/search?num=5&q=MD4Init+site%3Amicrosoft.com) | advapi32.dll | |
[MD4Update](https://www.google.com/search?num=5&q=MD4Update+site%3Amicrosoft.com) | advapi32.dll | |
@ -454,10 +458,10 @@ Native Method | Native DLL | Header | Managed Method
[OpenEncryptedFileRaw](https://www.google.com/search?num=5&q=OpenEncryptedFileRawA+site%3Amicrosoft.com) | advapi32.dll | |
[OpenEventLog](https://www.google.com/search?num=5&q=OpenEventLogA+site%3Amicrosoft.com) | advapi32.dll | |
[OpenLsaPerformanceData](https://www.google.com/search?num=5&q=OpenLsaPerformanceData+site%3Amicrosoft.com) | secur32.dll | |
[OpenProcessToken](https://www.google.com/search?num=5&q=OpenProcessToken+site%3Amicrosoft.com) | advapi32.dll | |
[OpenSCManager](https://www.google.com/search?num=5&q=OpenSCManagerA+site%3Amicrosoft.com) | advapi32.dll | |
[OpenService](https://www.google.com/search?num=5&q=OpenServiceA+site%3Amicrosoft.com) | advapi32.dll | |
[OpenThreadToken](https://www.google.com/search?num=5&q=OpenThreadToken+site%3Amicrosoft.com) | advapi32.dll | |
[OpenProcessToken](http://msdn2.microsoft.com/en-us/library/aa379295) | advapi32.dll | processthreadsapi.h | Vanara.PInvoke.AdvApi32.OpenProcessToken
[OpenSCManager](http://msdn2.microsoft.com/en-us/library/a0237989-e5a7-4a3a-ab23-e2474a995341) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.OpenSCManager
[OpenService](http://msdn2.microsoft.com/en-us/library/e0a42613-95ad-4d0f-a464-c6df33014064) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.OpenService
[OpenThreadToken](http://msdn2.microsoft.com/en-us/library/aa379296) | advapi32.dll | processthreadsapi.h | Vanara.PInvoke.AdvApi32.OpenThreadToken
[OpenThreadWaitChainSession](https://www.google.com/search?num=5&q=OpenThreadWaitChainSession+site%3Amicrosoft.com) | advapi32.dll | |
[OpenTrace](https://www.google.com/search?num=5&q=OpenTraceA+site%3Amicrosoft.com) | advapi32.dll | |
[OperationEnd](https://www.google.com/search?num=5&q=OperationEnd+site%3Amicrosoft.com) | advapi32.dll | |
@ -491,7 +495,7 @@ Native Method | Native DLL | Header | Managed Method
[PerfStartProvider](https://www.google.com/search?num=5&q=PerfStartProvider+site%3Amicrosoft.com) | advapi32.dll | |
[PerfStartProviderEx](https://www.google.com/search?num=5&q=PerfStartProviderEx+site%3Amicrosoft.com) | advapi32.dll | |
[PerfStopProvider](https://www.google.com/search?num=5&q=PerfStopProvider+site%3Amicrosoft.com) | advapi32.dll | |
[PrivilegeCheck](https://www.google.com/search?num=5&q=PrivilegeCheck+site%3Amicrosoft.com) | advapi32.dll | |
[PrivilegeCheck](http://msdn2.microsoft.com/en-us/library/aa379304) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.PrivilegeCheck
[PrivilegedServiceAuditAlarm](https://www.google.com/search?num=5&q=PrivilegedServiceAuditAlarmA+site%3Amicrosoft.com) | advapi32.dll | |
[ProcessIdleTasks](https://www.google.com/search?num=5&q=ProcessIdleTasks+site%3Amicrosoft.com) | advapi32.dll | |
[ProcessTrace](https://www.google.com/search?num=5&q=ProcessTrace+site%3Amicrosoft.com) | advapi32.dll | |
@ -503,8 +507,8 @@ Native Method | Native DLL | Header | Managed Method
[QuerySecurityAccessMask](https://www.google.com/search?num=5&q=QuerySecurityAccessMask+site%3Amicrosoft.com) | advapi32.dll | |
[QuerySecurityContextToken](https://www.google.com/search?num=5&q=QuerySecurityContextToken+site%3Amicrosoft.com) | secur32.dll | |
[QuerySecurityPackageInfo](https://www.google.com/search?num=5&q=QuerySecurityPackageInfoA+site%3Amicrosoft.com) | secur32.dll | |
[QueryServiceConfig](https://www.google.com/search?num=5&q=QueryServiceConfigA+site%3Amicrosoft.com) | advapi32.dll | |
[QueryServiceConfig2](https://www.google.com/search?num=5&q=QueryServiceConfig2A+site%3Amicrosoft.com) | advapi32.dll | |
[QueryServiceConfig](http://msdn2.microsoft.com/en-us/library/ms684932) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.QueryServiceConfig
[QueryServiceConfig2](http://msdn2.microsoft.com/en-us/library/cb090e59-aeff-4420-bb7c-912a4911006f) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.QueryServiceConfig2
[QueryServiceDynamicInformation](https://www.google.com/search?num=5&q=QueryServiceDynamicInformation+site%3Amicrosoft.com) | advapi32.dll | |
[QueryServiceLockStatus](https://www.google.com/search?num=5&q=QueryServiceLockStatusA+site%3Amicrosoft.com) | advapi32.dll | |
[QueryServiceObjectSecurity](https://www.google.com/search?num=5&q=QueryServiceObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
@ -518,64 +522,64 @@ Native Method | Native DLL | Header | Managed Method
[ReadEncryptedFileRaw](https://www.google.com/search?num=5&q=ReadEncryptedFileRaw+site%3Amicrosoft.com) | advapi32.dll | |
[ReadEventLog](https://www.google.com/search?num=5&q=ReadEventLogA+site%3Amicrosoft.com) | advapi32.dll | |
[RefreshClaimDictionary](https://www.google.com/search?num=5&q=RefreshClaimDictionary+site%3Amicrosoft.com) | authz.dll | |
[RegCloseKey](https://www.google.com/search?num=5&q=RegCloseKey+site%3Amicrosoft.com) | advapi32.dll | |
[RegConnectRegistry](https://www.google.com/search?num=5&q=RegConnectRegistryA+site%3Amicrosoft.com) | advapi32.dll | |
[RegCopyTree](https://www.google.com/search?num=5&q=RegCopyTreeA+site%3Amicrosoft.com) | advapi32.dll | |
[RegCreateKey](https://www.google.com/search?num=5&q=RegCreateKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegCreateKeyEx](https://www.google.com/search?num=5&q=RegCreateKeyExA+site%3Amicrosoft.com) | advapi32.dll | |
[RegCreateKeyTransacted](https://www.google.com/search?num=5&q=RegCreateKeyTransactedA+site%3Amicrosoft.com) | advapi32.dll | |
[RegDeleteKey](https://www.google.com/search?num=5&q=RegDeleteKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegDeleteKeyEx](https://www.google.com/search?num=5&q=RegDeleteKeyExA+site%3Amicrosoft.com) | advapi32.dll | |
[RegDeleteKeyTransacted](https://www.google.com/search?num=5&q=RegDeleteKeyTransactedA+site%3Amicrosoft.com) | advapi32.dll | |
[RegDeleteKeyValue](https://www.google.com/search?num=5&q=RegDeleteKeyValueA+site%3Amicrosoft.com) | advapi32.dll | |
[RegDeleteTree](https://www.google.com/search?num=5&q=RegDeleteTreeA+site%3Amicrosoft.com) | advapi32.dll | |
[RegDeleteValue](https://www.google.com/search?num=5&q=RegDeleteValueA+site%3Amicrosoft.com) | advapi32.dll | |
[RegDisablePredefinedCache](https://www.google.com/search?num=5&q=RegDisablePredefinedCache+site%3Amicrosoft.com) | advapi32.dll | |
[RegDisablePredefinedCacheEx](https://www.google.com/search?num=5&q=RegDisablePredefinedCacheEx+site%3Amicrosoft.com) | advapi32.dll | |
[RegDisableReflectionKey](https://www.google.com/search?num=5&q=RegDisableReflectionKey+site%3Amicrosoft.com) | advapi32.dll | |
[RegEnableReflectionKey](https://www.google.com/search?num=5&q=RegEnableReflectionKey+site%3Amicrosoft.com) | advapi32.dll | |
[RegEnumKey](https://www.google.com/search?num=5&q=RegEnumKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegEnumKeyEx](https://www.google.com/search?num=5&q=RegEnumKeyExA+site%3Amicrosoft.com) | advapi32.dll | |
[RegEnumValue](https://www.google.com/search?num=5&q=RegEnumValueA+site%3Amicrosoft.com) | advapi32.dll | |
[RegFlushKey](https://www.google.com/search?num=5&q=RegFlushKey+site%3Amicrosoft.com) | advapi32.dll | |
[RegGetKeySecurity](https://www.google.com/search?num=5&q=RegGetKeySecurity+site%3Amicrosoft.com) | advapi32.dll | |
[RegGetValue](https://www.google.com/search?num=5&q=RegGetValueA+site%3Amicrosoft.com) | advapi32.dll | |
[RegisterEventSource](https://www.google.com/search?num=5&q=RegisterEventSourceA+site%3Amicrosoft.com) | advapi32.dll | |
[RegisterServiceCtrlHandler](https://www.google.com/search?num=5&q=RegisterServiceCtrlHandlerA+site%3Amicrosoft.com) | advapi32.dll | |
[RegisterServiceCtrlHandlerEx](https://www.google.com/search?num=5&q=RegisterServiceCtrlHandlerExA+site%3Amicrosoft.com) | advapi32.dll | |
[RegCloseKey](http://msdn2.microsoft.com/en-us/library/ms724837) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegCloseKey
[RegConnectRegistry](http://msdn2.microsoft.com/en-us/library/d7fb41cc-4855-4ad7-879c-b1ac85ac5803) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegConnectRegistry
[RegCopyTree](http://msdn2.microsoft.com/en-us/library/d16f2b47-e537-42b0-90b3-9f9a00e61e76) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegCopyTree
[RegCreateKey](http://msdn2.microsoft.com/en-us/library/cb4d30f4-e288-41e8-86e0-807c313db53d) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegCreateKey
[RegCreateKeyEx](http://msdn2.microsoft.com/en-us/library/e9ffad7f-c0b6-44ce-bf22-fbe45ca98bf4) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegCreateKeyEx
[RegCreateKeyTransacted](http://msdn2.microsoft.com/en-us/library/f18e5ff9-41c3-4c26-8d01-a8ec69bcdef2) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegCreateKeyTransacted
[RegDeleteKey](http://msdn2.microsoft.com/en-us/library/a2310ca0-1b9f-48d1-a3b5-ea3a528bfaba) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDeleteKey
[RegDeleteKeyEx](http://msdn2.microsoft.com/en-us/library/41fde6a5-647c-4293-92b8-74be54fa4136) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDeleteKeyEx
[RegDeleteKeyTransacted](http://msdn2.microsoft.com/en-us/library/4c67e08b-4338-4441-8300-6b6ed31d4b21) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDeleteKeyTransacted
[RegDeleteKeyValue](http://msdn2.microsoft.com/en-us/library/a4a082c2-8cf3-41eb-87c0-a6c453821f8b) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDeleteKeyValue
[RegDeleteTree](http://msdn2.microsoft.com/en-us/library/984813a9-e191-498f-8288-b8a4c567112b) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDeleteTree
[RegDeleteValue](http://msdn2.microsoft.com/en-us/library/4393b4ef-cd10-40d4-bb12-2d84e7cb7d3c) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDeleteValue
[RegDisablePredefinedCache](http://msdn2.microsoft.com/en-us/library/837584b3-5f61-4535-9e66-56f50ab3fa46) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDisablePredefinedCache
[RegDisablePredefinedCacheEx](http://msdn2.microsoft.com/en-us/library/a56cf7d9-0ac4-4719-af41-3c0cdcef6faf) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDisablePredefinedCacheEx
[RegDisableReflectionKey](http://msdn2.microsoft.com/en-us/library/294a1d28-d09f-44a3-8bc0-6fae50c3a8f8) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegDisableReflectionKey
[RegEnableReflectionKey](http://msdn2.microsoft.com/en-us/library/6dfbc3d8-cd71-4ee9-a10b-955c26a6894c) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegEnableReflectionKey
[RegEnumKey](http://msdn2.microsoft.com/en-us/library/18a05c60-6c6d-438f-9003-f07d688d86a3) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegEnumKey
[RegEnumKeyEx](http://msdn2.microsoft.com/en-us/library/647d34cc-01ba-4389-be29-b099ed198e7c) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegEnumKeyEx
[RegEnumValue](http://msdn2.microsoft.com/en-us/library/7014ff96-c655-486f-af32-180b87281b06) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegEnumValue
[RegFlushKey](http://msdn2.microsoft.com/en-us/library/ae1160be-1da7-4621-a0fc-727aa229ec06) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegFlushKey
[RegGetKeySecurity](http://msdn2.microsoft.com/en-us/library/26bd8f89-9241-4c13-a214-c2b276d68c92) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegGetKeySecurity
[RegGetValue](http://msdn2.microsoft.com/en-us/library/1c06facb-6735-4b3f-b77d-f162e3faaada) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegGetValue
[RegisterEventSource](http://msdn2.microsoft.com/en-us/library/53706f83-6bc9-45d6-981c-bd0680d7bc08) | advapi32.dll | winbase.h | Vanara.PInvoke.AdvApi32.RegisterEventSource
[RegisterServiceCtrlHandler](http://msdn2.microsoft.com/en-us/library/31ec28fe-8774-48fc-91ba-6fa43108e2cc) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.RegisterServiceCtrlHandler
[RegisterServiceCtrlHandlerEx](http://msdn2.microsoft.com/en-us/library/23eea346-9899-4214-88f4-9b7eb7ce1332) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.RegisterServiceCtrlHandlerEx
[RegisterTraceGuids](https://www.google.com/search?num=5&q=RegisterTraceGuidsA+site%3Amicrosoft.com) | advapi32.dll | |
[RegisterWaitChainCOMCallback](https://www.google.com/search?num=5&q=RegisterWaitChainCOMCallback+site%3Amicrosoft.com) | advapi32.dll | |
[RegLoadAppKey](https://www.google.com/search?num=5&q=RegLoadAppKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegLoadKey](https://www.google.com/search?num=5&q=RegLoadKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegLoadMUIString](https://www.google.com/search?num=5&q=RegLoadMUIStringA+site%3Amicrosoft.com) | advapi32.dll | |
[RegNotifyChangeKeyValue](https://www.google.com/search?num=5&q=RegNotifyChangeKeyValue+site%3Amicrosoft.com) | advapi32.dll | |
[RegOpenCurrentUser](https://www.google.com/search?num=5&q=RegOpenCurrentUser+site%3Amicrosoft.com) | advapi32.dll | |
[RegOpenKey](https://www.google.com/search?num=5&q=RegOpenKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegOpenKeyEx](https://www.google.com/search?num=5&q=RegOpenKeyExA+site%3Amicrosoft.com) | advapi32.dll | |
[RegOpenKeyTransacted](https://www.google.com/search?num=5&q=RegOpenKeyTransactedA+site%3Amicrosoft.com) | advapi32.dll | |
[RegOpenUserClassesRoot](https://www.google.com/search?num=5&q=RegOpenUserClassesRoot+site%3Amicrosoft.com) | advapi32.dll | |
[RegOverridePredefKey](https://www.google.com/search?num=5&q=RegOverridePredefKey+site%3Amicrosoft.com) | advapi32.dll | |
[RegQueryInfoKey](https://www.google.com/search?num=5&q=RegQueryInfoKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegQueryMultipleValues](https://www.google.com/search?num=5&q=RegQueryMultipleValuesA+site%3Amicrosoft.com) | advapi32.dll | |
[RegQueryReflectionKey](https://www.google.com/search?num=5&q=RegQueryReflectionKey+site%3Amicrosoft.com) | advapi32.dll | |
[RegQueryValue](https://www.google.com/search?num=5&q=RegQueryValueA+site%3Amicrosoft.com) | advapi32.dll | |
[RegQueryValueEx](https://www.google.com/search?num=5&q=RegQueryValueExA+site%3Amicrosoft.com) | advapi32.dll | |
[RegReplaceKey](https://www.google.com/search?num=5&q=RegReplaceKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegRestoreKey](https://www.google.com/search?num=5&q=RegRestoreKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegSaveKey](https://www.google.com/search?num=5&q=RegSaveKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegSaveKeyEx](https://www.google.com/search?num=5&q=RegSaveKeyExA+site%3Amicrosoft.com) | advapi32.dll | |
[RegSetKeySecurity](https://www.google.com/search?num=5&q=RegSetKeySecurity+site%3Amicrosoft.com) | advapi32.dll | |
[RegSetKeyValue](https://www.google.com/search?num=5&q=RegSetKeyValueA+site%3Amicrosoft.com) | advapi32.dll | |
[RegSetValue](https://www.google.com/search?num=5&q=RegSetValueA+site%3Amicrosoft.com) | advapi32.dll | |
[RegSetValueEx](https://www.google.com/search?num=5&q=RegSetValueExA+site%3Amicrosoft.com) | advapi32.dll | |
[RegUnLoadKey](https://www.google.com/search?num=5&q=RegUnLoadKeyA+site%3Amicrosoft.com) | advapi32.dll | |
[RegLoadAppKey](http://msdn2.microsoft.com/en-us/library/88eb79c1-9ea0-436e-ad2e-9ce05b8dcb2c) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegLoadAppKey
[RegLoadKey](http://msdn2.microsoft.com/en-us/library/536395aa-03ba-430d-a66d-fcabdc9dfe22) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegLoadKey
[RegLoadMUIString](http://msdn2.microsoft.com/en-us/library/76ffc77f-a1bc-4e01-858f-4a76563a2bbc) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegLoadMUIString
[RegNotifyChangeKeyValue](http://msdn2.microsoft.com/en-us/library/ms724892) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegNotifyChangeKeyValue
[RegOpenCurrentUser](http://msdn2.microsoft.com/en-us/library/10a8cbfb-52dc-436a-827e-78f12eb62af0) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegOpenCurrentUser
[RegOpenKey](http://msdn2.microsoft.com/en-us/library/bad0a0f8-1889-4eff-98be-084c95d69f3b) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegOpenKey
[RegOpenKeyEx](http://msdn2.microsoft.com/en-us/library/ms724897) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegOpenKeyEx
[RegOpenKeyTransacted](http://msdn2.microsoft.com/en-us/library/11663ed2-d17c-4f08-be7b-9b591271fbcd) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegOpenKeyTransacted
[RegOpenUserClassesRoot](http://msdn2.microsoft.com/en-us/library/bd068826-cf88-4fc7-a7d6-96cc03e923c7) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegOpenUserClassesRoot
[RegOverridePredefKey](http://msdn2.microsoft.com/en-us/library/ad58b7ff-cd61-4719-9028-b470ae7e9bb0) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegOverridePredefKey
[RegQueryInfoKey](http://msdn2.microsoft.com/en-us/library/25eb2cd2-9fdd-4d6f-8071-daab56f9aae1) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegQueryInfoKey
[RegQueryMultipleValues](http://msdn2.microsoft.com/en-us/library/e718534a-6e68-40f5-9cdd-170ce9b5e6e5) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegQueryMultipleValues
[RegQueryReflectionKey](http://msdn2.microsoft.com/en-us/library/d7516eab-dbcf-4ece-931e-d7bb2a983503) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegQueryReflectionKey
[RegQueryValue](http://msdn2.microsoft.com/en-us/library/18f27717-3bd9-45ac-a1ea-61abc1753a52) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegQueryValue
[RegQueryValueEx](http://msdn2.microsoft.com/en-us/library/202d253a-10ff-40e7-8eec-a49717443b81) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegQueryValueEx
[RegReplaceKey](http://msdn2.microsoft.com/en-us/library/f968fa71-edc8-4f49-b9fa-1e89224df33b) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegReplaceKey
[RegRestoreKey](http://msdn2.microsoft.com/en-us/library/6267383d-427a-4ae8-b9cc-9c1861d3b7bb) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegRestoreKey
[RegSaveKey](http://msdn2.microsoft.com/en-us/library/da80f40d-0099-4748-94ca-5d3b001e633e) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegSaveKey
[RegSaveKeyEx](http://msdn2.microsoft.com/en-us/library/f93b4162-cac4-42f7-bfd4-9e23fff80a03) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegSaveKeyEx
[RegSetKeySecurity](http://msdn2.microsoft.com/en-us/library/08bf8fc1-6a08-490e-b589-730211774257) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegSetKeySecurity
[RegSetKeyValue](http://msdn2.microsoft.com/en-us/library/e27d2dd6-b139-4ac1-8dd8-527022333364) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegSetKeyValue
[RegSetValue](http://msdn2.microsoft.com/en-us/library/f99774d4-575b-43a3-8887-e15acb0477fd) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegSetValue
[RegSetValueEx](http://msdn2.microsoft.com/en-us/library/29b0e27c-4999-4e92-bd8b-bba74920bccc) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegSetValueEx
[RegUnLoadKey](http://msdn2.microsoft.com/en-us/library/73b4b6a9-4acb-4247-bd7f-82024ba3e14a) | advapi32.dll | winreg.h | Vanara.PInvoke.AdvApi32.RegUnLoadKey
[RemoteRegQueryMultipleValues2Wrapper](https://www.google.com/search?num=5&q=RemoteRegQueryMultipleValues2Wrapper+site%3Amicrosoft.com) | advapi32.dll | |
[RemoteRegQueryMultipleValuesWrapper](https://www.google.com/search?num=5&q=RemoteRegQueryMultipleValuesWrapper+site%3Amicrosoft.com) | advapi32.dll | |
[RemoveTraceCallback](https://www.google.com/search?num=5&q=RemoveTraceCallback+site%3Amicrosoft.com) | advapi32.dll | |
[RemoveUsersFromEncryptedFile](https://www.google.com/search?num=5&q=RemoveUsersFromEncryptedFile+site%3Amicrosoft.com) | advapi32.dll | |
[ReportEvent](https://www.google.com/search?num=5&q=ReportEventA+site%3Amicrosoft.com) | advapi32.dll | |
[RevertSecurityContext](https://www.google.com/search?num=5&q=RevertSecurityContext+site%3Amicrosoft.com) | secur32.dll | |
[RevertToSelf](https://www.google.com/search?num=5&q=RevertToSelf+site%3Amicrosoft.com) | advapi32.dll | |
[RevertToSelf](http://msdn2.microsoft.com/en-us/library/aa379317) | advapi32.dll | securitybaseapi.h | Vanara.PInvoke.AdvApi32.RevertToSelf
[SafeBaseRegGetKeySecurity](https://www.google.com/search?num=5&q=SafeBaseRegGetKeySecurity+site%3Amicrosoft.com) | advapi32.dll | |
[SaferCloseLevel](https://www.google.com/search?num=5&q=SaferCloseLevel+site%3Amicrosoft.com) | advapi32.dll | |
[SaferComputeTokenFromLevel](https://www.google.com/search?num=5&q=SaferComputeTokenFromLevel+site%3Amicrosoft.com) | advapi32.dll | |
@ -612,13 +616,13 @@ Native Method | Native DLL | Header | Managed Method
[SetCredentialsAttributes](https://www.google.com/search?num=5&q=SetCredentialsAttributesA+site%3Amicrosoft.com) | secur32.dll | |
[SetEncryptedFileMetadata](https://www.google.com/search?num=5&q=SetEncryptedFileMetadata+site%3Amicrosoft.com) | advapi32.dll | |
[SetEntriesInAccessList](https://www.google.com/search?num=5&q=SetEntriesInAccessListA+site%3Amicrosoft.com) | advapi32.dll | |
[SetEntriesInAcl](https://www.google.com/search?num=5&q=SetEntriesInAclA+site%3Amicrosoft.com) | advapi32.dll | |
[SetEntriesInAcl](http://msdn2.microsoft.com/en-us/library/05960fc1-1ad2-4c19-a65c-62259af5e18c) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.SetEntriesInAcl
[SetEntriesInAuditList](https://www.google.com/search?num=5&q=SetEntriesInAuditListA+site%3Amicrosoft.com) | advapi32.dll | |
[SetFileSecurity](https://www.google.com/search?num=5&q=SetFileSecurityA+site%3Amicrosoft.com) | advapi32.dll | |
[SetInformationCodeAuthzLevelW](https://www.google.com/search?num=5&q=SetInformationCodeAuthzLevelW+site%3Amicrosoft.com) | advapi32.dll | |
[SetInformationCodeAuthzPolicyW](https://www.google.com/search?num=5&q=SetInformationCodeAuthzPolicyW+site%3Amicrosoft.com) | advapi32.dll | |
[SetKernelObjectSecurity](https://www.google.com/search?num=5&q=SetKernelObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
[SetNamedSecurityInfo](https://www.google.com/search?num=5&q=SetNamedSecurityInfoA+site%3Amicrosoft.com) | advapi32.dll | |
[SetNamedSecurityInfo](http://msdn2.microsoft.com/en-us/library/aa379579) | advapi32.dll | Aclapi.h | Vanara.PInvoke.AdvApi32.SetNamedSecurityInfo
[SetNamedSecurityInfoEx](https://www.google.com/search?num=5&q=SetNamedSecurityInfoExA+site%3Amicrosoft.com) | advapi32.dll | |
[SetPrivateObjectSecurity](https://www.google.com/search?num=5&q=SetPrivateObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
[SetPrivateObjectSecurityEx](https://www.google.com/search?num=5&q=SetPrivateObjectSecurityEx+site%3Amicrosoft.com) | advapi32.dll | |
@ -629,12 +633,12 @@ Native Method | Native DLL | Header | Managed Method
[SetSecurityDescriptorOwner](https://www.google.com/search?num=5&q=SetSecurityDescriptorOwner+site%3Amicrosoft.com) | advapi32.dll | |
[SetSecurityDescriptorRMControl](https://www.google.com/search?num=5&q=SetSecurityDescriptorRMControl+site%3Amicrosoft.com) | advapi32.dll | |
[SetSecurityDescriptorSacl](https://www.google.com/search?num=5&q=SetSecurityDescriptorSacl+site%3Amicrosoft.com) | advapi32.dll | |
[SetSecurityInfo](https://www.google.com/search?num=5&q=SetSecurityInfo+site%3Amicrosoft.com) | advapi32.dll | |
[SetSecurityInfo](http://msdn2.microsoft.com/en-us/library/f1781ba9-81eb-46f9-b530-c390b67d65de) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.SetSecurityInfo
[SetSecurityInfoEx](https://www.google.com/search?num=5&q=SetSecurityInfoExA+site%3Amicrosoft.com) | advapi32.dll | |
[SetServiceBits](https://www.google.com/search?num=5&q=SetServiceBits+site%3Amicrosoft.com) | advapi32.dll | |
[SetServiceObjectSecurity](https://www.google.com/search?num=5&q=SetServiceObjectSecurity+site%3Amicrosoft.com) | advapi32.dll | |
[SetServiceStatus](https://www.google.com/search?num=5&q=SetServiceStatus+site%3Amicrosoft.com) | advapi32.dll | |
[SetThreadToken](https://www.google.com/search?num=5&q=SetThreadToken+site%3Amicrosoft.com) | advapi32.dll | |
[SetServiceStatus](http://msdn2.microsoft.com/en-us/library/bb5943ff-2814-40f2-bee0-ae7132befde9) | advapi32.dll | winsvc.h | Vanara.PInvoke.AdvApi32.SetServiceStatus
[SetThreadToken](http://msdn2.microsoft.com/en-us/library/aa379590) | advapi32.dll | processthreadsapi.h | Vanara.PInvoke.AdvApi32.SetThreadToken
[SetTokenInformation](https://www.google.com/search?num=5&q=SetTokenInformation+site%3Amicrosoft.com) | advapi32.dll | |
[SetTraceCallback](https://www.google.com/search?num=5&q=SetTraceCallback+site%3Amicrosoft.com) | advapi32.dll | |
[SetUserFileEncryptionKey](https://www.google.com/search?num=5&q=SetUserFileEncryptionKey+site%3Amicrosoft.com) | advapi32.dll | |
@ -669,8 +673,8 @@ Native Method | Native DLL | Header | Managed Method
[TraceQueryInformation](https://www.google.com/search?num=5&q=TraceQueryInformation+site%3Amicrosoft.com) | advapi32.dll | |
[TraceSetInformation](https://www.google.com/search?num=5&q=TraceSetInformation+site%3Amicrosoft.com) | advapi32.dll | |
[TranslateName](https://www.google.com/search?num=5&q=TranslateNameA+site%3Amicrosoft.com) | secur32.dll | |
[TreeResetNamedSecurityInfo](https://www.google.com/search?num=5&q=TreeResetNamedSecurityInfoA+site%3Amicrosoft.com) | advapi32.dll | |
[TreeSetNamedSecurityInfo](https://www.google.com/search?num=5&q=TreeSetNamedSecurityInfoA+site%3Amicrosoft.com) | advapi32.dll | |
[TreeResetNamedSecurityInfo](http://msdn2.microsoft.com/en-us/library/adae7d07-a452-409e-b1a1-e9f86f873e39) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.TreeResetNamedSecurityInfo
[TreeSetNamedSecurityInfo](http://msdn2.microsoft.com/en-us/library/caa711c3-301b-4ed7-b1f4-dc6a48563905) | advapi32.dll | aclapi.h | Vanara.PInvoke.AdvApi32.TreeSetNamedSecurityInfo
[TrusteeAccessToObject](https://www.google.com/search?num=5&q=TrusteeAccessToObjectA+site%3Amicrosoft.com) | advapi32.dll | |
[UninstallApplication](https://www.google.com/search?num=5&q=UninstallApplication+site%3Amicrosoft.com) | advapi32.dll | |
[UnlockServiceDatabase](https://www.google.com/search?num=5&q=UnlockServiceDatabase+site%3Amicrosoft.com) | advapi32.dll | |
@ -702,41 +706,64 @@ Native Method | Native DLL | Header | Managed Method
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[ACCESS_ALLOWED_ACE](http://msdn2.microsoft.com/en-us/library/aa374847) | Winnt.h | Vanara.PInvoke.AdvApi32+ACCESS_ALLOWED_ACE
[ACE_HEADER](http://msdn2.microsoft.com/en-us/library/aa374919) | Winnt.h | Vanara.PInvoke.AdvApi32+ACE_HEADER
[ACL](http://msdn2.microsoft.com/en-us/library/aa374931) | Winnt.h | Vanara.PInvoke.AdvApi32+ACL
[ACL_REVISION_INFORMATION](http://msdn2.microsoft.com/en-us/library/aa374942) | Winnt.h | Vanara.PInvoke.AdvApi32+ACL_REVISION_INFORMATION
[ACL_SIZE_INFORMATION](http://msdn2.microsoft.com/en-us/library/aa374945) | Winnt.h | Vanara.PInvoke.AdvApi32+ACL_SIZE_INFORMATION
[ACTRL_ACCESS_ENTRY](http://msdn2.microsoft.com/en-us/library/bcb2ad72-7b00-4582-b05e-e00720a4db77) | accctrl.h | Vanara.PInvoke.AdvApi32+ACTRL_ACCESS_ENTRY
[ACTRL_ACCESS_ENTRY_LIST](http://msdn2.microsoft.com/en-us/library/d0e71756-0247-4c6b-b8b5-a343121b7406) | accctrl.h | Vanara.PInvoke.AdvApi32+ACTRL_ACCESS_ENTRY_LIST
[ACTRL_ALIST](http://msdn2.microsoft.com/en-us/library/d7fb10c1-ebb8-44cf-b61c-a70a787b324f) | accctrl.h | Vanara.PInvoke.AdvApi32+ACTRL_ALIST
[ACTRL_PROPERTY_ENTRY](http://msdn2.microsoft.com/en-us/library/90b13dd1-0ca6-4674-b9fa-a61aed4637d7) | accctrl.h | Vanara.PInvoke.AdvApi32+ACTRL_PROPERTY_ENTRY
[AUTHZ_ACCESS_CHECK_RESULTS_HANDLE](https://www.google.com/search?num=5&q=AUTHZ_ACCESS_CHECK_RESULTS_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.Authz+AUTHZ_ACCESS_CHECK_RESULTS_HANDLE
[AUTHZ_ACCESS_REPLY](http://msdn2.microsoft.com/en-us/library/7162bf80-3730-46d7-a603-2a55b969c9ba) | authz.h | Vanara.PInvoke.Authz+AUTHZ_ACCESS_REPLY
[AUTHZ_ACCESS_REQUEST](http://msdn2.microsoft.com/en-us/library/3748075c-b31a-4669-b8a6-1a540449d8fa) | authz.h | Vanara.PInvoke.Authz+AUTHZ_ACCESS_REQUEST
[AUTHZ_AUDIT_EVENT_HANDLE](https://www.google.com/search?num=5&q=AUTHZ_AUDIT_EVENT_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.Authz+AUTHZ_AUDIT_EVENT_HANDLE
[AUTHZ_CLIENT_CONTEXT_HANDLE](https://www.google.com/search?num=5&q=AUTHZ_CLIENT_CONTEXT_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.Authz+AUTHZ_CLIENT_CONTEXT_HANDLE
[AUTHZ_RESOURCE_MANAGER_HANDLE](https://www.google.com/search?num=5&q=AUTHZ_RESOURCE_MANAGER_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.Authz+AUTHZ_RESOURCE_MANAGER_HANDLE
[AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE](http://msdn2.microsoft.com/en-us/library/05b4bf7d-a0d9-473c-b215-9cf566b2a996) | authz.h | Vanara.PInvoke.Authz+AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE
[AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE](http://msdn2.microsoft.com/en-us/library/aebe20d5-280f-45d3-a11d-279a08a1a165) | authz.h | Vanara.PInvoke.Authz+AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE
[AUTHZ_SECURITY_ATTRIBUTE_V1](http://msdn2.microsoft.com/en-us/library/0c4778bb-1b5d-4422-b066-d2a6aaa1f351) | authz.h | Vanara.PInvoke.Authz+AUTHZ_SECURITY_ATTRIBUTE_V1
[AUTHZ_SECURITY_ATTRIBUTE_V1_Union](https://www.google.com/search?num=5&q=AUTHZ_SECURITY_ATTRIBUTE_V1_Union+site%3Amicrosoft.com) | | Vanara.PInvoke.Authz+AUTHZ_SECURITY_ATTRIBUTE_V1+AUTHZ_SECURITY_ATTRIBUTE_V1_Union
[BINARY_BLOB_CREDENTIAL_INFO](http://msdn2.microsoft.com/en-us/library/20a1d54b-04a7-4b0a-88e4-1970d1f71502) | wincred.h | Vanara.PInvoke.AdvApi32+BINARY_BLOB_CREDENTIAL_INFO
[CENTRAL_ACCESS_POLICY](http://msdn2.microsoft.com/en-us/library/C1C2E8AE-0B7F-4620-9C27-31DAF683E342) | ntlsa.h | Vanara.PInvoke.AdvApi32+CENTRAL_ACCESS_POLICY
[CENTRAL_ACCESS_POLICY_ENTRY](http://msdn2.microsoft.com/en-us/library/8667848D-096C-422E-B4A6-38CC406F0F4A) | ntlsa.h | Vanara.PInvoke.AdvApi32+CENTRAL_ACCESS_POLICY_ENTRY
[CERT_CREDENTIAL_INFO](http://msdn2.microsoft.com/en-us/library/acaa94c3-0562-420a-95c7-44a71374d5ea) | wincred.h | Vanara.PInvoke.AdvApi32+CERT_CREDENTIAL_INFO
[CLAIM_SECURITY_ATTRIBUTE_INFORMATION_V1](http://msdn2.microsoft.com/en-us/library/hh448481) | Winnt.h | Vanara.PInvoke.AdvApi32+CLAIM_SECURITY_ATTRIBUTE_INFORMATION_V1
[CLAIM_SECURITY_ATTRIBUTES_INFORMATION](http://msdn2.microsoft.com/en-us/library/hh448481) | Winnt.h | Vanara.PInvoke.AdvApi32+CLAIM_SECURITY_ATTRIBUTES_INFORMATION
[CREDENTIAL](https://www.google.com/search?num=5&q=CREDENTIAL+site%3Amicrosoft.com) | wincred.h | Vanara.PInvoke.AdvApi32+CREDENTIAL
[CREDENTIAL_TARGET_INFORMATION](http://msdn2.microsoft.com/en-us/library/92180f2c-ef7c-4481-9b6f-19234c114afb) | wincred.h | Vanara.PInvoke.AdvApi32+CREDENTIAL_TARGET_INFORMATION
[EXPLICIT_ACCESS](http://msdn2.microsoft.com/en-us/library/6fe09542-10dd-439c-adf8-a4e06943ddb2) | accctrl.h | Vanara.PInvoke.AdvApi32+EXPLICIT_ACCESS
[GENERIC_MAPPING](http://msdn2.microsoft.com/en-us/library/aa446633) | Winnt.h | Vanara.PInvoke.AdvApi32+GENERIC_MAPPING
[HEVENTLOG](https://www.google.com/search?num=5&q=HEVENTLOG+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+HEVENTLOG
[INHERITED_FROM](http://msdn2.microsoft.com/en-us/library/aa378845) | AccCtrl.h | Vanara.PInvoke.AdvApi32+INHERITED_FROM
[LSA_AUTH_INFORMATION](http://msdn2.microsoft.com/en-us/library/61c17831-4a82-4766-b5af-e97a6d467462) | ntsecapi.h | Vanara.PInvoke.AdvApi32+LSA_AUTH_INFORMATION
[LSA_ENUMERATION_INFORMATION](http://msdn2.microsoft.com/en-us/library/7577548f-3ceb-43a5-b447-6f66a09963fe) | ntsecapi.h | Vanara.PInvoke.AdvApi32+LSA_ENUMERATION_INFORMATION
[LSA_FOREST_TRUST_BINARY_DATA](http://msdn2.microsoft.com/en-us/library/2ddcf54e-c30f-4146-8cb6-71fcdd42ae68) | ntsecapi.h | Vanara.PInvoke.AdvApi32+LSA_FOREST_TRUST_BINARY_DATA
[LSA_FOREST_TRUST_DOMAIN_INFO](http://msdn2.microsoft.com/en-us/library/c0e06735-ca10-4bee-a45b-6db5b6666e31) | ntsecapi.h | Vanara.PInvoke.AdvApi32+LSA_FOREST_TRUST_DOMAIN_INFO
[LSA_FOREST_TRUST_INFORMATION](http://msdn2.microsoft.com/en-us/library/9e456462-59a9-4f18-ba47-92fc2350889b) | ntsecapi.h | Vanara.PInvoke.AdvApi32+LSA_FOREST_TRUST_INFORMATION
[LSA_HANDLE](https://www.google.com/search?num=5&q=LSA_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+LSA_HANDLE
[LSA_OBJECT_ATTRIBUTES](http://msdn2.microsoft.com/en-us/library/ad05cb52-8e58-46a9-b3e8-0c9c2a24a997) | lsalookup.h | Vanara.PInvoke.AdvApi32+LSA_OBJECT_ATTRIBUTES
[LSA_REFERENCED_DOMAIN_LIST](http://msdn2.microsoft.com/en-us/library/ms721834) | Ntsecapi.h | Vanara.PInvoke.AdvApi32+LSA_REFERENCED_DOMAIN_LIST
[LSA_STRING](http://msdn2.microsoft.com/en-us/library/aa378522) | LsaLookup.h | Vanara.PInvoke.AdvApi32+LSA_STRING
[LSA_TRANSLATED_NAME](http://msdn2.microsoft.com/en-us/library/edea8317-5cdf-4d1e-9e6d-fcf17b91adb7) | lsalookup.h | Vanara.PInvoke.AdvApi32+LSA_TRANSLATED_NAME
[LSA_TRANSLATED_SID2](http://msdn2.microsoft.com/en-us/library/792de958-8e24-46d8-b484-159435bc96e3) | lsalookup.h | Vanara.PInvoke.AdvApi32+LSA_TRANSLATED_SID2
[LSA_TRUST_INFORMATION](http://msdn2.microsoft.com/en-us/library/2b5e6f79-b97a-4018-a45a-37c300c3dc0d) | lsalookup.h | Vanara.PInvoke.AdvApi32+LSA_TRUST_INFORMATION
[LSA_UNICODE_STRING](http://msdn2.microsoft.com/en-us/library/ms721841) | Ntsecapi.h | Vanara.PInvoke.AdvApi32+LSA_UNICODE_STRING
[LsaConnectionHandle](https://www.google.com/search?num=5&q=LsaConnectionHandle+site%3Amicrosoft.com) | | Vanara.PInvoke.Secur32+LsaConnectionHandle
[LUID](https://www.google.com/search?num=5&q=LUID+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+LUID
[LUID_AND_ATTRIBUTES](https://www.google.com/search?num=5&q=LUID_AND_ATTRIBUTES+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+LUID_AND_ATTRIBUTES
[OBJECTS_AND_NAME](http://msdn2.microsoft.com/en-us/library/ad91a302-f693-44e9-9655-ec4488ff78c4) | accctrl.h | Vanara.PInvoke.AdvApi32+OBJECTS_AND_NAME
[OBJECTS_AND_SID](http://msdn2.microsoft.com/en-us/library/77ba8a3c-01e5-4a3e-835f-c7b9ef60035a) | accctrl.h | Vanara.PInvoke.AdvApi32+OBJECTS_AND_SID
[PRIVILEGE_SET](https://www.google.com/search?num=5&q=PRIVILEGE_SET+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+PRIVILEGE_SET
[PSEC_WINNT_AUTH_IDENTITY_OPAQUE](https://www.google.com/search?num=5&q=PSEC_WINNT_AUTH_IDENTITY_OPAQUE+site%3Amicrosoft.com) | | Vanara.PInvoke.Secur32+PSEC_WINNT_AUTH_IDENTITY_OPAQUE
[PSID_IDENTIFIER_AUTHORITY](http://msdn2.microsoft.com/en-us/library/450a6d2d-d2e4-4098-90af-a8024ddcfcb5) | winnt.h | Vanara.PInvoke.AdvApi32+PSID_IDENTIFIER_AUTHORITY
[PTOKEN_PRIVILEGES](https://www.google.com/search?num=5&q=PTOKEN_PRIVILEGES+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+PTOKEN_PRIVILEGES
[QUERY_SERVICE_CONFIG](http://msdn2.microsoft.com/en-us/library/ms684950) | Winsvc.h | Vanara.PInvoke.AdvApi32+QUERY_SERVICE_CONFIG
[QUOTA_LIMITS](http://msdn2.microsoft.com/en-us/library/aa379363) | Winnt.h | Vanara.PInvoke.AdvApi32+QUOTA_LIMITS
[SC_ACTION](http://msdn2.microsoft.com/en-us/library/e2c355a6-affe-46bf-a3e6-f8c420422d46) | winsvc.h | Vanara.PInvoke.AdvApi32+SC_ACTION
[SC_HANDLE](https://www.google.com/search?num=5&q=SC_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+SC_HANDLE
[SECURITY_DESCRIPTOR](http://msdn2.microsoft.com/en-us/library/aa379561) | Winnt.h | Vanara.PInvoke.AdvApi32+SECURITY_DESCRIPTOR
[SERVICE_DELAYED_AUTO_START_INFO](http://msdn2.microsoft.com/en-us/library/16117450-eb73-47de-8be7-c7aff3d44c81) | winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_DELAYED_AUTO_START_INFO
[SERVICE_DESCRIPTION](http://msdn2.microsoft.com/en-us/library/ms685156) | Winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_DESCRIPTION
[SERVICE_FAILURE_ACTIONS](http://msdn2.microsoft.com/en-us/library/180ca6d9-f2c3-4ea1-b2c6-319d08ef88ee) | winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_FAILURE_ACTIONS
@ -747,15 +774,32 @@ Native Structure | Header | Managed Structure
[SERVICE_REQUIRED_PRIVILEGES_INFO](http://msdn2.microsoft.com/en-us/library/15a2e042-cfd5-443e-a3b8-822f48eb9654) | winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_REQUIRED_PRIVILEGES_INFO
[SERVICE_SID_INFO](http://msdn2.microsoft.com/en-us/library/cb1a32bd-aafb-4e41-8d6f-673c3d747f14) | winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_SID_INFO
[SERVICE_STATUS](http://msdn2.microsoft.com/en-us/library/d268609b-d442-4d0f-9d49-ed23fee84961) | winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_STATUS
[SERVICE_STATUS_HANDLE](https://www.google.com/search?num=5&q=SERVICE_STATUS_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+SERVICE_STATUS_HANDLE
[SERVICE_TRIGGER](http://msdn2.microsoft.com/en-us/library/a57aa702-40a2-4880-80db-6c4f43c3e7ea) | winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_TRIGGER
[SERVICE_TRIGGER_INFO](http://msdn2.microsoft.com/en-us/library/8de46056-1ea5-46f2-a260-ad140fd77bc1) | winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_TRIGGER_INFO
[SERVICE_TRIGGER_SPECIFIC_DATA_ITEM](http://msdn2.microsoft.com/en-us/library/670e6c49-bbc0-4af6-9e47-6c89801ebb45) | winsvc.h | Vanara.PInvoke.AdvApi32+SERVICE_TRIGGER_SPECIFIC_DATA_ITEM
[SID_AND_ATTRIBUTES](https://www.google.com/search?num=5&q=SID_AND_ATTRIBUTES+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+SID_AND_ATTRIBUTES
[SID_IDENTIFIER_AUTHORITY](http://msdn2.microsoft.com/en-us/library/aa379598) | Winnt.h | Vanara.PInvoke.AdvApi32+SID_IDENTIFIER_AUTHORITY
[TOKEN_ACCESS_INFORMATION](http://msdn2.microsoft.com/en-us/library/bb394726) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_ACCESS_INFORMATION
[TOKEN_APPCONTAINER_INFORMATION](https://www.google.com/search?num=5&q=TOKEN_APPCONTAINER_INFORMATION+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+TOKEN_APPCONTAINER_INFORMATION
[TOKEN_DEFAULT_DACL](http://msdn2.microsoft.com/en-us/library/aa379623) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_DEFAULT_DACL
[TOKEN_ELEVATION](https://www.google.com/search?num=5&q=TOKEN_ELEVATION+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+TOKEN_ELEVATION
[TOKEN_GROUPS](https://www.google.com/search?num=5&q=TOKEN_GROUPS+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+TOKEN_GROUPS
[TOKEN_GROUPS_AND_PRIVILEGES](http://msdn2.microsoft.com/en-us/library/aa379625) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_GROUPS_AND_PRIVILEGES
[TOKEN_LINKED_TOKEN](http://msdn2.microsoft.com/en-us/library/bb530719) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_LINKED_TOKEN
[TOKEN_MANDATORY_LABEL](https://www.google.com/search?num=5&q=TOKEN_MANDATORY_LABEL+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+TOKEN_MANDATORY_LABEL
[TOKEN_MANDATORY_POLICY](http://msdn2.microsoft.com/en-us/library/bb394728) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_MANDATORY_POLICY
[TOKEN_ORIGIN](http://msdn2.microsoft.com/en-us/library/aa379627) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_ORIGIN
[TOKEN_OWNER](http://msdn2.microsoft.com/en-us/library/aa379628) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_OWNER
[TOKEN_PRIMARY_GROUP](http://msdn2.microsoft.com/en-us/library/aa379629) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_PRIMARY_GROUP
[TOKEN_SOURCE](http://msdn2.microsoft.com/en-us/library/aa379631) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_SOURCE
[TOKEN_STATISTICS](http://msdn2.microsoft.com/en-us/library/aa379632) | WinNT.h | Vanara.PInvoke.AdvApi32+TOKEN_STATISTICS
[TOKEN_USER](https://www.google.com/search?num=5&q=TOKEN_USER+site%3Amicrosoft.com) | | Vanara.PInvoke.AdvApi32+TOKEN_USER
[TRUSTED_DOMAIN_AUTH_INFORMATION](http://msdn2.microsoft.com/en-us/library/2ec606d7-42bd-47cc-a4cd-82908774aa43) | ntsecapi.h | Vanara.PInvoke.AdvApi32+TRUSTED_DOMAIN_AUTH_INFORMATION
[TRUSTED_DOMAIN_FULL_INFORMATION](http://msdn2.microsoft.com/en-us/library/b7abfe1e-d9e6-4583-a738-c16190ffd44d) | ntsecapi.h | Vanara.PInvoke.AdvApi32+TRUSTED_DOMAIN_FULL_INFORMATION
[TRUSTED_DOMAIN_INFORMATION_EX](http://msdn2.microsoft.com/en-us/library/acf9a2b5-f301-4e6a-a515-df338658ad56) | ntsecapi.h | Vanara.PInvoke.AdvApi32+TRUSTED_DOMAIN_INFORMATION_EX
[TRUSTED_DOMAIN_NAME_INFO](http://msdn2.microsoft.com/en-us/library/9bc1301b-1d09-4cd2-8590-e7756ee4792d) | ntsecapi.h | Vanara.PInvoke.AdvApi32+TRUSTED_DOMAIN_NAME_INFO
[TRUSTED_PASSWORD_INFO](http://msdn2.microsoft.com/en-us/library/2c3aca10-8efd-4278-8127-2d31db776c0e) | ntsecapi.h | Vanara.PInvoke.AdvApi32+TRUSTED_PASSWORD_INFO
[TRUSTED_POSIX_OFFSET_INFO](http://msdn2.microsoft.com/en-us/library/0686da5e-43d4-49ac-8c5d-5c56b8d12e50) | ntsecapi.h | Vanara.PInvoke.AdvApi32+TRUSTED_POSIX_OFFSET_INFO
[TRUSTEE](http://msdn2.microsoft.com/en-us/library/aa379636) | AccCtrl.h | Vanara.PInvoke.AdvApi32+TRUSTEE
[USERNAME_TARGET_CREDENTIAL_INFO](http://msdn2.microsoft.com/en-us/library/1cb56a85-fafd-4471-b0e9-660ac0dc0219) | wincred.h | Vanara.PInvoke.AdvApi32+USERNAME_TARGET_CREDENTIAL_INFO

File diff suppressed because one or more lines are too long

View File

@ -104,5 +104,5 @@ SeverityLevel | A value indicating whether an `HRESULT` is a success (Severity b
SeverityLevel | A value indicating the severity of an `NTStatus` value (bits 30-31). | STATUS_SEVERITY_SUCCESS, STATUS_SEVERITY_INFORMATIONAL, STATUS_SEVERITY_WARNING, STATUS_SEVERITY_ERROR
ShowWindowCommand | The flags that specify how an application is to be displayed when it is opened. | SW_HIDE, SW_SHOWNORMAL, SW_NORMAL, SW_SHOWMINIMIZED, SW_SHOWMAXIMIZED, SW_MAXIMIZE, SW_SHOWNOACTIVATE, SW_SHOW, SW_MINIMIZE, SW_SHOWMINNOACTIVE, SW_SHOWNA, SW_RESTORE, SW_SHOWDEFAULT, SW_FORCEMINIMIZE
STGM | The STGM constants are flags that indicate conditions for creating and deleting the object and access modes for the object. The STGM constants are included in the IStorage, IStream, and IPropertySetStorage interfaces and in the StgCreateDocfile, StgCreateStorageEx, StgCreateDocfileOnILockBytes, StgOpenStorage, and StgOpenStorageEx functions. <para> These elements are often combined using an OR operator. They are interpreted in groups as listed in the following table. It is not valid to use more than one element from a single group. | STGM_DIRECT, STGM_FAILIFTHERE, STGM_READ, STGM_WRITE, STGM_READWRITE, STGM_SHARE_EXCLUSIVE, STGM_SHARE_DENY_WRITE, STGM_SHARE_DENY_READ, STGM_SHARE_DENY_NONE, STGM_CREATE, STGM_TRANSACTED, STGM_CONVERT, STGM_PRIORITY, STGM_NOSCRATCH, STGM_NOSNAPSHOT, STGM_DIRECT_SWMR, STGM_DELETEONRELEASE, STGM_SIMPLE
SystemColorIndex | Color index used to get a system color from <see cref="!:GetSysColor" />. | COLOR_SCROLLBAR, COLOR_BACKGROUND, COLOR_DESKTOP, COLOR_ACTIVECAPTION, COLOR_INACTIVECAPTION, COLOR_MENU, COLOR_WINDOW, COLOR_WINDOWFRAME, COLOR_MENUTEXT, COLOR_WINDOWTEXT, COLOR_CAPTIONTEXT, COLOR_ACTIVEBORDER, COLOR_INACTIVEBORDER, COLOR_APPWORKSPACE, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT, COLOR_BTNFACE, COLOR_3DFACE, COLOR_BTNSHADOW, COLOR_3DSHADOW, COLOR_GRAYTEXT, COLOR_BTNTEXT, COLOR_INACTIVECAPTIONTEXT, COLOR_3DHILIGHT, COLOR_BTNHILIGHT, COLOR_BTNHIGHLIGHT, COLOR_3DHIGHLIGHT, COLOR_3DDKSHADOW, COLOR_3DLIGHT, COLOR_INFOTEXT, COLOR_INFOBK, COLOR_HOTLIGHT, COLOR_GRADIENTACTIVECAPTION, COLOR_GRADIENTINACTIVECAPTION, COLOR_MENUHILIGHT, COLOR_MENUBAR
SystemColorIndex | Color index used to get a system color from <c>GetSysColor</c>. | COLOR_SCROLLBAR, COLOR_BACKGROUND, COLOR_DESKTOP, COLOR_ACTIVECAPTION, COLOR_INACTIVECAPTION, COLOR_MENU, COLOR_WINDOW, COLOR_WINDOWFRAME, COLOR_MENUTEXT, COLOR_WINDOWTEXT, COLOR_CAPTIONTEXT, COLOR_ACTIVEBORDER, COLOR_INACTIVEBORDER, COLOR_APPWORKSPACE, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT, COLOR_BTNFACE, COLOR_3DFACE, COLOR_BTNSHADOW, COLOR_3DSHADOW, COLOR_GRAYTEXT, COLOR_BTNTEXT, COLOR_INACTIVECAPTIONTEXT, COLOR_3DHILIGHT, COLOR_BTNHILIGHT, COLOR_BTNHIGHLIGHT, COLOR_3DHIGHLIGHT, COLOR_3DDKSHADOW, COLOR_3DLIGHT, COLOR_INFOTEXT, COLOR_INFOBK, COLOR_HOTLIGHT, COLOR_GRADIENTACTIVECAPTION, COLOR_GRADIENTINACTIVECAPTION, COLOR_MENUHILIGHT, COLOR_MENUBAR
SystemShutDownReason | Flags used in the ExitWindowsEx, InitiateShutdown and InitiateSystemShutdownEx functions. | SHTDN_REASON_MAJOR_OTHER, SHTDN_REASON_MINOR_OTHER, SHTDN_REASON_MAJOR_NONE, SHTDN_REASON_MINOR_MAINTENANCE, SHTDN_REASON_MINOR_INSTALLATION, SHTDN_REASON_MINOR_UPGRADE, SHTDN_REASON_MINOR_RECONFIG, SHTDN_REASON_MINOR_HUNG, SHTDN_REASON_MINOR_UNSTABLE, SHTDN_REASON_MINOR_DISK, SHTDN_REASON_MINOR_PROCESSOR, SHTDN_REASON_MINOR_NETWORKCARD, SHTDN_REASON_MINOR_POWER_SUPPLY, SHTDN_REASON_MINOR_CORDUNPLUGGED, SHTDN_REASON_MINOR_ENVIRONMENT, SHTDN_REASON_MINOR_HARDWARE_DRIVER, SHTDN_REASON_MINOR_OTHERDRIVER, SHTDN_REASON_MINOR_BLUESCREEN, SHTDN_REASON_MINOR_SERVICEPACK, SHTDN_REASON_MINOR_HOTFIX, SHTDN_REASON_MINOR_SECURITYFIX, SHTDN_REASON_MINOR_SECURITY, SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY, SHTDN_REASON_MINOR_WMI, SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL, SHTDN_REASON_MINOR_HOTFIX_UNINSTALL, SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL, SHTDN_REASON_MINOR_MMC, SHTDN_REASON_MINOR_SYSTEMRESTORE, SHTDN_REASON_MINOR_TERMSRV, SHTDN_REASON_MINOR_DC_PROMOTION, SHTDN_REASON_MINOR_DC_DEMOTION, SHTDN_REASON_MINOR_NONE, SHTDN_REASON_UNKNOWN, SHTDN_REASON_MAJOR_HARDWARE, SHTDN_REASON_MAJOR_OPERATINGSYSTEM, SHTDN_REASON_MAJOR_SOFTWARE, SHTDN_REASON_MAJOR_APPLICATION, SHTDN_REASON_MAJOR_SYSTEM, SHTDN_REASON_MAJOR_POWER, SHTDN_REASON_MAJOR_LEGACY_API, SHTDN_REASON_FLAG_COMMENT_REQUIRED, SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED, SHTDN_REASON_FLAG_CLEAN_UI, SHTDN_REASON_FLAG_DIRTY_UI, SHTDN_REASON_FLAG_MOBILE_UI_RESERVED, SHTDN_REASON_FLAG_USER_DEFINED, SHTDN_REASON_FLAG_PLANNED, SHTDN_REASON_LEGACY_API

View File

@ -12,6 +12,9 @@
/// <summary>The authz</summary>
public const string Authz = "authz.dll";
/// <summary>bcrypt.dll</summary>
public const string Bcrypt = "bcrypt.dll";
/// <summary>The COM CTL32</summary>
public const string ComCtl32 = "comctl32.dll";
@ -42,6 +45,9 @@
/// <summary>The mstask</summary>
public const string Mstask = "mstask.dll";
/// <summary>ncrypt.dll</summary>
public const string Ncrypt = "ncrypt.dll";
/// <summary>The net api32</summary>
public const string NetApi32 = "netapi32.dll";
@ -72,6 +78,8 @@
/// <summary>The shlwapi</summary>
public const string Shlwapi = "Shlwapi.dll";
public const string Tokenbinding = "tokenbinding.dll";
/// <summary>The user32</summary>
public const string User32 = "user32.dll";

View File

@ -11,7 +11,7 @@
* Shared structures and enums (see release notes)</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<!--<TargetFramework>netstandard20</TargetFramework>-->
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.Shared</AssemblyName>
@ -43,6 +43,8 @@ ACCESS_MASK, DrawTextFlags, FacilityCode, FacilityCode, FileFlagsAndAttributes,
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -193,32 +193,48 @@ Native Method | Native DLL | Header | Managed Method
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[APPBARDATA](http://msdn2.microsoft.com/en-us/library/cf86fe15-4beb-49b7-b73e-2ad61cedc3f8) | shellapi.h | Vanara.PInvoke.Shell32+APPBARDATA
[ASSOCIATIONELEMENT](http://msdn2.microsoft.com/en-us/library/1d1a963f-7ebb-4ba6-9a97-795c8ef11ae4) | shellapi.h | Vanara.PInvoke.Shell32+ASSOCIATIONELEMENT
[BROWSEINFO](http://msdn2.microsoft.com/en-us/library/bb773205) | Shlobj.h | Vanara.PInvoke.Shell32+BROWSEINFO
[CABINETSTATE](http://msdn2.microsoft.com/en-us/library/4b82b6a8-c4c0-4af2-9612-0551376c1c62) | shlobj_core.h | Vanara.PInvoke.Shell32+CABINETSTATE
[CMINVOKECOMMANDINFOEX](http://msdn2.microsoft.com/en-us/library/c4c7f053-fdb1-4bba-9eb9-a514ce1d90f6) | shobjidl_core.h | Vanara.PInvoke.Shell32+CMINVOKECOMMANDINFOEX
[COMDLG_FILTERSPEC](http://msdn2.microsoft.com/en-us/library/bb773221) | Shtypes.h | Vanara.PInvoke.Shell32+COMDLG_FILTERSPEC
[COORD](https://www.google.com/search?num=5&q=COORD+site%3Amicrosoft.com) | wincon.h | Vanara.PInvoke.Shell32+COORD
[CSFV](http://msdn2.microsoft.com/en-us/library/9ec22fd4-1562-4ef0-b932-ebbf06082807) | shlobj_core.h | Vanara.PInvoke.Shell32+CSFV
[DATABLOCKHEADER](http://msdn2.microsoft.com/en-us/library/bb773249) | Shlobj.h | Vanara.PInvoke.Shell32+DATABLOCKHEADER
[DEFCONTEXTMENU](https://www.google.com/search?num=5&q=DEFCONTEXTMENU+site%3Amicrosoft.com) | shlobj_core.h | Vanara.PInvoke.Shell32+DEFCONTEXTMENU
[EXP_DARWIN_LINK](http://msdn2.microsoft.com/en-us/library/bb773274) | Shlobj.h | Vanara.PInvoke.Shell32+EXP_DARWIN_LINK
[EXP_SPECIAL_FOLDER](http://msdn2.microsoft.com/en-us/library/bb773279) | Shlobj.h | Vanara.PInvoke.Shell32+EXP_SPECIAL_FOLDER
[EXP_SZ_LINK](http://msdn2.microsoft.com/en-us/library/bb773282) | Shlobj.h | Vanara.PInvoke.Shell32+EXP_SZ_LINK
[EXTRASEARCH](http://msdn2.microsoft.com/en-us/library/bb773283) | Shobjidl.h | Vanara.PInvoke.Shell32+EXTRASEARCH
[FOLDERSETTINGS](https://www.google.com/search?num=5&q=FOLDERSETTINGS+site%3Amicrosoft.com) | Shobjidl.h | Vanara.PInvoke.Shell32+FOLDERSETTINGS
[HPIF](https://www.google.com/search?num=5&q=HPIF+site%3Amicrosoft.com) | | Vanara.PInvoke.Shell32+HPIF
[HPSXA](https://www.google.com/search?num=5&q=HPSXA+site%3Amicrosoft.com) | | Vanara.PInvoke.Shell32+HPSXA
[ITEMIDLIST](http://msdn2.microsoft.com/en-us/library/bb773321) | Shtypes.h | Vanara.PInvoke.Shell32+ITEMIDLIST
[KNOWNFOLDER_DEFINITION](http://msdn2.microsoft.com/en-us/library/bb773325) | Shobjidl.h | Vanara.PInvoke.Shell32+KNOWNFOLDER_DEFINITION
[NOTIFYICONDATA](http://msdn2.microsoft.com/en-us/library/fdcc42c1-b3e5-4b04-8d79-7b6c29699d53) | shellapi.h | Vanara.PInvoke.Shell32+NOTIFYICONDATA
[NOTIFYICONIDENTIFIER](http://msdn2.microsoft.com/en-us/library/2fe4ffba-6fe5-4d34-9cb1-f266e4594b8e) | shellapi.h | Vanara.PInvoke.Shell32+NOTIFYICONIDENTIFIER
[NT_CONSOLE_PROPS](http://msdn2.microsoft.com/en-us/library/bb773359) | Shlobj.h | Vanara.PInvoke.Shell32+NT_CONSOLE_PROPS
[NT_FE_CONSOLE_PROPS](http://msdn2.microsoft.com/en-us/library/bb773362) | Shlobj.h | Vanara.PInvoke.Shell32+NT_FE_CONSOLE_PROPS
[OLECMD](https://www.google.com/search?num=5&q=OLECMD+site%3Amicrosoft.com) | docobj.h | Vanara.PInvoke.Shell32+OLECMD
[OLECMDTEXT](https://www.google.com/search?num=5&q=OLECMDTEXT+site%3Amicrosoft.com) | | Vanara.PInvoke.Shell32+OLECMDTEXT
[OPENASINFO](http://msdn2.microsoft.com/en-us/library/5486c4d3-c6c5-459d-aa7f-426971184876) | shlobj_core.h | Vanara.PInvoke.Shell32+OPENASINFO
[PREVIEWHANDLERFRAMEINFO](http://msdn2.microsoft.com/en-us/library/dd93675e-fd69-4fa3-a8e7-5238c27783d8) | shobjidl_core.h | Vanara.PInvoke.Shell32+PREVIEWHANDLERFRAMEINFO
[PROPPRG](http://msdn2.microsoft.com/en-us/library/603f990b-efb8-4d72-bc96-27bda4ffcbd8) | shlobj_core.h | Vanara.PInvoke.Shell32+PROPPRG
[SFV_CREATE](https://www.google.com/search?num=5&q=SFV_CREATE+site%3Amicrosoft.com) | Shlobj.h | Vanara.PInvoke.Shell32+SFV_CREATE
[SHChangeNotifyEntry](http://msdn2.microsoft.com/en-us/library/cb11435a-86f0-4b06-bfc6-e0417f2897a1) | shlobj_core.h | Vanara.PInvoke.Shell32+SHChangeNotifyEntry
[SHDESCRIPTIONID](http://msdn2.microsoft.com/en-us/library/bb759775) | Shlobj.h | Vanara.PInvoke.Shell32+SHDESCRIPTIONID
[SHELLEXECUTEINFO](http://msdn2.microsoft.com/en-us/library/bb759784) | Shellapi.h | Vanara.PInvoke.Shell32+SHELLEXECUTEINFO
[SHELLFLAGSTATE](http://msdn2.microsoft.com/en-us/library/9968c7c9-79d9-4fb1-bda2-d6a2504cd3a3) | shlobj_core.h | Vanara.PInvoke.Shell32+SHELLFLAGSTATE
[SHELLSTATE](http://msdn2.microsoft.com/en-us/library/bb759788) | Shlobj.h | Vanara.PInvoke.Shell32+SHELLSTATE
[SHFILEINFO](http://msdn2.microsoft.com/en-us/library/bb759792) | Shellapi.h | Vanara.PInvoke.Shell32+SHFILEINFO
[SHFILEOPSTRUCT](https://www.google.com/search?num=5&q=SHFILEOPSTRUCT+site%3Amicrosoft.com) | Shellapi.h | Vanara.PInvoke.Shell32+SHFILEOPSTRUCT
[SHFOLDERCUSTOMSETTINGS](http://msdn2.microsoft.com/en-us/library/a6357372-80ef-4719-b53f-87eb3fdc1b0d) | shlobj_core.h | Vanara.PInvoke.Shell32+SHFOLDERCUSTOMSETTINGS
[SHITEMID](http://msdn2.microsoft.com/en-us/library/bb759800) | Shtypes.h | Vanara.PInvoke.Shell32+SHITEMID
[SHQUERYRBINFO](http://msdn2.microsoft.com/en-us/library/7e9bc7e9-5712-45e7-a424-0afb62f26450) | shellapi.h | Vanara.PInvoke.Shell32+SHQUERYRBINFO
[SHSTOCKICONINFO](http://msdn2.microsoft.com/en-us/library/4d32826a-bb40-4805-9826-801c142b8d28) | shellapi.h | Vanara.PInvoke.Shell32+SHSTOCKICONINFO
[SV2CVW2_PARAMS](http://msdn2.microsoft.com/en-us/library/7e165654-74ea-4d8b-81b7-11257f87af53) | shobjidl_core.h | Vanara.PInvoke.Shell32+SV2CVW2_PARAMS
[THUMBBUTTON](http://msdn2.microsoft.com/en-us/library/dd391559) | Shobjidl.h | Vanara.PInvoke.Shell32+THUMBBUTTON
### Interfaces
Native Interface | Native DLL | Header | Managed Interface
--- | --- | --- | ---

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from Shell32.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.Shell32</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -28,13 +28,15 @@ Functions
AssocCreateForClasses, AssocGetDetailsOfPropKey, CDefFolderMenu_Create2, CommandLineToArgvW, DragAcceptFiles, DragFinish, DragQueryFileA, DragQueryFileW, DragQueryPoint, DuplicateIcon, ExtractAssociatedIconA, ExtractAssociatedIconExA, ExtractAssociatedIconExW, ExtractAssociatedIconW, ExtractIconA, ExtractIconExA, ExtractIconExW, ExtractIconW, FindExecutableA, FindExecutableW, GetCurrentProcessExplicitAppUserModelID, GetFileNameFromBrowse, ILAppendID, ILClone, ILCloneFirst, ILCombine, ILCreateFromPathA, ILCreateFromPathW, ILFindChild, ILFindLastID, ILFree, ILGetNext, ILGetSize, ILIsEqual, ILIsParent, ILLoadFromStreamEx, ILRemoveLastID, ILSaveToStream, InitNetworkAddressControl, IsNetDrive, IsUserAnAdmin, OpenRegStream, PathCleanupSpec, PathGetShortPath, PathIsExe, PathIsSlowA, PathIsSlowW, PathMakeUniqueName, PathResolve, PathYetAnotherMakeUniqueName, PickIconDlg, PifMgr_CloseProperties, PifMgr_GetProperties, PifMgr_OpenProperties, PifMgr_SetProperties, ReadCabinetState, RealDriveType, RestartDialog, RestartDialogEx, SetCurrentProcessExplicitAppUserModelID, SHAddDefaultPropertiesByExt, SHAddFromPropSheetExtArray, SHAddToRecentDocs, SHAlloc, SHAppBarMessage, SHAssocEnumHandlers, SHAssocEnumHandlersForProtocolByApplication, SHBindToFolderIDListParent, SHBindToFolderIDListParentEx, SHBindToObject, SHBindToParent, SHBrowseForFolderA, SHBrowseForFolderW, SHChangeNotification_Lock, SHChangeNotification_Unlock, SHChangeNotify, SHChangeNotifyDeregister, SHChangeNotifyRegister, SHChangeNotifyRegisterThread, SHCreateAssociationRegistration, SHCreateDataObject, SHCreateDefaultContextMenu, SHCreateDefaultExtractIcon, SHCreateDefaultPropertiesOp, SHCreateDirectory, SHCreateDirectoryExA, SHCreateDirectoryExW, SHCreateFileExtractIconW, SHCreateItemFromIDList, SHCreateItemFromParsingName, SHCreateItemFromRelativeName, SHCreateItemInKnownFolder, SHCreateItemWithParent, SHCreatePropSheetExtArray, SHCreateShellFolderView, SHCreateShellFolderViewEx, SHCreateShellItem, SHCreateShellItemArray, SHCreateShellItemArrayFromDataObject, SHCreateShellItemArrayFromIDLists, SHCreateShellItemArrayFromShellItem, SHCreateStdEnumFmtEtc, SHDefExtractIconA, SHDefExtractIconW, SHDestroyPropSheetExtArray, SHDoDragDrop, Shell_GetCachedImageIndexA, Shell_GetCachedImageIndexW, Shell_GetImageLists, Shell_MergeMenus, Shell_NotifyIconA, Shell_NotifyIconGetRect, Shell_NotifyIconW, ShellAboutA, ShellAboutW, ShellExecuteA, ShellExecuteExA, ShellExecuteExW, ShellExecuteW, SHEmptyRecycleBinA, SHEmptyRecycleBinW, SHEnumerateUnreadMailAccountsA, SHEnumerateUnreadMailAccountsW, SHEvaluateSystemCommandTemplate, SHFileOperationA, SHFileOperationW, SHFind_InitMenuPopup, SHFindFiles, SHFlushSFCache, SHFormatDrive, SHFree, SHFreeNameMappings, SHGetAttributesFromDataObject, SHGetDataFromIDListA, SHGetDataFromIDListW, SHGetDesktopFolder, SHGetDiskFreeSpaceA, SHGetDiskFreeSpaceExA, SHGetDiskFreeSpaceExW, SHGetDiskFreeSpaceW, SHGetDriveMedia, SHGetFileInfoA, SHGetFileInfoW, SHGetFolderLocation, SHGetFolderPathA, SHGetFolderPathAndSubDirA, SHGetFolderPathAndSubDirW, SHGetFolderPathEx, SHGetFolderPathW, SHGetIconOverlayIndexA, SHGetIconOverlayIndexW, SHGetIDListFromObject, SHGetImageList, SHGetInstanceExplorer, SHGetItemFromDataObject, SHGetItemFromObject, SHGetKnownFolderIDList, SHGetKnownFolderItem, SHGetKnownFolderPath, SHGetLocalizedName, SHGetNameFromIDList, SHGetNewLinkInfoA, SHGetNewLinkInfoW, SHGetPathFromIDListA, SHGetPathFromIDListEx, SHGetPathFromIDListW, SHGetPropertyStoreForWindow, SHGetPropertyStoreFromIDList, SHGetPropertyStoreFromParsingName, SHGetRealIDL, SHGetSetFolderCustomSettings, SHGetSetSettings, SHGetSettings, SHGetStockIconInfo, SHGetTemporaryPropertyForItem, SHGetUnreadMailCountW, SHHandleUpdateImage, SHInvokePrinterCommandA, SHInvokePrinterCommandW, SHIsFileAvailableOffline, SHLimitInputEdit, SHLoadInProc, SHLoadNonloadedIconOverlayIdentifiers, SHMapPIDLToSystemImageListIndex, SHMultiFileProperties, SHObjectProperties, SHOpenFolderAndSelectItems, SHOpenWithDialog, SHParseDisplayName, SHPathPrepareForWriteA, SHPathPrepareForWriteW, SHPropStgCreate, SHPropStgReadMultiple, SHPropStgWriteMultiple, SHQueryRecycleBinA, SHQueryRecycleBinW, SHQueryUserNotificationState, SHRemoveLocalizedName, SHReplaceFromPropSheetExtArray, SHResolveLibrary, SHRestricted, SHSetDefaultProperties, SHSetInstanceExplorer, SHSetKnownFolderPath, SHSetLocalizedName, SHSetTemporaryPropertyForItem, SHSetUnreadMailCountW, SHShellFolderView_Message, SHShowManageLibraryUI, SHSimpleIDListFromPath, SHTestTokenMembership, SHUpdateImageA, SHUpdateImageW, SHValidateUNC, SignalFileOpen, StgMakeUniqueName, Win32DeleteFile, WriteCabinetState
Structures
OLECMD, OLECMDTEXT, SHQUERYRBINFO, CABINETSTATE, COORD, CSFV, DATABLOCKHEADER, EXP_DARWIN_LINK, EXP_SPECIAL_FOLDER, EXP_SZ_LINK, NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS, OPENASINFO, PROPPRG, SFV_CREATE, SHChangeNotifyEntry, SHDESCRIPTIONID, SHELLFLAGSTATE, SHELLSTATE, SHFOLDERCUSTOMSETTINGS, COMDLG_FILTERSPEC, KNOWNFOLDER_DEFINITION, EXTRASEARCH, FOLDERSETTINGS, ITEMIDLIST, SHITEMID
OLECMD, OLECMDTEXT, APPBARDATA, ASSOCIATIONELEMENT, NOTIFYICONDATA, NOTIFYICONIDENTIFIER, SHELLEXECUTEINFO, SHFILEINFO, SHFILEOPSTRUCT, SHQUERYRBINFO, SHSTOCKICONINFO, BROWSEINFO, CABINETSTATE, COORD, CSFV, DATABLOCKHEADER, DEFCONTEXTMENU, EXP_DARWIN_LINK, EXP_SPECIAL_FOLDER, EXP_SZ_LINK, HPIF, HPSXA, NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS, OPENASINFO, PROPPRG, SFV_CREATE, SHChangeNotifyEntry, SHDESCRIPTIONID, SHELLFLAGSTATE, SHELLSTATE, SHFOLDERCUSTOMSETTINGS, CMINVOKECOMMANDINFOEX, COMDLG_FILTERSPEC, KNOWNFOLDER_DEFINITION, PREVIEWHANDLERFRAMEINFO, EXTRASEARCH, FOLDERSETTINGS, SV2CVW2_PARAMS, THUMBBUTTON, ITEMIDLIST, SHITEMID
Interfaces
IAutoComplete, IAutoComplete2, IOleCommandTarget, IObjectArray, IObjectCollection, IExtractIcon, IProgressDialog, IOpenControlPanel, IApplicationAssociationRegistration, IApplicationDestinations, IApplicationDocumentLists, IDefaultExtractIconInit, IEnumAssocHandlers, IEnumIDList, IFileSystemBindData, IFileSystemBindData2, IQueryInfo, IActionProgress, IActionProgressDialog, ICommDlgBrowser, ICommDlgBrowser2, ICommDlgBrowser3, IContextMenu, IContextMenu2, IContextMenu3, IContextMenuCB, ICopyHookA, ICopyHookW, IExplorerBrowser, IExplorerBrowserEvents, IExplorerPaneVisibility, IExtractImage, IFileDialog, IFileDialog2, IFileDialogControlEvents, IFileDialogCustomize, IFileDialogEvents, IFileOpenDialog, IFileOperationProgressSink, IFileSaveDialog, IModalWindow, IFileOperation, IInitializeWithFile, IInitializeWithItem, IInitializeWithStream, IInputObject, IInputObject2, IInputObjectSite, IKnownFolder, IKnownFolderManager, IObjectWithAppUserModelId, IObjectWithProgId, IObjectWithSite, IOperationsProgressDialog, IPreviewHandler, IPreviewHandlerFrame, IPreviewHandlerVisuals, IServiceProvider, IShellExtInit, IEnumExtraSearch, IShellFolder, IShellFolder2, IEnumShellItems, IShellItem, IShellItem2, IShellItemArray, IShellItemImageFactory, IShellLibrary, IShellLinkDataList, IShellLinkW, IShellPropSheetExt, IFolderViewOptions, IShellBrowser, IShellFolderViewCB, IShellView, IShellView2, IShellView3, IStartMenuPinnedList, ICustomDestinationList, ITaskbarList, ITaskbarList2, ITaskbarList3, ITaskbarList4, IThumbnailProvider
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -216,6 +216,7 @@ Native Method | Native DLL | Header | Managed Method
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[HUSKEY](https://www.google.com/search?num=5&q=HUSKEY+site%3Amicrosoft.com) | | Vanara.PInvoke.ShlwApi+HUSKEY
[PARSEDURL](http://msdn2.microsoft.com/en-us/library/9092dd7a-ff5b-465f-a808-ef4e0067f540) | shlwapi.h | Vanara.PInvoke.ShlwApi+PARSEDURL
[QITAB](http://msdn2.microsoft.com/en-us/library/3a055773-6e53-45e1-8936-011a8b2b8b16) | shlwapi.h | Vanara.PInvoke.ShlwApi+QITAB
### Interfaces

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported for Task Scheduler 1.0 and 2.0 COM objects.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.TaskSchd</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -35,6 +35,8 @@ ITask, ITaskScheduler, IAction, IActionCollection, IBootTrigger, IComHandlerActi
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from User32.dll and specific to graphics or window management.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.User32.Gdi</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -31,7 +31,9 @@ Structures
ICONINFO, NMHDR, MINMAXINFO, WINDOWPOS, GRPICONDIR, GRPICONDIRENTRY
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -623,27 +623,47 @@ Native Structure | Header | Managed Structure
[ALTTABINFO](http://msdn2.microsoft.com/en-us/library/alttabinfo) | winuser.h | Vanara.PInvoke.User32_Gdi+ALTTABINFO
[ANIMATIONINFO](http://msdn2.microsoft.com/en-us/library/ms724197) | Winuser.h | Vanara.PInvoke.User32+ANIMATIONINFO
[AUDIODESCRIPTION](http://msdn2.microsoft.com/en-us/library/aa379651) | Winuser.h | Vanara.PInvoke.User32+AUDIODESCRIPTION
[CBT_CREATEWND](http://msdn2.microsoft.com/en-us/library/cbt_createwnd.htm) | winuser.h | Vanara.PInvoke.User32+CBT_CREATEWND
[CBTACTIVATESTRUCT](http://msdn2.microsoft.com/en-us/library/cbtactivatestruct.htm) | winuser.h | Vanara.PInvoke.User32+CBTACTIVATESTRUCT
[CHANGEFILTERSTRUCT](http://msdn2.microsoft.com/en-us/library/changefilterstruct) | winuser.h | Vanara.PInvoke.User32_Gdi+CHANGEFILTERSTRUCT
[CURSORINFO](http://msdn2.microsoft.com/en-us/library/cursorinfo) | winuser.h | Vanara.PInvoke.User32_Gdi+CURSORINFO
[CWPRETSTRUCT](http://msdn2.microsoft.com/en-us/library/cwpretstruct.htm) | winuser.h | Vanara.PInvoke.User32+CWPRETSTRUCT
[CWPSTRUCT](http://msdn2.microsoft.com/en-us/library/cwpstruct.htm) | winuser.h | Vanara.PInvoke.User32+CWPSTRUCT
[DEBUGHOOKINFO](http://msdn2.microsoft.com/en-us/library/debughookinfo.htm) | winuser.h | Vanara.PInvoke.User32+DEBUGHOOKINFO
[DLGITEMTEMPLATE](http://msdn2.microsoft.com/en-us/library/dlgitemtemplate) | winuser.h | Vanara.PInvoke.User32_Gdi+DLGITEMTEMPLATE
[DLGTEMPLATE](http://msdn2.microsoft.com/en-us/library/dlgtemplate) | winuser.h | Vanara.PInvoke.User32_Gdi+DLGTEMPLATE
[EVENTMSG](http://msdn2.microsoft.com/en-us/library/eventmsg.htm) | winuser.h | Vanara.PInvoke.User32+EVENTMSG
[FILTERKEYS](https://www.google.com/search?num=5&q=FILTERKEYS+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+FILTERKEYS
[GRPICONDIR](https://www.google.com/search?num=5&q=GRPICONDIR+site%3Amicrosoft.com) | | Vanara.PInvoke.User32_Gdi+GRPICONDIR
[GRPICONDIRENTRY](https://www.google.com/search?num=5&q=GRPICONDIRENTRY+site%3Amicrosoft.com) | | Vanara.PInvoke.User32_Gdi+GRPICONDIRENTRY
[GUITHREADINFO](http://msdn2.microsoft.com/en-us/library/guithreadinfo) | winuser.h | Vanara.PInvoke.User32_Gdi+GUITHREADINFO
[HELPINFO](https://www.google.com/search?num=5&q=HELPINFO+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+HELPINFO
[HHOOK](https://www.google.com/search?num=5&q=HHOOK+site%3Amicrosoft.com) | | Vanara.PInvoke.User32+HHOOK
[HIGHCONTRAST](https://www.google.com/search?num=5&q=HIGHCONTRAST+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+HIGHCONTRAST
[ICONINFO](https://www.google.com/search?num=5&q=ICONINFO+site%3Amicrosoft.com) | | Vanara.PInvoke.User32_Gdi+ICONINFO
[ICONINFOEX](http://msdn2.microsoft.com/en-us/library/iconinfoex) | winuser.h | Vanara.PInvoke.User32_Gdi+ICONINFOEX
[ICONMETRICS](https://www.google.com/search?num=5&q=ICONMETRICS+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+ICONMETRICS
[KBDLLHOOKSTRUCT](http://msdn2.microsoft.com/en-us/library/kbdllhookstruct.htm) | winuser.h | Vanara.PInvoke.User32+KBDLLHOOKSTRUCT
[MDINEXTMENU](http://msdn2.microsoft.com/en-us/library/mdinextmenu.htm) | winuser.h | Vanara.PInvoke.User32_Gdi+MDINEXTMENU
[MENUBARINFO](http://msdn2.microsoft.com/en-us/library/menubarinfo.htm) | winuser.h | Vanara.PInvoke.User32_Gdi+MENUBARINFO
[MENUEX_TEMPLATE_HEADER](http://msdn2.microsoft.com/en-us/library/df763349-7127-482e-8613-74e68addde5d) | winuser.h | Vanara.PInvoke.User32_Gdi+MENUEX_TEMPLATE_HEADER
[MENUEX_TEMPLATE_ITEM](http://msdn2.microsoft.com/en-us/library/f6e2fd0a-16b8-48e3-8597-341085a7adbd) | winuser.h | Vanara.PInvoke.User32_Gdi+MENUEX_TEMPLATE_ITEM
[MENUGETOBJECTINFO](http://msdn2.microsoft.com/en-us/library/menugetobjectinfo.htm) | winuser.h | Vanara.PInvoke.User32_Gdi+MENUGETOBJECTINFO
[MENUINFO](http://msdn2.microsoft.com/en-us/library/menuinfo.htm) | winuser.h | Vanara.PInvoke.User32_Gdi+MENUINFO
[MENUITEMINFO](http://msdn2.microsoft.com/en-us/library/menuiteminfo.htm) | winuser.h | Vanara.PInvoke.User32_Gdi+MENUITEMINFO
[MENUITEMTEMPLATE](http://msdn2.microsoft.com/en-us/library/menuitemtemplate.htm) | winuser.h | Vanara.PInvoke.User32_Gdi+MENUITEMTEMPLATE
[MENUITEMTEMPLATEHEADER](http://msdn2.microsoft.com/en-us/library/menuitemtemplateheader.htm) | winuser.h | Vanara.PInvoke.User32_Gdi+MENUITEMTEMPLATEHEADER
[METAFILEPICT](http://msdn2.microsoft.com/en-us/library/metafilepict) | wingdi.h | Vanara.PInvoke.User32+METAFILEPICT
[MINIMIZEDMETRICS](http://msdn2.microsoft.com/en-us/library/ms724500) | Winuser.h | Vanara.PInvoke.User32+MINIMIZEDMETRICS
[MINMAXINFO](https://www.google.com/search?num=5&q=MINMAXINFO+site%3Amicrosoft.com) | | Vanara.PInvoke.User32_Gdi+MINMAXINFO
[MONITORINFO](http://msdn2.microsoft.com/en-us/library/ca8ec86f-69ba-4cf8-a867-67182a3d630d) | winuser.h | Vanara.PInvoke.User32_Gdi+MONITORINFO
[MONITORINFOEX](http://msdn2.microsoft.com/en-us/library/f296ce29-3fc8-41c9-a201-56e222aa2219) | winuser.h | Vanara.PInvoke.User32_Gdi+MONITORINFOEX
[MOUSEHOOKSTRUCT](http://msdn2.microsoft.com/en-us/library/mousehookstruct.htm) | winuser.h | Vanara.PInvoke.User32+MOUSEHOOKSTRUCT
[MOUSEHOOKSTRUCTEX](http://msdn2.microsoft.com/en-us/library/mousehookstructex.htm) | winuser.h | Vanara.PInvoke.User32+MOUSEHOOKSTRUCTEX
[MOUSEKEYS](https://www.google.com/search?num=5&q=MOUSEKEYS+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+MOUSEKEYS
[MSGBOXPARAMS](https://www.google.com/search?num=5&q=MSGBOXPARAMS+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+MSGBOXPARAMS
[MSLLHOOKSTRUCT](http://msdn2.microsoft.com/en-us/library/msllhookstruct.htm) | winuser.h | Vanara.PInvoke.User32+MSLLHOOKSTRUCT
[NMHDR](https://www.google.com/search?num=5&q=NMHDR+site%3Amicrosoft.com) | | Vanara.PInvoke.User32_Gdi+NMHDR
[NONCLIENTMETRICS](http://msdn2.microsoft.com/en-us/library/ff729175) | Winuser.h | Vanara.PInvoke.User32+NONCLIENTMETRICS
[SERIALKEYS](https://www.google.com/search?num=5&q=SERIALKEYS+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+SERIALKEYS
[SOUNDSENTRY](https://www.google.com/search?num=5&q=SOUNDSENTRY+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+SOUNDSENTRY
@ -652,6 +672,9 @@ Native Structure | Header | Managed Structure
[TOGGLEKEYS](https://www.google.com/search?num=5&q=TOGGLEKEYS+site%3Amicrosoft.com) | Winuser.h | Vanara.PInvoke.User32+TOGGLEKEYS
[TOUCHPREDICTIONPARAMETERS](http://msdn2.microsoft.com/en-us/library/hh969214) | Winuser.h | Vanara.PInvoke.User32+TOUCHPREDICTIONPARAMETERS
[TPMPARAMS](http://msdn2.microsoft.com/en-us/library/tpmparams.htm) | winuser.h | Vanara.PInvoke.User32_Gdi+TPMPARAMS
[TRACKMOUSEEVENT](http://msdn2.microsoft.com/en-us/library/ms645604) | Winuser.h | Vanara.PInvoke.User32+TRACKMOUSEEVENT
[UPDATELAYEREDWINDOWINFO](http://msdn2.microsoft.com/en-us/library/updatelayeredwindowinfo) | winuser.h | Vanara.PInvoke.User32_Gdi+UPDATELAYEREDWINDOWINFO
[USEROBJECTFLAGS](http://msdn2.microsoft.com/en-us/library/5a973d45-5ff4-47e7-a927-72d3fdd61dc9) | winuser.h | Vanara.PInvoke.User32_Gdi+USEROBJECTFLAGS
[WINDOWINFO](http://msdn2.microsoft.com/en-us/library/windowinfo) | winuser.h | Vanara.PInvoke.User32_Gdi+WINDOWINFO
[WINDOWPLACEMENT](http://msdn2.microsoft.com/en-us/library/windowplacement) | winuser.h | Vanara.PInvoke.User32_Gdi+WINDOWPLACEMENT
[WINDOWPOS](https://www.google.com/search?num=5&q=WINDOWPOS+site%3Amicrosoft.com) | | Vanara.PInvoke.User32_Gdi+WINDOWPOS

File diff suppressed because one or more lines are too long

View File

@ -86,6 +86,8 @@ Native Structure | Header | Managed Structure
[BP_PAINTPARAMS](http://msdn2.microsoft.com/en-us/library/bb773228) | Uxtheme.h | Vanara.PInvoke.UxTheme+BP_PAINTPARAMS
[DTBGOPTS](http://msdn2.microsoft.com/en-us/library/bb773233) | Uxtheme.h | Vanara.PInvoke.UxTheme+DTBGOPTS
[DTTOPTS](http://msdn2.microsoft.com/en-us/library/bb773236) | Uxtheme.h | Vanara.PInvoke.UxTheme+DTTOPTS
[HANIMATIONBUFFER](https://www.google.com/search?num=5&q=HANIMATIONBUFFER+site%3Amicrosoft.com) | | Vanara.PInvoke.UxTheme+HANIMATIONBUFFER
[HPAINTBUFFER](https://www.google.com/search?num=5&q=HPAINTBUFFER+site%3Amicrosoft.com) | | Vanara.PInvoke.UxTheme+HPAINTBUFFER
[INTLIST](http://msdn2.microsoft.com/en-us/library/bb773240) | UxTheme.h | Vanara.PInvoke.UxTheme+INTLIST
[MARGINS](http://msdn2.microsoft.com/en-us/library/bb773244) | UxTheme.h | Vanara.PInvoke.UxTheme+MARGINS
[TA_TIMINGFUNCTION](https://www.google.com/search?num=5&q=TA_TIMINGFUNCTION+site%3Amicrosoft.com) | | Vanara.PInvoke.UxTheme+TA_TIMINGFUNCTION

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from UxTheme.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.UxTheme</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -28,10 +28,12 @@ Functions
BeginBufferedAnimation, BeginBufferedPaint, BeginPanningFeedback, BufferedPaintClear, BufferedPaintInit, BufferedPaintRenderAnimation, BufferedPaintSetAlpha, BufferedPaintStopAllAnimations, BufferedPaintUnInit, CloseThemeData, DrawThemeBackground, DrawThemeBackgroundEx, DrawThemeEdge, DrawThemeIcon, DrawThemeParentBackground, DrawThemeParentBackgroundEx, DrawThemeText, DrawThemeTextEx, EnableThemeDialogTexture, EnableTheming, EndBufferedAnimation, EndBufferedPaint, EndPanningFeedback, GetBufferedPaintBits, GetBufferedPaintDC, GetBufferedPaintTargetDC, GetBufferedPaintTargetRect, GetCurrentThemeName, GetThemeAnimationProperty, GetThemeAnimationTransform, GetThemeAppProperties, GetThemeBackgroundContentRect, GetThemeBackgroundExtent, GetThemeBackgroundRegion, GetThemeBitmap, GetThemeBool, GetThemeColor, GetThemeDocumentationProperty, GetThemeEnumValue, GetThemeFilename, GetThemeFont, GetThemeInt, GetThemeIntList, GetThemeMargins, GetThemeMetric, GetThemePartSize, GetThemePosition, GetThemePropertyOrigin, GetThemeRect, GetThemeStream, GetThemeString, GetThemeSysBool, GetThemeSysColor, GetThemeSysColorBrush, GetThemeSysFont, GetThemeSysInt, GetThemeSysSize, GetThemeSysString, GetThemeTextExtent, GetThemeTextMetrics, GetThemeTimingFunction, GetThemeTransitionDuration, GetWindowTheme, HitTestThemeBackground, IsAppThemed, IsCompositionActive, IsThemeActive, IsThemeBackgroundPartiallyTransparent, IsThemeDialogTextureEnabled, IsThemePartDefined, OpenThemeData, OpenThemeDataEx, OpenThemeDataForDpi, SetThemeAppProperties, SetWindowTheme, SetWindowThemeAttribute, UpdatePanningFeedback
Structures
DTTOPTS, INTLIST, MARGINS, TA_TIMINGFUNCTION, TA_TRANSFORM, WTA_OPTIONS, DTBGOPTS, BP_ANIMATIONPARAMS, BP_PAINTPARAMS
DTTOPTS, INTLIST, MARGINS, TA_TIMINGFUNCTION, TA_TRANSFORM, WTA_OPTIONS, DTBGOPTS, BP_ANIMATIONPARAMS, HANIMATIONBUFFER, HPAINTBUFFER, BP_PAINTPARAMS
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -75,5 +75,6 @@ Native Structure | Header | Managed Structure
[STORAGE_DEPENDENCY_INFO_TYPE_2](https://www.google.com/search?num=5&q=STORAGE_DEPENDENCY_INFO_TYPE_2+site%3Amicrosoft.com) | VirtDisk.h | Vanara.PInvoke.VirtDisk+STORAGE_DEPENDENCY_INFO_TYPE_2
[TAKE_SNAPSHOT_VHDSET_PARAMETERS](https://www.google.com/search?num=5&q=TAKE_SNAPSHOT_VHDSET_PARAMETERS+site%3Amicrosoft.com) | VirtDisk.h | Vanara.PInvoke.VirtDisk+TAKE_SNAPSHOT_VHDSET_PARAMETERS
[TAKE_SNAPSHOT_VHDSET_PARAMETERS_Version1](https://www.google.com/search?num=5&q=TAKE_SNAPSHOT_VHDSET_PARAMETERS_Version1+site%3Amicrosoft.com) | VirtDisk.h | Vanara.PInvoke.VirtDisk+TAKE_SNAPSHOT_VHDSET_PARAMETERS+TAKE_SNAPSHOT_VHDSET_PARAMETERS_Version1
[VIRTUAL_DISK_HANDLE](https://www.google.com/search?num=5&q=VIRTUAL_DISK_HANDLE+site%3Amicrosoft.com) | | Vanara.PInvoke.VirtDisk+VIRTUAL_DISK_HANDLE
[VIRTUAL_DISK_PROGRESS](https://www.google.com/search?num=5&q=VIRTUAL_DISK_PROGRESS+site%3Amicrosoft.com) | VirtDisk.h | Vanara.PInvoke.VirtDisk+VIRTUAL_DISK_PROGRESS
[VIRTUAL_STORAGE_TYPE](https://www.google.com/search?num=5&q=VIRTUAL_STORAGE_TYPE+site%3Amicrosoft.com) | VirtDisk.h | Vanara.PInvoke.VirtDisk+VIRTUAL_STORAGE_TYPE

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from VirtDisk.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.VirtDisk</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -28,10 +28,12 @@ Functions
AddVirtualDiskParent, ApplySnapshotVhdSet, AttachVirtualDisk, BreakMirrorVirtualDisk, CompactVirtualDisk, CreateVirtualDisk, DeleteSnapshotVhdSet, DeleteVirtualDiskMetadata, DetachVirtualDisk, EnumerateVirtualDiskMetadata, ExpandVirtualDisk, GetAllAttachedVirtualDiskPhysicalPaths, GetStorageDependencyInformation, GetVirtualDiskInformation, GetVirtualDiskMetadata, GetVirtualDiskOperationProgress, GetVirtualDiskPhysicalPath, MergeVirtualDisk, MirrorVirtualDisk, ModifyVhdSet, OpenVirtualDisk, QueryChangesVirtualDisk, RawSCSIVirtualDisk, ResizeVirtualDisk, SetVirtualDiskInformation, SetVirtualDiskMetadata, TakeSnapshotVhdSet
Structures
APPLY_SNAPSHOT_VHDSET_PARAMETERS, ATTACH_VIRTUAL_DISK_PARAMETERS, COMPACT_VIRTUAL_DISK_PARAMETERS, CREATE_VIRTUAL_DISK_PARAMETERS, DELETE_SNAPSHOT_VHDSET_PARAMETERS, EXPAND_VIRTUAL_DISK_PARAMETERS, GET_VIRTUAL_DISK_INFO, MERGE_VIRTUAL_DISK_PARAMETERS, MIRROR_VIRTUAL_DISK_PARAMETERS, QUERY_CHANGES_VIRTUAL_DISK_RANGE, RAW_SCSI_VIRTUAL_DISK_PARAMETERS, RAW_SCSI_VIRTUAL_DISK_RESPONSE, RESIZE_VIRTUAL_DISK_PARAMETERS, STORAGE_DEPENDENCY_INFO, STORAGE_DEPENDENCY_INFO_TYPE_1, STORAGE_DEPENDENCY_INFO_TYPE_2, TAKE_SNAPSHOT_VHDSET_PARAMETERS, VIRTUAL_DISK_PROGRESS, VIRTUAL_STORAGE_TYPE, OPEN_VIRTUAL_DISK_PARAMETERS, APPLY_SNAPSHOT_VHDSET_PARAMETERS_Version1, ATTACH_VIRTUAL_DISK_PARAMETERS_Version1, COMPACT_VIRTUAL_DISK_PARAMETERS_Version1, CREATE_VIRTUAL_DISK_PARAMETERS_Version1, CREATE_VIRTUAL_DISK_PARAMETERS_Version2, CREATE_VIRTUAL_DISK_PARAMETERS_Version3, DELETE_SNAPSHOT_VHDSET_PARAMETERS_Version1, EXPAND_VIRTUAL_DISK_PARAMETERS_Version1, GET_VIRTUAL_DISK_INFO_ChangeTrackingState, GET_VIRTUAL_DISK_INFO_ParentLocation, GET_VIRTUAL_DISK_INFO_PhysicalDisk, GET_VIRTUAL_DISK_INFO_Size, MERGE_VIRTUAL_DISK_PARAMETERS_V1, MERGE_VIRTUAL_DISK_PARAMETERS_V2, MIRROR_VIRTUAL_DISK_PARAMETERS_Version1, MODIFY_VHDSET_PARAMETERS_Version1_SnapshotPath, RAW_SCSI_VIRTUAL_DISK_PARAMETERS_Version1, RAW_SCSI_VIRTUAL_DISK_RESPONSE_Version1, RESIZE_VIRTUAL_DISK_PARAMETERS_Version1, SET_VIRTUAL_DISK_INFO_ParentLocator, SET_VIRTUAL_DISK_INFO_ParentPathWithDepthInfo, TAKE_SNAPSHOT_VHDSET_PARAMETERS_Version1, OPEN_VIRTUAL_DISK_PARAMETERS_Version1, OPEN_VIRTUAL_DISK_PARAMETERS_Version2, OPEN_VIRTUAL_DISK_PARAMETERS_Version3
APPLY_SNAPSHOT_VHDSET_PARAMETERS, ATTACH_VIRTUAL_DISK_PARAMETERS, COMPACT_VIRTUAL_DISK_PARAMETERS, CREATE_VIRTUAL_DISK_PARAMETERS, DELETE_SNAPSHOT_VHDSET_PARAMETERS, EXPAND_VIRTUAL_DISK_PARAMETERS, GET_VIRTUAL_DISK_INFO, MERGE_VIRTUAL_DISK_PARAMETERS, MIRROR_VIRTUAL_DISK_PARAMETERS, QUERY_CHANGES_VIRTUAL_DISK_RANGE, RAW_SCSI_VIRTUAL_DISK_PARAMETERS, RAW_SCSI_VIRTUAL_DISK_RESPONSE, RESIZE_VIRTUAL_DISK_PARAMETERS, STORAGE_DEPENDENCY_INFO, STORAGE_DEPENDENCY_INFO_TYPE_1, STORAGE_DEPENDENCY_INFO_TYPE_2, TAKE_SNAPSHOT_VHDSET_PARAMETERS, VIRTUAL_DISK_HANDLE, VIRTUAL_DISK_PROGRESS, VIRTUAL_STORAGE_TYPE, OPEN_VIRTUAL_DISK_PARAMETERS, APPLY_SNAPSHOT_VHDSET_PARAMETERS_Version1, ATTACH_VIRTUAL_DISK_PARAMETERS_Version1, COMPACT_VIRTUAL_DISK_PARAMETERS_Version1, CREATE_VIRTUAL_DISK_PARAMETERS_Version1, CREATE_VIRTUAL_DISK_PARAMETERS_Version2, CREATE_VIRTUAL_DISK_PARAMETERS_Version3, DELETE_SNAPSHOT_VHDSET_PARAMETERS_Version1, EXPAND_VIRTUAL_DISK_PARAMETERS_Version1, GET_VIRTUAL_DISK_INFO_ChangeTrackingState, GET_VIRTUAL_DISK_INFO_ParentLocation, GET_VIRTUAL_DISK_INFO_PhysicalDisk, GET_VIRTUAL_DISK_INFO_Size, MERGE_VIRTUAL_DISK_PARAMETERS_V1, MERGE_VIRTUAL_DISK_PARAMETERS_V2, MIRROR_VIRTUAL_DISK_PARAMETERS_Version1, MODIFY_VHDSET_PARAMETERS_Version1_SnapshotPath, RAW_SCSI_VIRTUAL_DISK_PARAMETERS_Version1, RAW_SCSI_VIRTUAL_DISK_RESPONSE_Version1, RESIZE_VIRTUAL_DISK_PARAMETERS_Version1, SET_VIRTUAL_DISK_INFO_ParentLocator, SET_VIRTUAL_DISK_INFO_ParentPathWithDepthInfo, TAKE_SNAPSHOT_VHDSET_PARAMETERS_Version1, OPEN_VIRTUAL_DISK_PARAMETERS_Version1, OPEN_VIRTUAL_DISK_PARAMETERS_Version2, OPEN_VIRTUAL_DISK_PARAMETERS_Version3
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from WinINet.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.WinINet</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -32,6 +32,8 @@ HTTP_VERSION_INFO, INTERNET_CACHE_TIMESTAMPS, INTERNET_CERTIFICATE_INFO, INTERNE
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Methods, structures and constants imported from Ws2_32.dll.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.Ws2_32</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -29,6 +29,8 @@ IN_ADDR, IN6_ADDR, SOCKADDR_IN, SOCKADDR_IN6, SOCKADDR_IN6_PAIR, SOCKADDR_INET,
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -20,21 +20,21 @@ All assemblies are available via NuGet and provide builds against .NET 2.0, 3.5,
## Design Concepts
I have tried to follow the concepts below in laying out the libraries.
* All functions that are imported from a single DLL should be placed into a single assembly that is named after the DLL
* All functions that are imported from a single DLL should be placed into a single assembly that is named after the DLL.
* (e.g. The assembly `Vanara.PInvoke.Gdi32.dll` hosts all functions and supporting enumerations, constants and structures that are exported from `gdi32.dll` in the system directory.)
* Any structure or macro or enumeration (no function) that is used by many libraries is put into either `Vanara.Core` or `Vanara.PInvoke.Shared`
* Any structure or macro or enumeration (no function) that is used by many libraries is put into either `Vanara.Core` or `Vanara.PInvoke.Shared`.
* (e.g. The macro `HIWORD` and the structure `SIZE` are both in `Vanara.PInvoke.Shared` and classes to simplfy interop calls and native memory management are in `Vanara.Core`.)
* Inside a project, all constructs are contained in a file named after the header file (*.h) in which they are defined in the Windows API
* Inside a project, all constructs are contained in a file named after the header file (*.h) in which they are defined in the Windows API.
* (e.g. In the Vanara.PInvoke.Kernel32 project directory, you'll find a FileApi.cs, a WinBase.cs and a WinNT.cs file representing fileapi.h, winbase.h and winnt.h respectively.)
* Where the direct interpretation of a structure leads to memory leaks or misuse, I have tried to simplify their use
* Where the direct interpretation of a structure leads to memory leaks or misuse, I have tried to simplify their use.
* Where structures are always passed by reference and where that structure needs to clean up memory allocations, I have changed the structure to a class implementing `IDisposable`.
* Wherever possible, all handles have been turned into `SafeHandle` derivatives named after the Windows API handle. If those handles require a call to a function to release/close/destroy, a derived `SafeHANDLE` exists that performs that function on disposal.
* (e.g. `HTOKEN` is defined. `SafeHTOKEN` builds upon that handle with an automated release calling `CloseHandle`)
* e.g. `HTOKEN` is defined. `SafeHTOKEN` builds upon that handle with an automated release calling `CloseHandle`.
* Wherever possible, all functions that allocate memory that is to be freed by the caller use a safe memory handle.
* All PInvoke calls are in assemblies prefixed by `Vanara.PInvoke`
* If a structure is to passed into a function, and the structure is 64 bytes or less, that structure is marshaled using the `LPStruct` type which will pass the structure by reference without requiring the `ref` keyword.
* All PInvoke calls are in assemblies prefixed by `Vanara.PInvoke`.
* If a structure is to passed into a function, that structure is marshaled using the `in` statement which will pass the structure by reference without requiring the `ref` keyword.
* Windows API: `BOOL MapDialogRect(HWND hDlg, LPRECT lpRect)`
* Vanara: `bool MapDialogRect(HWND hDlg, [MarshalAs(UnmanagedType.LPStruct)] RECT lpRect);`
* Vanara: `bool MapDialogRect(HWND hDlg, in RECT lpRect);`
* If there are classes or extensions that make use of the PInvoke calls, they are in wrapper assemblies prefixed by `Vanara` and then followed by a logical name for the functionality. Today, those are Core, Security, SystemServices, Windows.Forms and Windows.Shell.
## Supported Libraries
@ -49,11 +49,11 @@ Crypt32.dll | [Vanara.PInvoke.Crypt32](https://github.com/dahall/Vanara/blob/mas
DwmApi.dll | [Vanara.PInvoke.DwmApi](https://github.com/dahall/Vanara/blob/master/PInvoke/DwmApi/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-100%25-green.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.DwmApi.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.DwmApi)
Gdi32.dll | [Vanara.PInvoke.Gdi32](https://github.com/dahall/Vanara/blob/master/PInvoke/Gdi32/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-3%25-red.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.Gdi32.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Gdi32)
IpHlpApi.dll | [Vanara.PInvoke.IpHlpApi](https://github.com/dahall/Vanara/blob/master/PInvoke/IpHlpApi/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-57%25-yellow.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.IpHlpApi.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.IpHlpApi)
Kernel32.dll and KernelBase.dll | [Vanara.PInvoke.Kernel32](https://github.com/dahall/Vanara/blob/master/PInvoke/Kernel32/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-100%25-green.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.Kernel32.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Kernel32)
Kernel32.dll and KernelBase.dll | [Vanara.PInvoke.Kernel32](https://github.com/dahall/Vanara/blob/master/PInvoke/Kernel32/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-99%25-green.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.Kernel32.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Kernel32)
Mpr.dll | [Vanara.PInvoke.Mpr](https://github.com/dahall/Vanara/blob/master/PInvoke/Mpr/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-100%25-green.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.Mpr.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Mpr)
NetApi32.dll | [Vanara.PInvoke.NetApi32](https://github.com/dahall/Vanara/blob/master/PInvoke/NetApi32/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-11%25-red.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.NetApi32.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NetApi32)
NetListMgr.dll | [Vanara.PInvoke.NetListMgr](https://github.com/dahall/Vanara/blob/master/PInvoke/NetListMgr/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-100%25-green.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.NetListMgr.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NetListMgr)
NTDSApi.dll | [Vanara.PInvoke.NTDSApi](https://github.com/dahall/Vanara/blob/master/PInvoke/NTDSApi/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-57%25-yellow.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.NTDSApi.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NTDSApi)
NTDSApi.dll | [Vanara.PInvoke.NTDSApi](https://github.com/dahall/Vanara/blob/master/PInvoke/NTDSApi/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-100%25-yellow.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.NTDSApi.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NTDSApi)
NTDll.dll | [Vanara.PInvoke.NTDll](https://github.com/dahall/Vanara/blob/master/PInvoke/NTDll/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-4%25-red.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.NTDll.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.NTDll)
Ole32.dll, OleAut32 and PropSys.dll | [Vanara.PInvoke.Ole](https://github.com/dahall/Vanara/blob/master/PInvoke/Ole/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-20%25-red.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.Ole.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Ole)
AdvApi32.dll, Authz.dll and Secur32.dll | [Vanara.PInvoke.Security](https://github.com/dahall/Vanara/blob/master/PInvoke/Security/CorrelationReport.md)<br>![Coverage](https://img.shields.io/badge/coverage-5%25-red.svg) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.Security.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Security)
@ -72,11 +72,11 @@ Ws2_32.dll | [Vanara.PInvoke.Ws2_32](https://github.com/dahall/Vanara/blob/maste
Assembly | NuGet&nbsp;Link | Description
--- | --- | ---
[Vanara.Core](https://github.com/dahall/Vanara/blob/master/Core/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.Core.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.Core) | Shared methods, structures and constants for use throughout the Vanara assemblies. Think of it as windows.h with some useful extensions.
[Vanara.PInvoke.Shared](https://github.com/dahall/Vanara/blob/master/PInvoke/Shared/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.Shared.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Shared) | Shared methods, structures and constants for use throughout the Vanara.PInvoke assemblies
[Vanara.Security](https://github.com/dahall/Vanara/blob/master/Security/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.Security.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.Security) | Wrapper classes for security related items in the PInvoke libraries
[Vanara.SystemServices](https://github.com/dahall/Vanara/blob/master/System/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.SystemServices.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.SystemServices) | Wrapper classes for system related items in the PInvoke libraries
[Vanara.PInvoke.Shared](https://github.com/dahall/Vanara/blob/master/PInvoke/Shared/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.PInvoke.Shared.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Shared) | Shared methods, structures and constants for use throughout the Vanara.PInvoke assemblies.
[Vanara.Security](https://github.com/dahall/Vanara/blob/master/Security/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.Security.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.Security) | Classes for Windows Security that are missing or incomplete in .NET. Includes claims, privileges, impersonation, Active Directory, and UAC.
[Vanara.SystemServices](https://github.com/dahall/Vanara/blob/master/System/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.SystemServices.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.SystemServices) | Classes for Windows system functions. Includes Background Transfer (BITS), Virtual Disk management, WOW64 interaction, and file, process, path, networking and service controller extensions.
[Vanara.Windows.Forms](https://github.com/dahall/Vanara/blob/master/WIndows.Forms/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.Windows.Forms.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.Windows.Forms) | Classes for user interface related items derived from the Vanara PInvoke libraries. Includes extensions for almost all common controls to give post Vista capabilities, WinForms controls (panel, commandlink, enhanced combo boxes, IPAddress, split button, trackbar and themed controls), shutdown/restart/lock control, buffered painting, resource files, access control editor, simplified designer framework for Windows.Forms.
[Vanara.Windows.Shell](https://github.com/dahall/Vanara/blob/master/Windows.Shell/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.Windows.Shell.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.Windows.Shell) | Classes for Windows Shell items derived from the Vanara PInvoke libraries. Includes shell items, files, icons, links, and taskbar lists.
[Vanara.Windows.Shell](https://github.com/dahall/Vanara/blob/master/Windows.Shell/AssemblyReport.md) | [![NuGet Package](https://img.shields.io/nuget/v/Vanara.Windows.Shell.svg?style=flat-square)](https://www.nuget.org/packages/Vanara.Windows.Shell) | Classes for Windows Shell items derived from the Vanara PInvoke libraries. Includes shell items, files, icons, links, shell properties, shell registration and taskbar lists.
## Quick Links
* [Documentation](https://github.com/dahall/Vanara/wiki)

View File

@ -4,7 +4,7 @@
<Description>Classes for security related items derived from the Vanara PInvoke libraries. Includes extension methods for Active Directory and access control classes, methods for working with accounts, UAC, privileges, system access, impersonation and SIDs, and a full LSA wrapper.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.Security</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -30,6 +30,8 @@ AccountLogonRights, DesiredAccess, SystemPrivilege
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Classes for system related items derived from the Vanara PInvoke libraries. Includes a class for working with virtual disks (including async methods), classes for BITS, and extensions for Process (privileges and elavation), FileInfo (compression info), and ServiceController (SetStartType) that pull extended information through native API calls.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0</TargetFrameworks>
<AssemblyName>Vanara.SystemServices</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -33,6 +33,8 @@ BackgroundCopyACLFlags, BackgroundCopyCost, BackgroundCopyErrorContext, Backgrou
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -0,0 +1,297 @@
using NUnit.Framework;
using System;
using System.Linq;
using System.Runtime.InteropServices;
using Vanara.InteropServices;
using static Vanara.PInvoke.BCrypt;
using static Vanara.PInvoke.Kernel32;
using static Vanara.PInvoke.NCrypt;
namespace Vanara.PInvoke.Tests
{
[TestFixture()]
public class BCryptTests
{
[Test]
public void ContextTest()
{
const string ctx = "Private";
const string func = StandardAlgorithmId.BCRYPT_SHA256_ALGORITHM;
const string propName = "Test";
object propVal = 255;
var err = BCryptCreateContext(ContextConfigTable.CRYPT_LOCAL, ctx);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
try
{
err = BCryptQueryContextConfiguration(ContextConfigTable.CRYPT_LOCAL, ctx, out var _, out var buf);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var ctxcfg = buf.ToStructure<CRYPT_CONTEXT_CONFIG>();
Assert.That((int)ctxcfg.dwFlags, Is.Zero);
err = BCryptConfigureContext(ContextConfigTable.CRYPT_LOCAL, ctx, new CRYPT_CONTEXT_CONFIG { dwFlags = ContextConfigFlags.CRYPT_EXCLUSIVE });
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
err = BCryptQueryContextConfiguration(ContextConfigTable.CRYPT_LOCAL, ctx, out var _, out buf);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
ctxcfg = buf.ToStructure<CRYPT_CONTEXT_CONFIG>();
Assert.That(ctxcfg.dwFlags, Is.EqualTo(ContextConfigFlags.CRYPT_EXCLUSIVE));
err = BCryptAddContextFunction(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE, func, CryptPriority.CRYPT_PRIORITY_TOP);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
string[] funcs = null;
Assert.That(() => funcs = BCryptEnumContextFunctions(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE), Throws.Nothing);
Assert.That(funcs.Length, Is.EqualTo(1));
Assert.That(funcs[0], Is.EqualTo(func));
err = BCryptQueryContextFunctionConfiguration(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE, func, out var _, out buf);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_NOT_FOUND));
err = BCryptConfigureContextFunction(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE, func, new CRYPT_CONTEXT_FUNCTION_CONFIG { dwFlags = ContextConfigFlags.CRYPT_EXCLUSIVE });
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var propMem = SafeCoTaskMemHandle.CreateFromStructure(propVal);
err = BCryptSetContextFunctionProperty(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE, func, propName, (uint)propMem.Size, propMem);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
err = BCryptQueryContextFunctionProperty(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE, func, propName, out var _, out buf);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var propRes = buf.ToStructure<int>();
Assert.That(propRes, Is.EqualTo(propVal));
err = BCryptQueryContextFunctionConfiguration(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE, func, out var _, out buf);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var fcfg = buf.ToStructure<CRYPT_CONTEXT_FUNCTION_CONFIG>();
Assert.That(fcfg.dwFlags, Is.EqualTo(ContextConfigFlags.CRYPT_EXCLUSIVE));
err = BCryptRemoveContextFunction(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE, func);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
}
finally
{
err = BCryptDeleteContext(ContextConfigTable.CRYPT_LOCAL, ctx);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
}
}
[Test]
public void CreateHashTest()
{
var err = BCryptOpenAlgorithmProvider(out var hAlg, StandardAlgorithmId.BCRYPT_SHA256_ALGORITHM);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var cbHashObject = BCryptGetProperty<uint>(hAlg, BCrypt.PropertyName.BCRYPT_OBJECT_LENGTH);
Assert.That(cbHashObject, Is.GreaterThan(0));
var cbHash = BCryptGetProperty<uint>(hAlg, BCrypt.PropertyName.BCRYPT_HASH_LENGTH);
Assert.That(cbHash, Is.GreaterThan(0));
var pbHashObject = new SafeHeapBlock((int)cbHashObject);
var pbHash = new SafeHeapBlock((int)cbHash);
err = BCryptCreateHash(hAlg, out var hHash, pbHashObject, cbHashObject);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var pbDupHashObj = new SafeCoTaskMemHandle((int)cbHashObject);
err = BCryptDuplicateHash(hHash, out var hDupHash, pbDupHashObj, cbHashObject);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var rgbMsg = new byte[] { 0x61, 0x62, 0x63 };
err = BCryptHashData(hHash, rgbMsg, (uint)rgbMsg.Length, 0);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
err = BCryptFinishHash(hHash, pbHash, cbHash);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
}
[Test]
public void EncryptTest()
{
byte[] rgbPlaintext = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
byte[] rgbIV = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
byte[] rgbAES128Key = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
var err = BCryptOpenAlgorithmProvider(out var hAlg, StandardAlgorithmId.BCRYPT_AES_ALGORITHM);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var cbKeyObject = BCryptGetProperty<uint>(hAlg, BCrypt.PropertyName.BCRYPT_OBJECT_LENGTH);
Assert.That(cbKeyObject, Is.GreaterThan(0));
var cbBlockLen = BCryptGetProperty<uint>(hAlg, BCrypt.PropertyName.BCRYPT_BLOCK_LENGTH);
Assert.That(cbBlockLen, Is.GreaterThan(0));
Assert.That(cbBlockLen, Is.LessThanOrEqualTo(rgbIV.Length));
var cm = System.Text.Encoding.Unicode.GetBytes(ChainingMode.BCRYPT_CHAIN_MODE_CBC);
err = BCryptSetProperty(hAlg, BCrypt.PropertyName.BCRYPT_CHAINING_MODE, cm, (uint)cm.Length);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var pbKeyObject = new SafeCoTaskMemHandle((int)cbKeyObject);
err = BCryptGenerateSymmetricKey(hAlg, out var hKey, pbKeyObject, cbKeyObject, rgbAES128Key, (uint)rgbAES128Key.Length, 0);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
err = BCryptExportKey(hKey, default, BlobType.BCRYPT_OPAQUE_KEY_BLOB, IntPtr.Zero, 0, out var cbBlob);
Assert.That(cbBlob, Is.GreaterThan(0));
var pbBlob = new SafeCoTaskMemHandle((int)cbBlob);
err = BCryptExportKey(hKey, default, BlobType.BCRYPT_OPAQUE_KEY_BLOB, pbBlob, (uint)pbBlob.Size, out cbBlob);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var pbIV = new SafeCoTaskMemHandle((int)cbBlockLen);
Marshal.Copy(rgbIV, 0, (IntPtr)pbIV, (int)cbBlockLen);
err = BCryptEncrypt(hKey, rgbPlaintext, (uint)rgbPlaintext.Length, IntPtr.Zero, pbIV, cbBlockLen, IntPtr.Zero, 0, out var cbCipherText, EncryptFlags.BCRYPT_BLOCK_PADDING);
Assert.That(cbCipherText, Is.GreaterThan(0));
var pbCipherText = new SafeCoTaskMemHandle((int)cbCipherText);
err = BCryptEncrypt(hKey, rgbPlaintext, (uint)rgbPlaintext.Length, IntPtr.Zero, pbIV, cbBlockLen, pbCipherText, cbCipherText, out cbCipherText, EncryptFlags.BCRYPT_BLOCK_PADDING);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
Marshal.Copy(rgbIV, 0, (IntPtr)pbIV, (int)cbBlockLen);
err = BCryptImportKey(hAlg, default, BlobType.BCRYPT_OPAQUE_KEY_BLOB, out var hKey2, pbKeyObject, cbKeyObject, pbBlob, cbBlob);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
err = BCryptDecrypt(hKey2, pbCipherText, cbCipherText, IntPtr.Zero, pbIV, cbBlockLen, IntPtr.Zero, 0, out var cbPlainText, EncryptFlags.BCRYPT_BLOCK_PADDING);
Assert.That(cbPlainText, Is.GreaterThan(0));
var pbPlainText = new SafeCoTaskMemHandle((int)cbPlainText);
err = BCryptDecrypt(hKey2, pbCipherText, cbCipherText, IntPtr.Zero, pbIV, cbBlockLen, pbPlainText, cbPlainText, out cbPlainText, EncryptFlags.BCRYPT_BLOCK_PADDING);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
Assert.That(pbPlainText.ToArray<byte>(rgbPlaintext.Length), Is.EquivalentTo(rgbPlaintext));
}
[Test]
public void EnumTests()
{
var a = BCryptEnumAlgorithms((AlgOperations)0x3F);
Assert.That(a.Length, Is.Not.Zero);
TestContext.WriteLine("Alg: " + string.Join(", ", a.Select(s => $"{s.pszName} ({s.dwClass})")));
var c = BCryptEnumContexts(ContextConfigTable.CRYPT_LOCAL);
Assert.That(c.Length, Is.Not.Zero);
TestContext.WriteLine("Ctx: " + string.Join(", ", c));
var ctx = c[0];
var p = BCryptEnumProviders(StandardAlgorithmId.BCRYPT_SHA256_ALGORITHM);
Assert.That(p.Length, Is.Not.Zero);
TestContext.WriteLine("Prov: " + string.Join(", ", p));
var f = BCryptEnumContextFunctions(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE);
Assert.That(p.Length, Is.Not.Zero);
TestContext.WriteLine("Func: " + string.Join(", ", f));
var func = f[0];
var fp = BCryptEnumContextFunctionProviders(ContextConfigTable.CRYPT_LOCAL, ctx, InterfaceId.BCRYPT_HASH_INTERFACE, func);
Assert.That(fp.Length, Is.Not.Zero);
TestContext.WriteLine("FuncProv: " + string.Join(", ", fp));
var r = BCryptEnumRegisteredProviders();
Assert.That(r.Length, Is.Not.Zero);
TestContext.WriteLine("RegProv: " + string.Join(", ", r));
}
[Test]
public void SecretAgreementWithPersistedKeysTest()
{
const string keyName = "Sample ECDH Key";
byte[] SecretPrependArray = { 0x12, 0x34, 0x56 };
byte[] SecretAppendArray = { 0xab, 0xcd, 0xef };
// Get a handle to MS KSP
var hr = NCryptOpenStorageProvider(out var ProviderHandleA, KnownStorageProvider.MS_KEY_STORAGE_PROVIDER);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
// Delete existing keys
hr = NCryptOpenKey(ProviderHandleA, out var PrivKeyHandleA, keyName);
if (hr.Succeeded)
{
hr = NCryptDeleteKey(PrivKeyHandleA, 0);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
PrivKeyHandleA = null;
}
// A generates a private key
hr = NCryptCreatePersistedKey(ProviderHandleA, out PrivKeyHandleA, StandardAlgorithmId.BCRYPT_ECDH_P256_ALGORITHM, keyName);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
// Make the key exportable
var KeyPolicy = BitConverter.GetBytes((uint)ExportPolicy.NCRYPT_ALLOW_EXPORT_FLAG);
hr = NCryptSetProperty(PrivKeyHandleA, NCrypt.PropertyName.NCRYPT_EXPORT_POLICY_PROPERTY, KeyPolicy, (uint)KeyPolicy.Length, SetPropFlags.NCRYPT_PERSIST_FLAG);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
hr = NCryptFinalizeKey(PrivKeyHandleA);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
// A exports public key
hr = NCryptExportKey(PrivKeyHandleA, default, BlobType.BCRYPT_ECCPUBLIC_BLOB, pcbResult: out var PubBlobLengthA);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
var PubBlobA = new SafeCoTaskMemHandle((int)PubBlobLengthA);
hr = NCryptExportKey(PrivKeyHandleA, default, BlobType.BCRYPT_ECCPUBLIC_BLOB, null, PubBlobA, PubBlobLengthA, out PubBlobLengthA);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
// B generates a private key
var err = BCryptOpenAlgorithmProvider(out var ExchAlgHandleB, StandardAlgorithmId.BCRYPT_ECDH_P256_ALGORITHM, KnownProvider.MS_PRIMITIVE_PROVIDER);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
err = BCryptGenerateKeyPair(ExchAlgHandleB, out var PrivKeyHandleB, 256);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
err = BCryptFinalizeKeyPair(PrivKeyHandleB);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
// B exports public key
err = BCryptExportKey(PrivKeyHandleB, default, BlobType.BCRYPT_ECCPUBLIC_BLOB, pcbResult: out var PubBlobLengthB);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var PubBlobB = new SafeCoTaskMemHandle((int)PubBlobLengthB);
err = BCryptExportKey(PrivKeyHandleB, default, BlobType.BCRYPT_ECCPUBLIC_BLOB, PubBlobB, PubBlobLengthB, out PubBlobLengthB);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
// A imports B's public key
hr = NCryptImportKey(ProviderHandleA, default, BlobType.BCRYPT_ECCPUBLIC_BLOB, null, out var PubKeyHandleA, PubBlobB, PubBlobLengthB);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
// A generates the agreed secret
hr = NCryptSecretAgreement(PrivKeyHandleA, PubKeyHandleA, out var AgreedSecretHandleA);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
// Build KDF parameter list Specify hash algorithm, secret to append and secret to prepend
var ParameterList = new NCryptBufferDesc
{
pBuffers = new[] {
new NCryptBuffer(BufferType.KDF_HASH_ALGORITHM, StandardAlgorithmId.BCRYPT_SHA256_ALGORITHM),
new NCryptBuffer(BufferType.KDF_SECRET_APPEND, SecretAppendArray),
new NCryptBuffer(BufferType.KDF_SECRET_PREPEND, SecretPrependArray) }
};
hr = NCryptDeriveKey(AgreedSecretHandleA, KDF.BCRYPT_KDF_HMAC, ParameterList, IntPtr.Zero, 0, out var AgreedSecretLengthA, DeriveKeyFlags.KDF_USE_SECRET_AS_HMAC_KEY_FLAG);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
var AgreedSecretA = new SafeCoTaskMemHandle((int)AgreedSecretLengthA);
hr = NCryptDeriveKey(AgreedSecretHandleA, KDF.BCRYPT_KDF_HMAC, ParameterList, AgreedSecretA, AgreedSecretLengthA, out AgreedSecretLengthA, DeriveKeyFlags.KDF_USE_SECRET_AS_HMAC_KEY_FLAG);
Assert.That((int)hr, Is.EqualTo(HRESULT.S_OK));
// B imports A's public key
err = BCryptImportKeyPair(ExchAlgHandleB, default, BlobType.BCRYPT_ECCPUBLIC_BLOB, out var PubKeyHandleB, PubBlobA, PubBlobLengthA);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
// B generates the agreed secret
err = BCryptSecretAgreement(PrivKeyHandleB, PubKeyHandleB, out var AgreedSecretHandleB);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
err = BCryptDeriveKey(AgreedSecretHandleB, KDF.BCRYPT_KDF_HMAC, ParameterList, IntPtr.Zero, 0, out var AgreedSecretLengthB, DeriveKeyFlags.KDF_USE_SECRET_AS_HMAC_KEY_FLAG);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
var AgreedSecretB = new SafeCoTaskMemHandle((int)AgreedSecretLengthB);
err = BCryptDeriveKey(AgreedSecretHandleB, KDF.BCRYPT_KDF_HMAC, ParameterList, AgreedSecretB, AgreedSecretLengthB, out AgreedSecretLengthB, DeriveKeyFlags.KDF_USE_SECRET_AS_HMAC_KEY_FLAG);
Assert.That((uint)err, Is.EqualTo(NTStatus.STATUS_SUCCESS));
// At this point the AgreedSecretA should be the same as AgreedSecretB. In a real scenario, the agreed secrets on both sides will
// probably be input to a BCryptGenerateSymmetricKey function. Optional : Compare them
Assert.That(AgreedSecretLengthA, Is.EqualTo(AgreedSecretLengthB));
Assert.That(AgreedSecretA.ToEnumerable<byte>(AgreedSecretA.Size), Is.EquivalentTo(AgreedSecretB.ToEnumerable<byte>(AgreedSecretB.Size)));
}
}
}

View File

@ -1,4 +1,6 @@
using NUnit.Framework;
using System;
using System.DirectoryServices;
using System.Linq;
using System.Text;
using static Vanara.PInvoke.NTDSApi;
@ -8,6 +10,16 @@ namespace Vanara.PInvoke.Tests
[TestFixture()]
public class NTDSApiTests
{
public SafeDsHandle hDs;
public string dn;
[OneTimeSetUp]
public void Setup()
{
dn = System.Environment.UserDomainName;
DsBind(null, dn, out hDs).ThrowIfFailed();
}
[Test, TestCaseSource(typeof(AdvApi32Tests), nameof(AdvApi32Tests.AuthCasesFromFile))]
public void DsBindTest(bool validUser, bool validCred, string urn, string dn, string dcn, string domain, string un, string pwd, string notes)
{
@ -16,6 +28,18 @@ namespace Vanara.PInvoke.Tests
Assert.That(DsBind(null, dn, out var dsb2).Succeeded && !dsb2.IsInvalid, Is.EqualTo(validUser));
}
[Test, TestCaseSource(typeof(AdvApi32Tests), nameof(AdvApi32Tests.AuthCasesFromFile))]
public void DsBindByInstanceTest(bool validUser, bool validCred, string urn, string dn, string dcn, string domain, string un, string pwd, string notes)
{
Assert.That(DsBindByInstance(DnsDomainName: dn, AuthIdentity: SafeAuthIdentityHandle.LocalThreadIdentity, phDS: out var dsb).Succeeded && !dsb.IsInvalid, Is.EqualTo(validUser));
}
[Test]
public void DsBindToISTGTest()
{
Assert.That(DsBindToISTG(null, out var dsb).Succeeded && !dsb.IsInvalid, Is.True);
}
[Test, TestCaseSource(typeof(AdvApi32Tests), nameof(AdvApi32Tests.AuthCasesFromFile))]
public void DsBindWithCredTest(bool validUser, bool validCred, string urn, string dn, string dcn, string domain, string un, string pwd, string notes)
{
@ -33,8 +57,7 @@ namespace Vanara.PInvoke.Tests
[Test, TestCaseSource(typeof(AdvApi32Tests), nameof(AdvApi32Tests.AuthCasesFromFile))]
public void DsCrackNamesTest(bool validUser, bool validCred, string urn, string dn, string dc, string domain, string un, string pwd, string notes)
{
DsBind(null, null, out var dsb).ThrowIfFailed();
var res = DsCrackNames(dsb, new[] {un}, DS_NAME_FORMAT.DS_NT4_ACCOUNT_NAME);
var res = DsCrackNames(hDs, new[] {un}, DS_NAME_FORMAT.DS_NT4_ACCOUNT_NAME);
Assert.That(res, Has.Exactly(1).Items);
for (var i = 0; i < res.Length; i++)
TestContext.WriteLine($"{i}) {res[i]}");
@ -66,13 +89,53 @@ namespace Vanara.PInvoke.Tests
[Test]
public void DsGetDCInfoTest()
{
var dn = System.Environment.UserDomainName; // System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;
DsBind(null, dn, out var dsb).ThrowIfFailed();
var ret = DsGetDomainControllerInfo(dsb, dn, 1, out var u1, out var i1);
ret.ThrowIfFailed();
var s1 = i1.ToIEnum<DS_DOMAIN_CONTROLLER_INFO_1>(u1).ToArray();
DS_DOMAIN_CONTROLLER_INFO_1[] s1 = null;
Assert.That(() => s1 = DsGetDomainControllerInfo<DS_DOMAIN_CONTROLLER_INFO_1>(hDs, dn), Throws.Nothing);
Assert.That(s1, Is.Not.Null.And.Property("Length").GreaterThan(0));
Assert.That(s1[0].fDsEnabled);
DsFreeDomainControllerInfo(1, u1, i1);
DS_DOMAIN_CONTROLLER_INFO_2[] s2 = null;
Assert.That(() => s2 = DsGetDomainControllerInfo<DS_DOMAIN_CONTROLLER_INFO_2>(hDs, dn), Throws.Nothing);
Assert.That(s2, Is.Not.Null.And.Property("Length").GreaterThan(0));
Assert.That(s2[0].fDsEnabled);
DS_DOMAIN_CONTROLLER_INFO_3[] s3 = null;
Assert.That(() => s3 = DsGetDomainControllerInfo<DS_DOMAIN_CONTROLLER_INFO_3>(hDs, dn), Throws.Nothing);
Assert.That(s3, Is.Not.Null.And.Property("Length").GreaterThan(0));
Assert.That(s3[0].fDsEnabled);
foreach (var i3 in s3)
TestContext.WriteLine($"{(i3.fIsPdc?"PDC":"DC")}{(i3.fIsGc?",GC":"")}{(i3.fIsRodc?",RO":"")}:\t{i3.NetbiosName}\t{i3.DnsHostName}\t{i3.SiteName}\t{i3.SiteObjectName}\t{i3.ComputerObjectName}\t{i3.ServerObjectName}\t{i3.NtdsDsaObjectName}\t{(i3.fDsEnabled?"Enabled":"Disabled")}");
}
[Test]
public void DsListRolesTest()
{
TestNameResult((SafeDsHandle h, out SafeDsNameResult nr) => DsListRoles(h, out nr), "Roles");
}
[Test]
public void DsListDomainsInSiteTest()
{
var site = TestNameResult((SafeDsHandle h, out SafeDsNameResult nr) => DsListSites(h, out nr), "Sites");
var dom = TestNameResult((SafeDsHandle h, out SafeDsNameResult nr) => DsListDomainsInSite(h, site, out nr), "Domains");
var siteserver = TestNameResult((SafeDsHandle h, out SafeDsNameResult nr) => DsListServersInSite(h, site, out nr), "SiteServers");
var dserver = TestNameResult((SafeDsHandle h, out SafeDsNameResult nr) => DsListServersForDomainInSite(h, dom, site, out nr), "DomServers");
var item = TestNameResult((SafeDsHandle h, out SafeDsNameResult nr) => DsListInfoForServer(h, dserver, out nr), "SvrInfo");
}
private delegate Win32Error NRDel(SafeDsHandle h, out SafeDsNameResult nr);
private string TestNameResult(NRDel f, string prefix)
{
var err = f(hDs, out var hnr);
Assert.That(err, Is.EqualTo(Win32Error.ERROR_SUCCESS));
var nrs = hnr.ToArray();
Assert.That(nrs.Length, Is.Not.Zero);
var nr = nrs[0];
Assert.That(nr.pName, Is.Not.Null);
TestContext.WriteLine(prefix + ": " + string.Join(", ", nrs));
TestContext.WriteLine();
return nr.pName;
}
[Test]
@ -84,5 +147,45 @@ namespace Vanara.PInvoke.Tests
Assert.That(key, Is.EqualTo("dc"));
Assert.That(val, Is.EqualTo("corp"));
}
[Test]
public void DsMapSchemaGuidsTest()
{
var guid = new Guid("2BEC133B-AE2B-4C32-A3F5-036149C4E671");
var err = DsMapSchemaGuids(hDs, 1, new[] { guid }, out var map);
Assert.That(err, Is.EqualTo(Win32Error.ERROR_SUCCESS));
var items = map.GetItems(1);
var item = items[0];
Assert.That(item.guid, Is.EqualTo(guid));
}
[Test]
public void DsQuerySitesByCostTest()
{
var err = DsBindToISTG(null, out var hDs);
Assert.That(err, Is.EqualTo(Win32Error.ERROR_SUCCESS));
err = NetApi32.DsGetSiteName(null, out var hSiteName);
Assert.That(err, Is.EqualTo(Win32Error.ERROR_SUCCESS));
var site = hSiteName.ToString();
var sites = GetAllSiteNames();
err = DsQuerySitesByCost(hDs, site, sites, (uint)sites.Length, 0, out var hnr);
Assert.That(err, Is.EqualTo(Win32Error.ERROR_SUCCESS));
var nrs = hnr.GetItems(sites.Length);
Assert.That(nrs.Length, Is.EqualTo(sites.Length));
var nr = nrs[0];
Assert.That(nr.cost, Is.Not.Null);
for (var i = 0; i < sites.Length; i++)
TestContext.WriteLine($"{sites[i]}: {(nrs[i].errorCode == Win32Error.ERROR_SUCCESS ? nrs[i].cost.ToString() : "Not found")}");
}
private static string[] GetAllSiteNames()
{
var rootDSE = new DirectoryEntry("LDAP://RootDSE");
var configNC = new DirectoryEntry("LDAP://" + rootDSE.Properties["configurationNamingContext"][0]);
var sitesContainer = new DirectoryEntry("LDAP://CN=Sites," + configNC.Properties["distinguishedName"][0]);
var siteFinder = new DirectorySearcher(sitesContainer, "(objectClass=site)") { PageSize = 100 };
using (var results = siteFinder.FindAll())
return results.Cast<SearchResult>().Select(r => r.Properties["name"][0].ToString()).ToArray();
}
}
}

View File

@ -16,5 +16,5 @@ using System.Runtime.InteropServices;
[assembly: Guid("3c9e407f-9d0b-4b54-b181-ba5476b8d2dc")]
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.0.0")]
[assembly: AssemblyVersion("2.0.1.0")]
[assembly: AssemblyFileVersion("2.0.1.0")]

View File

@ -43,6 +43,7 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.DirectoryServices" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Numerics" />
@ -75,6 +76,7 @@
<Compile Include="PInvoke\AdvApi32\AdvApi32Tests.cs" />
<Compile Include="PInvoke\AdvApi32\PSIDTests.cs" />
<Compile Include="PInvoke\Authz\AuthzTests.cs" />
<Compile Include="PInvoke\BCrypt\BCryptTests.cs" />
<Compile Include="PInvoke\CommCtrl\EditTest.cs" />
<Compile Include="PInvoke\CredUI\CredUITests.cs" />
<Compile Include="PInvoke\DwmApi\DwmApiTests.cs" />
@ -158,9 +160,9 @@
<Project>{1f0b972a-06da-4f6a-8b60-87d76fb1f2d9}</Project>
<Name>Vanara.PInvoke.CredUI</Name>
</ProjectReference>
<ProjectReference Include="..\PInvoke\Crypt32\Vanara.PInvoke.Crypt32.csproj">
<Project>{bd86fd1b-d52e-4b78-89ac-36d89458ebd8}</Project>
<Name>Vanara.PInvoke.Crypt32</Name>
<ProjectReference Include="..\PInvoke\Cryptography\Vanara.PInvoke.Cryptography.csproj">
<Project>{b0df2976-be60-4856-a634-5487222360b2}</Project>
<Name>Vanara.PInvoke.Cryptography</Name>
</ProjectReference>
<ProjectReference Include="..\PInvoke\DwmApi\Vanara.PInvoke.DwmApi.csproj">
<Project>{e1c6d6af-60a0-42cd-af77-f0de0ffe1395}</Project>

View File

@ -67,8 +67,6 @@ Project("{7CF6DF6D-3B04-46F8-A40B-537D21BCA0B4}") = "HelpBuilder", "HelpBuilder\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vanara.PInvoke.Mpr", "PInvoke\Mpr\Vanara.PInvoke.Mpr.csproj", "{E91C263F-82D9-40A9-99A1-F879CB076BCE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vanara.PInvoke.Crypt32", "PInvoke\Crypt32\Vanara.PInvoke.Crypt32.csproj", "{BD86FD1B-D52E-4B78-89AC-36D89458EBD8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vanara.PInvoke.User32.Gdi", "PInvoke\User32.Gdi\Vanara.PInvoke.User32.Gdi.csproj", "{FC7B25B5-3BB9-44F5-93D9-9AB7193B1BE9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vanara.Windows.Shell", "Windows.Shell\Vanara.Windows.Shell.csproj", "{43685BE2-A65E-4B01-BE16-479526940F23}"
@ -83,6 +81,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vanara.PInvoke.NtDll", "PIn
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vanara.PInvoke.Ws2_32", "PInvoke\Ws2_32\Vanara.PInvoke.Ws2_32.csproj", "{74D00C4C-DA94-4046-B3CD-318FECDE3794}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vanara.PInvoke.Cryptography", "PInvoke\Cryptography\Vanara.PInvoke.Cryptography.csproj", "{B0DF2976-BE60-4856-A634-5487222360B2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -187,10 +187,6 @@ Global
{E91C263F-82D9-40A9-99A1-F879CB076BCE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E91C263F-82D9-40A9-99A1-F879CB076BCE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E91C263F-82D9-40A9-99A1-F879CB076BCE}.Release|Any CPU.Build.0 = Release|Any CPU
{BD86FD1B-D52E-4B78-89AC-36D89458EBD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD86FD1B-D52E-4B78-89AC-36D89458EBD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD86FD1B-D52E-4B78-89AC-36D89458EBD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD86FD1B-D52E-4B78-89AC-36D89458EBD8}.Release|Any CPU.Build.0 = Release|Any CPU
{FC7B25B5-3BB9-44F5-93D9-9AB7193B1BE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC7B25B5-3BB9-44F5-93D9-9AB7193B1BE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC7B25B5-3BB9-44F5-93D9-9AB7193B1BE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -219,6 +215,10 @@ Global
{74D00C4C-DA94-4046-B3CD-318FECDE3794}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74D00C4C-DA94-4046-B3CD-318FECDE3794}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74D00C4C-DA94-4046-B3CD-318FECDE3794}.Release|Any CPU.Build.0 = Release|Any CPU
{B0DF2976-BE60-4856-A634-5487222360B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0DF2976-BE60-4856-A634-5487222360B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B0DF2976-BE60-4856-A634-5487222360B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B0DF2976-BE60-4856-A634-5487222360B2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -244,12 +244,12 @@ Global
{392A14B0-1E10-4E88-9C13-0D965665FFB5} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{BBE4A7D6-0B24-4F58-9726-E05F358C1256} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{E91C263F-82D9-40A9-99A1-F879CB076BCE} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{BD86FD1B-D52E-4B78-89AC-36D89458EBD8} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{FC7B25B5-3BB9-44F5-93D9-9AB7193B1BE9} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{BBD8CE8D-31D2-4DFB-8D96-46825C09C7F1} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{EF53ED51-C141-4525-A6B7-41109EE5F416} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{9E0C0DC0-E1B6-42A7-BD31-9A62EEADA780} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{74D00C4C-DA94-4046-B3CD-318FECDE3794} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
{B0DF2976-BE60-4856-A634-5487222360B2} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {543FAC75-2AF1-4EF1-9609-B242B63FEED4}

BIN
Vanara.snk Normal file

Binary file not shown.

View File

@ -123,7 +123,7 @@ FilenameProperty | Properties accessible via `VisualTheme.GetFilename(System.Int
Flip3DWindowPolicy | Flags used by the SetWindowAttr method to specify the Flip3D window policy. | Default, ExcludeBelow, ExcludeAbove
FolderBrowserDialogOptions | | Folders, FoldersAndFiles, Computers, Printers
FontProperty | Properties accessible via `VisualTheme.GetFont(System.Drawing.IDeviceContext,System.Int32,System.Int32,Vanara.Windows.Forms.VisualTheme.FontProperty)`. | Caption, SmallCaption, Menu, Status, MessageBox, IconTitle, Heading1, Heading2, Body, Glyph
IconSize | Used to determine the size of the icon returned by <see cref="!:ShellImageList.GetSystemIcon" />. | Large, Small, ExtraLarge, Jumbo
IconSize | Used to determine the size of the icon returned by various shell methods. | Large, Small, ExtraLarge, Jumbo
IntProperty | Properties accessible via `VisualTheme.GetInt(System.Int32,System.Int32,Vanara.Windows.Forms.VisualTheme.IntProperty)`. | CharSet, MinimumColorDepth, FromHue1, FromHue2, FromHue3, FromHue4, FromHue5, ToHue1, ToHue2, ToHue3, ToHue4, ToHue5, ToColor1, ToColor2, ToColor3, ToColor4, ToColor5, TextGlowSize, FramesPerSecond, PixelsPerFrame, AnimationDelay, GlowIntensity, Opacity, ColorizationColor, ColorizationOpacity, AnimationDuration
KnownFolder | Standard folders registered with the system as Known Folders. A computer will have only folders appropriate to it installed. | AccountPictures, AddNewPrograms, AdminTools, ApplicationShortcuts, AppsFolder, AppUpdates, CameraRoll, CDBurning, ChangeRemovePrograms, CommonAdminTools, CommonOEMLinks, CommonPrograms, CommonStartMenu, CommonStartup, CommonTemplates, ComputerFolder, ConflictFolder, ConnectionsFolder, Contacts, ControlPanelFolder, Cookies, Desktop, DeviceMetadataStore, Documents, DocumentsLibrary, Downloads, Favorites, Fonts, Games, GameTasks, History, HomeGroup, HomeGroupCurrentUser, ImplicitAppShortcuts, InternetCache, InternetFolder, Libraries, Links, LocalAppData, LocalAppDataLow, LocalizedResourcesDir, Music, MusicLibrary, NetHood, NetworkFolder, OriginalImages, PhotoAlbums, PicturesLibrary, Pictures, Playlists, PrintersFolder, PrintHood, Profile, ProgramData, ProgramFiles, ProgramFilesX64, ProgramFilesX86, ProgramFilesCommon, ProgramFilesCommonX64, ProgramFilesCommonX86, Programs, Public, PublicDesktop, PublicDocuments, PublicDownloads, PublicGameTasks, PublicLibraries, PublicMusic, PublicPictures, PublicRingtones, PublicUserTiles, PublicVideos, QuickLaunch, Recent, RecordedTVLibrary, RecycleBinFolder, ResourceDir, Ringtones, RoamingAppData, RoamedTileImages, RoamingTiles, SampleMusic, SamplePictures, SamplePlaylists, SampleVideos, SavedGames, SavedPictures, SavedPicturesLibrary, SavedSearches, Screenshots, SEARCH_CSC, SearchHistory, SearchHome, SEARCH_MAPI, SearchTemplates, SendTo, SidebarDefaultParts, SidebarParts, SkyDrive, SkyDriveCameraRoll, SkyDriveDocuments, SkyDrivePictures, StartMenu, Startup, SyncManagerFolder, SyncResultsFolder, SyncSetupFolder, System, SystemX86, Templates, UserPinned, UserProfiles, UserProgramFiles, UserProgramFilesCommon, UsersFiles, UsersLibraries, Videos, VideosLibrary, Windows, Undefined
MarginsProperty | Properties accessible via `VisualTheme.GetMargins(System.Drawing.IDeviceContext,System.Int32,System.Int32,Vanara.Windows.Forms.VisualTheme.MarginsProperty)`. | Sizing, Content, Caption

View File

@ -4,7 +4,7 @@
<Description>Classes for user interface related items derived from the Vanara PInvoke libraries. Includes extensions for almost all common controls to give post Vista capabilities, WinForms controls (panel, commandlink, enhanced combo boxes, IPAddress, split button, trackbar and themed controls), shutdown/restart/lock control, buffered painting, resource files, access control editor, simplifed designer framework for Windows.Forms.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.Windows.Forms</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -33,6 +33,8 @@ BitmapProperty, BoolProperty, CloakingSource, CollapsiblePanelBorderCondition, C
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

View File

@ -4,7 +4,7 @@
<Description>Classes for Windows Shell items derived from the Vanara PInvoke libraries. Includes shell items, files, icons, links, and taskbar lists.</Description>
<Copyright>Copyright © 2017-2018</Copyright>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<VersionPrefix>2.0.0</VersionPrefix>
<VersionPrefix>2.0.1</VersionPrefix>
<TargetFrameworks>net20;net35;net40;net45</TargetFrameworks>
<AssemblyName>Vanara.Windows.Shell</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
@ -30,6 +30,8 @@ ChangeFilters, ExecutableType, FolderItemFilter, LibraryFolderFilter, LibraryVie
</PackageReleaseNotes>
<LangVersion>latest</LangVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Vanara.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>