InitializeSid (advapi32)
Last changed: -77.125.97.109

.
Summary
The InitializeSid function initializes a security identifier (SID).

C# Signature:

        [DllImport("advapi32.dll", SetLastError = true)]
        internal unsafe static extern BOOL InitializeSid(
        IntPtr Sid,
        SID_IDENTIFIER_AUTHORITY* pIdentifierAuthority,
        byte nSubAuthorityCount);

VB Signature:

        Declare Function InitializeSid Lib "advapi32.dll" (ByVal psid As IntPtr, ByRef pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As Byte) As Integer

User-Defined Types:

SID_IDENTIFIER_AUTHORITY

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

  Dim authorityID As Integer = 123456

  Dim sia As SID_IDENTIFIER_AUTHORITY
  sia.Value1 = 0
  sia.Value2 = 0
  sia.Value3 = (authorityID And &HFF000000I) / &H1000000I
  sia.Value4 = (authorityID And &HFF0000I) / &H10000I
  sia.Value5 = (authorityID And &HFF00I) / &H100I
  sia.Value6 = (authorityID And &HFFI) / &H1I

  'Allocate a SID large enough for the number of sub-authorities present.
  Dim pSID As IntPtr = Runtime.InteropServices.Marshal.AllocHGlobal(GetSidLengthRequired(sidParts.Length - 1))

  'Initialise the SID.
  If InitializeSid(pSID, sia, sidParts.Length - 1) = 0 Then
    Throw New Exception("Unexpected error trying to initialise a SID.")
  End If

Alternative Managed API:

Do you know one? Please contribute it!

Documentation