亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sid.c

?? 一個類似windows
?? C
?? 第 1 頁 / 共 2 頁
字號:
        }
        if (csubauth == 0)
        {
            TRACE("SubAuthorityCount is 0\n");
            goto lend; /* ERROR_INVALID_SID */
        }

	pisid->SubAuthorityCount = csubauth;

        /* Advance to identifier authority */
	while (*StringSid && *StringSid != '-')
            StringSid++;
        if (*StringSid == '-')
            StringSid++;

        /* MS' implementation can't handle values greater than 2^32 - 1, so
         * we don't either; assume most significant bytes are always 0
         */
        pisid->IdentifierAuthority.Value[0] = 0;
        pisid->IdentifierAuthority.Value[1] = 0;
        identAuth = atoiW(StringSid);
        pisid->IdentifierAuthority.Value[5] = identAuth & 0xff;
        pisid->IdentifierAuthority.Value[4] = (identAuth & 0xff00) >> 8;
        pisid->IdentifierAuthority.Value[3] = (identAuth & 0xff0000) >> 16;
        pisid->IdentifierAuthority.Value[2] = (identAuth & 0xff000000) >> 24;

        /* Advance to first sub authority */
        while (*StringSid && *StringSid != '-')
            StringSid++;
        if (*StringSid == '-')
            StringSid++;

        while (*StringSid)
	{	
	    while (*StringSid && *StringSid != '-')
                StringSid++;

            pisid->SubAuthority[i++] = atoiW(StringSid);
        }

	if (i != pisid->SubAuthorityCount)
            goto lend; /* ERROR_INVALID_SID */

        bret = TRUE;
    }
    else /* String constant format  - Only available in winxp and above */
    {
        pisid->Revision = SDDL_REVISION;
	pisid->SubAuthorityCount = 1;

	FIXME("String constant not supported: %s\n", debugstr_wn(StringSid, 2));

	/* TODO: Lookup string of well-known SIDs in table */
	pisid->IdentifierAuthority.Value[5] = 0;
	pisid->SubAuthority[0] = 0;

        bret = TRUE;
    }

lend:
    if (!bret)
        SetLastError(ERROR_INVALID_SID);

    TRACE("returning %s\n", bret ? "TRUE" : "FALSE");
    return bret;
}

/* Exported functions */

/*
 * @implemented
 */
BOOL STDCALL
AllocateLocallyUniqueId(PLUID Luid)
{
  NTSTATUS Status;

  Status = NtAllocateLocallyUniqueId (Luid);
  if (!NT_SUCCESS (Status))
    {
      SetLastError (RtlNtStatusToDosError (Status));
      return FALSE;
    }

  return TRUE;
}


/*
 * @implemented
 */
BOOL STDCALL
AllocateAndInitializeSid (PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
			  BYTE nSubAuthorityCount,
			  DWORD dwSubAuthority0,
			  DWORD dwSubAuthority1,
			  DWORD dwSubAuthority2,
			  DWORD dwSubAuthority3,
			  DWORD dwSubAuthority4,
			  DWORD dwSubAuthority5,
			  DWORD dwSubAuthority6,
			  DWORD dwSubAuthority7,
			  PSID *pSid)
{
  NTSTATUS Status;

  Status = RtlAllocateAndInitializeSid (pIdentifierAuthority,
					nSubAuthorityCount,
					dwSubAuthority0,
					dwSubAuthority1,
	                                      dwSubAuthority2,
	                                      dwSubAuthority3,
	                                      dwSubAuthority4,
	                                      dwSubAuthority5,
	                                      dwSubAuthority6,
	                                      dwSubAuthority7,
	                                      pSid);
  if (!NT_SUCCESS (Status))
    {
      SetLastError (RtlNtStatusToDosError (Status));
      return FALSE;
    }

  return TRUE;
}


/*
 * @implemented
 */
