Exports Added For ADVAPI32 4.0

The table below lists all the functions that are first exported from ADVAPI32 by name in version 4.0, i.e., for the original Windows 95 and for Windows NT 4.0.

Version 4.0 is complicated by its use for two operating systems. The Windows that runs on DOS came first and is referred to below as Windows. The Windows that survives today began as Windows NT and is referred to below as NT even though it has long superseded the other Windows. Most functions that were added for version 4.0 were for the NT stream only. A handful carried into the Windows stream for version 4.70. Most are at least exported from version 4.80. I have not checked whether any ever were documented as exports from Windows 98 or Windows Me, let alone whether any were implemented non-trivially in those Windows releases.

Function Remarks
BuildAccessRequestA NT only;
discontinued in SP4
BuildAccessRequestW NT only;
discontinued in SP4
BuildExplicitAccessWithNameA NT-only before 4.80
BuildExplicitAccessWithNameW NT-only before 4.80
BuildImpersonateExplicitAccessWithNameA NT-only before 4.80;
documented as “provided for future use” in 1997, but obsolete by 1999
BuildImpersonateExplicitAccessWithNameW NT-only before 4.80;
documented as “provided for future use” in 1997, but obsolete by 1999
BuildImpersonateTrusteeA NT-only before 4.80;
documented as “provided for future use” in 1997, but obsolete by 1999
BuildImpersonateTrusteeW NT-only before 4.80;
documented as “provided for future use” in 1997, but obsolete by 1999
BuildSecurityDescriptorA NT-only before 4.80
BuildSecurityDescriptorW NT-only before 4.80
BuildTrusteeWithNameA NT-only before 4.80
BuildTrusteeWithNameW NT-only before 4.80
BuildTrusteeWithSidA NT-only before 4.80
BuildTrusteeWithSidW NT-only before 4.80
CancelOverlappedAccess begins in SP4;
NT-only before 4.80;
documentation withdrawn in 1999-2000
ConvertAccessToSecurityDescriptorA begins in SP4;
NT-only before 4.80
ConvertAccessToSecurityDescriptorW begins in SP4;
NT-only before 4.80
ConvertSecurityDescriptorToAccessA begins in SP4;
NT-only before 4.80
ConvertSecurityDescriptorToAccessNamedA begins in SP4;
NT-only before 4.80
ConvertSecurityDescriptorToAccessNamedW begins in SP4;
NT-only before 4.80
ConvertSecurityDescriptorToAccessW begins in SP4;
NT-only before 4.80
CryptAcquireContextA NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptAcquireContextW NT-only before 4.80;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptCreateHash NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptDecrypt NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptDeriveKey NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptDestroyHash NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptDestroyKey NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptEncrypt NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptExportKey NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptGenKey NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptGenRandom NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptGetHashParam NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptGetKeyParam NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptGetProvParam NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptGetUserKey NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptHashData NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptHashSessionKey NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptImportKey NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptReleaseContext NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptSetHashParam NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptSetKeyParam NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptSetProvParam NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptSetProviderA NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptSetProviderW NT-only before 4.80;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptSignHashA NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptSignHashW NT-only before 4.80;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptVerifySignatureA NT-only in 4.0;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
CryptVerifySignatureW NT-only before 4.80;
implemented as delay-load jump to CRYPTSP in 6.1 and higher
DenyAccessRightsA NT only;
discontinued in SP4
DenyAccessRightsW NT only;
discontinued in SP4
DuplicateTokenEx NT-only before 4.80;
implemented as jump to API-MS-Win-Security-Base-L1-1-0 in 6.1 and higher
EnumServiceGroupW NT only
EnumServicesStatusExA begins in SP4;
NT only;
documented as requiring at least Windows 2000
EnumServicesStatusExW begins in SP4;
NT only;
documented as requiring at least Windows 2000
GetAccessPermissionsForObjectA begins in SP4;
NT-only before 4.80
GetAccessPermissionsForObjectW begins in SP4;
NT-only before 4.80
GetAuditedPermissionsFromAclA NT-only before 4.80
GetAuditedPermissionsFromAclW NT-only before 4.80
GetAuditedPermissionsFromSDA NT only;
discontinued in SP4
GetAuditedPermissionsFromSDW NT only;
discontinued in SP4
GetCurrentHwProfileA NT-only before 4.80
GetCurrentHwProfileW NT-only before 4.80
GetEffectiveAccessRightsA NT only;
discontinued in SP4
GetEffectiveAccessRightsW NT only;
discontinued in SP4
GetEffectiveRightsFromAclA NT-only before 4.80
GetEffectiveRightsFromAclW NT-only before 4.80
GetEffectiveRightsFromSDA NT only;
discontinued in SP4
GetEffectiveRightsFromSDW NT only;
discontinued in SP4
GetExplicitAccessRightsA NT only;
discontinued in SP4
GetExplicitAccessRightsW NT only;
discontinued in SP4
GetExplicitEntriesFromAclA NT-only before 4.80
GetExplicitEntriesFromAclW NT-only before 4.80
GetMultipleTrusteeA NT-only before 4.80;
documented as “provided for future use” in 1997, but obsolete by 1999
GetMultipleTrusteeOperationA NT-only before 4.80;
documented as “provided for future use” in 1997, but obsolete by 1999
GetMultipleTrusteeOperationW NT-only before 4.80;
documented as “provided for future use” in 1997, but obsolete by 1999
GetMultipleTrusteeW NT-only before 4.80;
documented as “provided for future use” in 1997, but obsolete by 1999
GetNamedSecurityInfoA NT-only before 4.80
GetNamedSecurityInfoW NT-only before 4.80
GetNamedSecurityInfoExA begins in SP4;
NT-only before 4.80
GetNamedSecurityInfoExW begins in SP4;
NT-only before 4.80
GetOverlappedAccessResults begins in SP4;
NT-only before 4.80;
documentation withdrawn in 1999-2000
GetSecurityInfo NT-only before 4.80
GetSecurityInfoExA begins in SP4;
NT-only before 4.80
GetSecurityInfoExW begins in SP4;
NT-only before 4.80
GetTrusteeNameA NT-only before 4.80
GetTrusteeNameW NT-only before 4.80
GetTrusteeTypeA NT-only before 4.80
GetTrusteeTypeW NT-only before 4.80
GrantAccessRightsA NT only;
discontinued in SP4
GrantAccessRightsW NT only;
discontinued in SP4
I_ScGetCurrentGroupStateW NT only
IsAccessPermittedA NT only;
discontinued in SP4
IsAccessPermittedW NT only;
discontinued in SP4
LookupSecurityDescriptorPartsA NT-only before 4.80
LookupSecurityDescriptorPartsW NT-only before 4.80
LsaGetRemoteUserName begins in SP4;
NT only
LsaGetUserName NT only
NTAccessMaskToProvAccessRights NT only;
discontinued in SP4
ObjectDeleteAuditAlarmA NT-only before 4.80
ObjectDeleteAuditAlarmW NT-only before 4.80;
implemented as jump to API-MS-Win-Security-Base-L1-1-0 in 6.1 and higher
ProvAccessRightsToNTAccessMask NT only;
discontinued in SP4
QueryServiceStatusEx begins in SP4;
NT only;
implemented as jump to API-MS-WIN-Service-Management-L2-1-0 in 6.1 and higher;
documented as requiring at least Windows 2000
RegRemapPreDefKey Windows only;
discontinued in 6.1
ReplaceAllAccessRightsA NT only;
discontinued in SP4
ReplaceAllAccessRightsW NT only;
discontinued in SP4
RevokeExplicitAccessRightsA NT only;
discontinued in SP4
RevokeExplicitAccessRightsW NT only;
discontinued in SP4
SetAccessRightsA NT only;
discontinued in SP4
SetAccessRightsW NT only;
discontinued in SP4
SetEntriesInAccessListA begins in SP4;
NT-only before 4.80
SetEntriesInAccessListW begins in SP4;
NT-only before 4.80
SetEntriesInAclA NT-only before 4.80;
documented as requiring at least Windows 2000
SetEntriesInAclW NT-only before 4.80;
documented as requiring at least Windows 2000
SetEntriesInAuditListA begins in SP4;
NT-only before 4.80
SetEntriesInAuditListW begins in SP4;
NT-only before 4.80
SetNamedSecurityInfoA NT-only before 4.80
SetNamedSecurityInfoExA begins in SP4;
NT-only before 4.80
SetNamedSecurityInfoExW begins in SP4;
NT-only before 4.80
SetNamedSecurityInfoW NT-only before 4.80
SetSecurityInfo NT-only before 4.80
SetSecurityInfoExA begins in SP4;
NT-only before 4.80
SetSecurityInfoExW begins in SP4;
NT-only before 4.80
TrusteeAccessToObjectA begins in SP4;
NT-only before 4.80
TrusteeAccessToObjectW begins in SP4;
NT-only before 4.80