BOOL STDCALL
CopySid (DWORD nDestinationSidLength,
	 PSID pDestinationSid,
	 PSID pSourceSid)
{
  NTSTATUS Status;

  Status = RtlCopySid (nDestinationSidLength,
		       pDestinationSid,
		       pSourceSid);
  if (!NT_SUCCESS (Status))
    {
      SetLastError (RtlNtStatusToDosError (Status));
      return FALSE;
    }

  return TRUE;
}
/* Winehq cvs 20050916 */
/******************************************************************************
 * ConvertStringSecurityDescriptorToSecurityDescriptorW [ADVAPI32.@]
 * @implemented
 */
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW(
        LPCWSTR StringSecurityDescriptor,
        DWORD StringSDRevision,
        PSECURITY_DESCRIPTOR* SecurityDescriptor,
        PULONG SecurityDescriptorSize)
{
    DWORD cBytes;
    SECURITY_DESCRIPTOR* psd;
    BOOL bret = FALSE;

    TRACE("%s\n", debugstr_w(StringSecurityDescriptor));

    if (GetVersion() & 0x80000000)
    {
        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
        goto lend;
    }
    else if (StringSDRevision != SID_REVISION)
    {
        SetLastError(ERROR_UNKNOWN_REVISION);
	goto lend;
    }

    /* Compute security descriptor length */
    if (!ParseStringSecurityDescriptorToSecurityDescriptor(StringSecurityDescriptor,
        NULL, &cBytes))
	goto lend;

    psd = *SecurityDescriptor = (SECURITY_DESCRIPTOR*) LocalAlloc(
        GMEM_ZEROINIT, cBytes);

    psd->Revision = SID_REVISION;
    psd->Control |= SE_SELF_RELATIVE;

    if (!ParseStringSecurityDescriptorToSecurityDescriptor(StringSecurityDescriptor,
        psd, &cBytes))
    {
        LocalFree(psd);
	goto lend;
    }

    if (SecurityDescriptorSize)
        *SecurityDescriptorSize = cBytes;

    bret = TRUE;
 
lend:
    TRACE(" ret=%d\n", bret);
    return bret;
}

/* Winehq cvs 20050916 */
/******************************************************************************
 * ConvertStringSecurityDescriptorToSecurityDescriptorA [ADVAPI32.@]
 * @implemented
 */
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorA(
        LPCSTR StringSecurityDescriptor,
        DWORD StringSDRevision,
        PSECURITY_DESCRIPTOR* SecurityDescriptor,
        PULONG SecurityDescriptorSize)
{
    UINT len;
    BOOL ret = FALSE;
    LPWSTR StringSecurityDescriptorW;

    len = MultiByteToWideChar(CP_ACP, 0, StringSecurityDescriptor, -1, NULL, 0);
    StringSecurityDescriptorW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));

    if (StringSecurityDescriptorW)
    {
        MultiByteToWideChar(CP_ACP, 0, StringSecurityDescriptor, -1, StringSecurityDescriptorW, len);

        ret = ConvertStringSecurityDescriptorToSecurityDescriptorW(StringSecurityDescriptorW,
                                                                   StringSDRevision, SecurityDescriptor,
                                                                   SecurityDescriptorSize);
        HeapFree(GetProcessHeap(), 0, StringSecurityDescriptorW);
    }

    return ret;
}

/*
 * @implemented
 */
BOOL STDCALL
EqualPrefixSid (PSID pSid1,
		PSID pSid2)
{
  return RtlEqualPrefixSid (pSid1, pSid2);
}


/*
 * @implemented
 */
BOOL STDCALL
EqualSid (PSID pSid1,
	  PSID pSid2)
{
  return RtlEqualSid (pSid1, pSid2);
}


/*
 * @implemented
 *
 * RETURNS
 *  Docs says this function does NOT return a value
 *  even thou it's defined to return a PVOID...
 */
PVOID STDCALL
FreeSid (PSID pSid)
{
   return RtlFreeSid (pSid);
}


/*
 * @implemented
 */
DWORD STDCALL
GetLengthSid (PSID pSid)
{
  return (DWORD)RtlLengthSid (pSid);
}


/*
 * @implemented
 */
PSID_IDENTIFIER_AUTHORITY STDCALL
GetSidIdentifierAuthority (PSID pSid)
{
  return RtlIdentifierAuthoritySid (pSid);
}


/*
 * @implemented
 */
DWORD STDCALL
GetSidLengthRequired (UCHAR nSubAuthorityCount)
{
  return (DWORD)RtlLengthRequiredSid (nSubAuthorityCount);
}


/*
 * @implemented
 */
PDWORD STDCALL
GetSidSubAuthority (PSID pSid,
		    DWORD nSubAuthority)
{
  return (PDWORD)RtlSubAuthoritySid (pSid, nSubAuthority);
}


/*
 * @implemented
 */
PUCHAR STDCALL
GetSidSubAuthorityCount (PSID pSid)
{
  return RtlSubAuthorityCountSid (pSid);
}


/*
 * @implemented
 */
BOOL STDCALL
InitializeSid (PSID Sid,
	       PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
	       BYTE nSubAuthorityCount)
{
  NTSTATUS Status;

  Status = RtlInitializeSid (Sid,
			     pIdentifierAuthority,
			     nSubAuthorityCount);
  if (!NT_SUCCESS (Status))
    {
      SetLastError (RtlNtStatusToDosError (Status));
      return FALSE;
    }

  return TRUE;
}


/*
 * @implemented
 */
BOOL STDCALL
IsValidSid (PSID pSid)
{
  return (BOOL)RtlValidSid (pSid);
}

/*
 * @implemented
 */
BOOL STDCALL
ConvertSidToStringSidW(PSID Sid, LPWSTR *StringSid)
{
  NTSTATUS Status;
  UNICODE_STRING UnicodeString;
  WCHAR FixedBuffer[64];

  if (! RtlValidSid(Sid))
    {
      SetLastError(ERROR_INVALID_SID);
      return FALSE;
    }

  UnicodeString.Length = 0;
  UnicodeString.MaximumLength = sizeof(FixedBuffer);
  UnicodeString.Buffer = FixedBuffer;
  Status = RtlConvertSidToUnicodeString(&UnicodeString, Sid, FALSE);
  if (STATUS_BUFFER_TOO_SMALL == Status)
    {
      Status = RtlConvertSidToUnicodeString(&UnicodeString, Sid, TRUE);
    }
  if (! NT_SUCCESS(Status))
    {
      SetLastError(RtlNtStatusToDosError(Status));
      return FALSE;
    }

  *StringSid = LocalAlloc(LMEM_FIXED, UnicodeString.Length + sizeof(WCHAR));
  if (NULL == *StringSid)
    {
      if (UnicodeString.Buffer != FixedBuffer)
        {
          RtlFreeUnicodeString(&UnicodeString);
        }
      SetLastError(ERROR_NOT_ENOUGH_MEMORY);
      return FALSE;
    }

  MoveMemory(*StringSid, UnicodeString.Buffer, UnicodeString.Length);
  ZeroMemory((PCHAR) *StringSid + UnicodeString.Length, sizeof(WCHAR));
  if (UnicodeString.Buffer != FixedBuffer)
    {
      RtlFreeUnicodeString(&UnicodeString);
    }

  return TRUE;
}


/*
 * @implemented
 */
BOOL STDCALL
ConvertSidToStringSidA(PSID Sid, LPSTR *StringSid)
{
  LPWSTR StringSidW;
  int Len;

  if (! ConvertSidToStringSidW(Sid, &StringSidW))
    {
      return FALSE;
    }

  Len = WideCharToMultiByte(CP_ACP, 0, StringSidW, -1, NULL, 0, NULL, NULL);
  if (Len <= 0)
    {
      LocalFree(StringSidW);
      SetLastError(ERROR_NOT_ENOUGH_MEMORY);
      return FALSE;
    }
  *StringSid = LocalAlloc(LMEM_FIXED, Len);
  if (NULL == *StringSid)
    {
      LocalFree(StringSidW);
      SetLastError(ERROR_NOT_ENOUGH_MEMORY);
      return FALSE;
    }

  if (! WideCharToMultiByte(CP_ACP, 0, StringSidW, -1, *StringSid, Len, NULL, NULL))
    {
      LocalFree(StringSid);
      LocalFree(StringSidW);
      return FALSE;
    }

  LocalFree(StringSidW);

  return TRUE;
}


/*
 * @unimplemented
 */
BOOL STDCALL
EqualDomainSid(IN PSID pSid1,
               IN PSID pSid2,
               OUT BOOL* pfEqual)
{
    FIXME("%s() not implemented!\n", __FUNCTION__);
    return FALSE;
}


/*
 * @unimplemented
 */
BOOL STDCALL
GetWindowsAccountDomainSid(IN PSID pSid,
                           OUT PSID ppDomainSid,
                           IN OUT DWORD* cbSid)
{
    FIXME("%s() not implemented!\n", __FUNCTION__);
    return FALSE;
}


/*
 * @unimplemented
 */
BOOL STDCALL
CreateWellKnownSid(IN WELL_KNOWN_SID_TYPE WellKnownSidType,
                   IN PSID DomainSid  OPTIONAL,
                   OUT PSID pSid,
                   IN OUT DWORD* cbSid)
{
    FIXME("unimplemented!\n", __FUNCTION__);
    return FALSE;
}


/*
 * @unimplemented
 */
BOOL STDCALL
IsWellKnownSid(IN PSID pSid,
               IN WELL_KNOWN_SID_TYPE WellKnownSidType)
{
    FIXME("unimplemented!\n", __FUNCTION__);
    return FALSE;
}


/*
 * @implemented
 */
BOOL STDCALL
ConvertStringSidToSidA(
                IN LPCSTR StringSid,
                OUT PSID* sid)
{
    BOOL bRetVal = FALSE;

    if (!StringSid || !sid)
        SetLastError(ERROR_INVALID_PARAMETER);
    else
    {
        UINT len = MultiByteToWideChar(CP_ACP, 0, StringSid, -1, NULL, 0);
        LPWSTR wStringSid = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
        MultiByteToWideChar(CP_ACP, 0, StringSid, - 1, wStringSid, len);
        bRetVal = ConvertStringSidToSidW(wStringSid, sid);
        HeapFree(GetProcessHeap(), 0, wStringSid);
    }
    return bRetVal;
}

/*
 * @unimplemented
 */
BOOL STDCALL
ConvertStringSidToSidW(
                IN LPCWSTR StringSid,
                OUT PSID* sid)
{
    FIXME("unimplemented!\n", __FUNCTION__);
    return FALSE;
}


/* EOF */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区波多野结衣在线观看| 91精品国产综合久久小美女| 久久精品国产精品亚洲精品| 午夜精品福利久久久| 亚洲韩国精品一区| 午夜国产精品影院在线观看| 午夜视频一区二区三区| 香港成人在线视频| 日韩电影免费一区| 国产乱子轮精品视频| 国产一区二区免费视频| 国产成人精品亚洲午夜麻豆| 岛国一区二区在线观看| 色综合久久中文综合久久牛| 欧美性猛交xxxx黑人交| 9191国产精品| 精品日韩av一区二区| 国产日韩视频一区二区三区| 亚洲视频资源在线| 亚洲主播在线观看| 免费成人av在线播放| 国产精品一二三| 色噜噜狠狠色综合中国| 777亚洲妇女| 国产区在线观看成人精品| 一区在线观看视频| 日韩精品91亚洲二区在线观看| 韩国成人精品a∨在线观看| 99re热这里只有精品免费视频| 欧美午夜免费电影| 精品粉嫩超白一线天av| 国产精品久久久久一区| 日韩和的一区二区| av高清不卡在线| 欧美一区二区三区四区五区| 国产精品网曝门| 视频在线观看一区二区三区| 成人午夜电影网站| 91精品国产全国免费观看 | 综合精品久久久| 天天色天天操综合| 99re8在线精品视频免费播放| 91麻豆精品国产综合久久久久久| 欧美激情在线看| 日韩国产精品久久久久久亚洲| 9久草视频在线视频精品| 欧美一区二区视频在线观看2022 | 日韩在线a电影| 成人av综合在线| 欧美一级高清大全免费观看| 国产精品不卡视频| 狠狠色狠狠色综合| 在线观看91av| 亚洲六月丁香色婷婷综合久久 | 99国产麻豆精品| 精品国产91久久久久久久妲己| 亚洲r级在线视频| 色婷婷综合久色| 亚洲一区二区三区自拍| 91热门视频在线观看| 精品国精品自拍自在线| 亚洲成a人v欧美综合天堂| 一本到不卡免费一区二区| 中文幕一区二区三区久久蜜桃| 麻豆久久一区二区| 欧美日韩精品欧美日韩精品一综合| 亚洲欧洲av另类| 国产成人高清在线| 久久久.com| 国产乱色国产精品免费视频| 久久美女艺术照精彩视频福利播放| 日本中文字幕一区二区视频| 欧美日韩三级视频| 亚洲第一搞黄网站| 欧美亚州韩日在线看免费版国语版| 日韩理论片网站| 91女神在线视频| 亚洲激情在线播放| 日本乱人伦aⅴ精品| 亚洲一区国产视频| 7777精品伊人久久久大香线蕉最新版| 亚洲一区视频在线| 91.xcao| 九九国产精品视频| 久久久久久亚洲综合| 国产老女人精品毛片久久| 国产网红主播福利一区二区| 成人黄色大片在线观看| 亚洲三级在线播放| 欧美午夜精品免费| 麻豆一区二区三| 欧美国产精品v| 91福利小视频| 久久精品国产澳门| 久久久久久影视| 色综合婷婷久久| 免费在线观看日韩欧美| 久久久不卡影院| 色哟哟一区二区三区| 日韩和欧美一区二区三区| 久久久久久久电影| 91同城在线观看| 午夜在线电影亚洲一区| 久久久久88色偷偷免费| 欧洲精品在线观看| 精品一区精品二区高清| 亚洲欧洲韩国日本视频 | 亚洲高清在线精品| 日韩女同互慰一区二区| bt欧美亚洲午夜电影天堂| 偷窥少妇高潮呻吟av久久免费| 精品美女被调教视频大全网站| 99久久精品免费看| 免费成人在线观看视频| 亚洲人成在线观看一区二区| 日韩欧美卡一卡二| 色一情一乱一乱一91av| 国产精品中文欧美| 亚洲va天堂va国产va久| 国产精品久久久久久久裸模 | www.日韩精品| 狠狠色丁香九九婷婷综合五月| 伊人一区二区三区| 久久久久久久久一| 欧美精品九九99久久| 91网站最新网址| 丰满放荡岳乱妇91ww| 日本不卡的三区四区五区| 亚洲卡通动漫在线| 欧美国产一区视频在线观看| 精品人在线二区三区| 色八戒一区二区三区| 成人开心网精品视频| 久久精品999| 亚洲一区在线视频观看| 亚洲欧美一区二区三区国产精品 | 日韩精品一区二区三区在线| 欧美日韩一区国产| 色爱区综合激月婷婷| 99国产精品久久| 国产成人在线视频播放| 国产一区二区三区精品视频| 麻豆成人综合网| 日本欧美一区二区在线观看| 亚洲福利视频一区| 亚洲一区二区视频| 一区二区三区欧美| 亚洲欧美激情一区二区| 国产精品久久午夜夜伦鲁鲁| 久久久久久久久岛国免费| 久久久久久免费网| 国产色产综合色产在线视频| 精品99久久久久久| 久久精品在线免费观看| 国产午夜亚洲精品羞羞网站| 国产色综合一区| 国产精品电影一区二区| 亚洲欧洲精品一区二区精品久久久 | 不卡的av网站| 色哟哟在线观看一区二区三区| 91久久免费观看| 欧美在线观看视频一区二区三区| 欧美性生交片4| 91精品国产入口在线| 欧美电影精品一区二区| 欧美精品一区二区三区蜜桃| 国产日韩欧美在线一区| 国产精品久久久99| 亚洲女同一区二区| 欧美bbbbb| 国产精品一级在线| 色中色一区二区| 制服.丝袜.亚洲.另类.中文 | 国产精品福利一区二区三区| 一区二区三区中文字幕精品精品| 亚洲一区电影777| 久久精品国产亚洲一区二区三区 | 国产精品每日更新在线播放网址| 亚洲欧美成aⅴ人在线观看| 视频一区视频二区中文字幕| 国产一区二区三区国产| 色系网站成人免费| 欧美大白屁股肥臀xxxxxx| 国产精品全国免费观看高清 | 视频一区免费在线观看| 国产一区日韩二区欧美三区| 9色porny自拍视频一区二区| 91精品在线免费观看| 国产网站一区二区三区| 亚洲成av人片www| 丁香另类激情小说| 欧美日韩一级视频| 国产日本欧美一区二区| 亚洲一线二线三线视频| 国产乱对白刺激视频不卡| 在线欧美一区二区| 国产欧美日韩三级| 免费一区二区视频| 一道本成人在线| 久久久久久黄色|