本文整理汇总了C++中LwAllocateMemory函数的典型用法代码示例。如果您正苦于以下问题:C++ LwAllocateMemory函数的具体用法?C++ LwAllocateMemory怎么用?C++ LwAllocateMemory使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LwAllocateMemory函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LsaMarshalGroupInfo0ToGroupAddInfo
DWORD
LsaMarshalGroupInfo0ToGroupAddInfo(
HANDLE hLsa,
PLSA_GROUP_INFO_0 pGroupInfo,
PLSA_GROUP_ADD_INFO* ppAddInfo
)
{
DWORD dwError = 0;
PLSA_GROUP_ADD_INFO pAddInfo = NULL;
dwError = LwAllocateMemory(sizeof(*pAddInfo), OUT_PPVOID(&pAddInfo));
BAIL_ON_LSA_ERROR(dwError);
pAddInfo->gid = pGroupInfo->gid;
dwError = LwStrDupOrNull(pGroupInfo->pszName, &pAddInfo->pszName);
BAIL_ON_LSA_ERROR(dwError);
*ppAddInfo = pAddInfo;
cleanup:
return dwError;
error:
*ppAddInfo = NULL;
if (pAddInfo)
{
LsaFreeGroupAddInfo(pAddInfo);
}
goto cleanup;
}
示例2: ADCacheDuplicateMembership
DWORD
ADCacheDuplicateMembership(
PLSA_GROUP_MEMBERSHIP* ppDest,
PLSA_GROUP_MEMBERSHIP pSrc
)
{
DWORD dwError = 0;
PLSA_GROUP_MEMBERSHIP pDest = NULL;
dwError = LwAllocateMemory(
sizeof(*pDest),
(PVOID*)&pDest);
BAIL_ON_LSA_ERROR(dwError);
dwError = ADCacheDuplicateMembershipContents(
pDest,
pSrc);
BAIL_ON_LSA_ERROR(dwError);
*ppDest = pDest;
cleanup:
return dwError;
error:
ADCacheSafeFreeGroupMembership(&pDest);
*ppDest = NULL;
goto cleanup;
}
示例3: CreateQueryListEntry
static
DWORD
CreateQueryListEntry(
OUT PLSA_AD_QUERY_LISTS_ENTRY* ppEntry,
IN DWORD dwQueryCount,
IN PSTR* ppszQueryValues
)
{
DWORD dwError = 0;
PLSA_AD_QUERY_LISTS_ENTRY pEntry = NULL;
dwError = LwAllocateMemory(sizeof(*pEntry), (PVOID*)&pEntry);
BAIL_ON_LSA_ERROR(dwError);
pEntry->dwQueryCount = dwQueryCount;
pEntry->ppszQueryValues = ppszQueryValues;
*ppEntry = pEntry;
cleanup:
return dwError;
error:
*ppEntry = NULL;
DestroyQueryListEntry(&pEntry);
goto cleanup;
}
示例4: LsaBuildGroupModInfo
DWORD
LsaBuildGroupModInfo(
gid_t gid,
PLSA_GROUP_MOD_INFO* ppGroupModInfo
)
{
DWORD dwError = 0;
PLSA_GROUP_MOD_INFO pGroupModInfo = NULL;
dwError = LwAllocateMemory(
sizeof(LSA_GROUP_MOD_INFO),
(PVOID*)&pGroupModInfo);
BAIL_ON_LSA_ERROR(dwError);
pGroupModInfo->gid = gid;
*ppGroupModInfo = pGroupModInfo;
cleanup:
return dwError;
error:
if (pGroupModInfo) {
LsaFreeGroupModInfo(pGroupModInfo);
}
*ppGroupModInfo = NULL;
goto cleanup;
}
示例5: LWSaveConfigSectionList
DWORD
LWSaveConfigSectionList(
PCSTR pszConfigFilePath,
PCFGSECTION pSectionList
)
{
DWORD dwError = 0;
/*PNVPAIR pNVPair = NULL;*/
FILE* fp = NULL;
PSTR pszTmpPath = NULL;
BOOLEAN bRemoveFile = FALSE;
dwError = LwAllocateMemory(strlen(pszConfigFilePath)+strlen(".macadutil")+1,
(PVOID*)&pszTmpPath);
BAIL_ON_MAC_ERROR(dwError);
sprintf(pszTmpPath, "%s.macadutil", pszConfigFilePath);
if ((fp = fopen(pszTmpPath, "w")) == NULL) {
dwError = errno;
BAIL_ON_MAC_ERROR(dwError);
}
if (fcntl(fileno(fp), F_SETFD, FD_CLOEXEC) < 0) {
dwError = errno;
BAIL_ON_MAC_ERROR(dwError);
}
bRemoveFile = TRUE;
dwError = LWSaveConfigSectionListToFile(fp, pSectionList);
BAIL_ON_MAC_ERROR(dwError);
fclose(fp); fp = NULL;
dwError = LwMoveFile(pszTmpPath, pszConfigFilePath);
BAIL_ON_MAC_ERROR(dwError);
bRemoveFile = FALSE;
cleanup:
if (bRemoveFile)
{
LwRemoveFile(pszTmpPath);
}
if (fp)
{
fclose(fp);
}
LW_SAFE_FREE_STRING(pszTmpPath);
return dwError;
error:
goto cleanup;
}
示例6: LsaNssPushNetgroup
static
NSS_STATUS
LsaNssPushNetgroup(
PLSA_NSS_NETGROUP_LIST* ppList,
PCSTR pszGroup
)
{
int ret = NSS_STATUS_SUCCESS;
PLSA_NSS_NETGROUP_LIST pLink = NULL;
ret = MAP_LSA_ERROR(NULL,
LwAllocateMemory(
sizeof(*pLink),
(void**) &pLink));
BAIL_ON_NSS_ERROR(ret);
ret = MAP_LSA_ERROR(NULL,
LwAllocateString(
pszGroup,
&pLink->pszGroup));
BAIL_ON_NSS_ERROR(ret);
pLink->pNext = *ppList;
*ppList = pLink;
error:
return ret;
}
示例7: LwSmQueryServiceDependencyClosure
DWORD
LwSmQueryServiceDependencyClosure(
LW_SERVICE_HANDLE hHandle,
PWSTR** pppwszServiceList
)
{
DWORD dwError = 0;
PWSTR* ppwszServiceList = NULL;
dwError = LwAllocateMemory(sizeof(*ppwszServiceList) * 1, OUT_PPVOID(&ppwszServiceList));
BAIL_ON_ERROR(dwError);
dwError = LwSmQueryServiceDependencyClosureHelper(hHandle, &ppwszServiceList);
BAIL_ON_ERROR(dwError);
*pppwszServiceList = ppwszServiceList;
cleanup:
return dwError;
error:
*pppwszServiceList = NULL;
if (ppwszServiceList)
{
LwSmFreeStringList(ppwszServiceList);
}
goto cleanup;
}
示例8: LsaImplConvertMachinePasswordInfoWideToMultiByte
DWORD
LsaImplConvertMachinePasswordInfoWideToMultiByte(
IN PLSA_MACHINE_PASSWORD_INFO_W pPasswordInfo,
OUT PLSA_MACHINE_PASSWORD_INFO_A* ppNewPasswordInfo
)
{
DWORD dwError = 0;
PLSA_MACHINE_PASSWORD_INFO_A pNewPasswordInfo = NULL;
dwError = LwAllocateMemory(sizeof(*pNewPasswordInfo), OUT_PPVOID(&pNewPasswordInfo));
BAIL_ON_LSA_ERROR(dwError);
dwError = LsaImplFillMachinePasswordInfoWideToMultiByte(pPasswordInfo, pNewPasswordInfo);
BAIL_ON_LSA_ERROR(dwError);
error:
if (dwError)
{
if (pNewPasswordInfo)
{
LsaImplFreeMachinePasswordInfoA(pNewPasswordInfo);
pNewPasswordInfo = NULL;
}
}
*ppNewPasswordInfo = pNewPasswordInfo;
return dwError;
}
示例9: LwSmDriverConstruct
static
DWORD
LwSmDriverConstruct(
PLW_SERVICE_OBJECT pObject,
PCLW_SERVICE_INFO pInfo,
PVOID* ppData
)
{
DWORD dwError = 0;
PDRIVER_STATE pState = NULL;
dwError = LwAllocateMemory(sizeof(*pState), OUT_PPVOID(&pState));
BAIL_ON_ERROR(dwError);
dwError = LwSmCopyString(pInfo->pwszName, &pState->pName);
BAIL_ON_ERROR(dwError);
pState->State = LW_SERVICE_STATE_STOPPED;
*ppData = pState;
error:
return dwError;
}
示例10: LwSmTableGetEntryDependencyClosure
DWORD
LwSmTableGetEntryDependencyClosure(
PSM_TABLE_ENTRY pEntry,
PWSTR** pppwszServiceList
)
{
DWORD dwError = 0;
PWSTR* ppwszServiceList = NULL;
dwError = LwAllocateMemory(sizeof(*ppwszServiceList) * 1, OUT_PPVOID(&ppwszServiceList));
BAIL_ON_ERROR(dwError);
dwError = LwSmTableGetEntryDependencyClosureHelper(pEntry, &ppwszServiceList);
BAIL_ON_ERROR(dwError);
*pppwszServiceList = ppwszServiceList;
cleanup:
return dwError;
error:
*pppwszServiceList = NULL;
if (ppwszServiceList)
{
LwSmFreeStringList(ppwszServiceList);
}
goto cleanup;
}
示例11: LwSmSrvAcquireServiceHandle
DWORD
LwSmSrvAcquireServiceHandle(
PCWSTR pwszName,
PLW_SERVICE_HANDLE phHandle
)
{
DWORD dwError = 0;
PSM_TABLE_ENTRY pEntry = NULL;
LW_SERVICE_HANDLE hHandle = NULL;
dwError = LwSmTableGetEntry(pwszName, &pEntry);
BAIL_ON_ERROR(dwError);
dwError = LwAllocateMemory(sizeof(*hHandle), OUT_PPVOID(&hHandle));
BAIL_ON_ERROR(dwError);
hHandle->pEntry = pEntry;
*phHandle = hHandle;
cleanup:
return dwError;
error:
*phHandle = NULL;
if (pEntry)
{
LwSmTableReleaseEntry(pEntry);
}
goto cleanup;
}
示例12: LsaImplDuplicateMachineAccountInfoW
DWORD
LsaImplDuplicateMachineAccountInfoW(
IN PLSA_MACHINE_ACCOUNT_INFO_W pAccountInfo,
OUT PLSA_MACHINE_ACCOUNT_INFO_W* ppNewAccountInfo
)
{
DWORD dwError = 0;
PLSA_MACHINE_ACCOUNT_INFO_W pNewAccountInfo = NULL;
dwError = LwAllocateMemory(sizeof(*pNewAccountInfo), OUT_PPVOID(&pNewAccountInfo));
BAIL_ON_LSA_ERROR(dwError);
dwError = LsaImplFillMachineAccountInfoW(pAccountInfo, pNewAccountInfo);
BAIL_ON_LSA_ERROR(dwError);
error:
if (dwError)
{
if (pNewAccountInfo)
{
LsaImplFreeMachineAccountInfoW(pNewAccountInfo);
pNewAccountInfo = NULL;
}
}
*ppNewAccountInfo = pNewAccountInfo;
return dwError;
}
示例13: ADUGetGPTINIFile
static
DWORD
ADUGetGPTINIFile(
PSTR pszgPCFileSysPath,
PSTR* ppszGPTINIFilePath
)
{
DWORD dwError = MAC_AD_ERROR_SUCCESS;
char szSourceFilePath[PATH_MAX + 1];
PSTR pszDestFilePath = NULL;
PSTR pszSourcePath = NULL;
PSTR pszDomainName = NULL;
PSTR pszPolicyIdentifier = NULL;
dwError = LwAllocateMemory( PATH_MAX + 1,
(PVOID*)&pszDestFilePath);
BAIL_ON_MAC_ERROR(dwError);
dwError = ADUCrackFileSysPath(pszgPCFileSysPath,
&pszDomainName,
&pszSourcePath,
&pszPolicyIdentifier);
BAIL_ON_MAC_ERROR(dwError);
sprintf( szSourceFilePath,
"%s\\%s",
pszSourcePath,
"GPT.INI");
sprintf(pszDestFilePath,
"%s/%s_GPT.INI",
LWDS_ADMIN_CACHE_DIR,
pszPolicyIdentifier);
dwError = ADUSMBGetFile(pszDomainName,
szSourceFilePath,
pszDestFilePath);
BAIL_ON_MAC_ERROR(dwError);
*ppszGPTINIFilePath = pszDestFilePath;
pszDestFilePath = NULL;
cleanup:
LW_SAFE_FREE_STRING(pszDomainName);
LW_SAFE_FREE_STRING(pszSourcePath);
LW_SAFE_FREE_STRING(pszPolicyIdentifier);
LW_SAFE_FREE_STRING(pszDestFilePath);
return dwError;
error:
if (ppszGPTINIFilePath)
*ppszGPTINIFilePath = NULL;
goto cleanup;
}
示例14: SedEscapeLiteral
DWORD
SedEscapeLiteral(
PCSTR pInput,
PSTR* ppOutput
)
{
PSTR pOutput = NULL;
DWORD outputIndex = 0;
DWORD index = 0;
DWORD dwError = 0;
// Calculate the length first
for (index = 0; pInput[index]; index++)
{
switch (pInput[index])
{
// See the \char section of gnu sed manual
case '$':
case '*':
case '.':
case '[':
case '\\':
case '^':
outputIndex += 2;
break;
default:
outputIndex += 1;
}
}
dwError = LwAllocateMemory(
outputIndex + 1,
PPCAST(&pOutput));
BAIL_ON_CENTERIS_ERROR(dwError);
outputIndex = 0;
for (index = 0; pInput[index]; index++)
{
switch (pInput[index])
{
// See the \char section of gnu sed manual
case '$':
case '*':
case '.':
case '[':
case '\\':
case '^':
pOutput[outputIndex++] = '\\';
break;
}
pOutput[outputIndex++] = pInput[index];
}
pOutput[outputIndex++] = 0;
error:
*ppOutput = pOutput;
return dwError;
}
示例15: LsaNssAllocateGroupFromInfo0
DWORD
LsaNssAllocateGroupFromInfo0(
PLSA_GROUP_INFO_0 pInfo,
struct group** ppResult
)
{
DWORD dwError = LW_ERROR_SUCCESS;
// Do not free directly. Free pStartMem instead on error
struct group* pResult = NULL;
void *pStartMem = NULL;
// Do not free
PBYTE pMem = NULL;
size_t sRequiredSize = 0;
size_t sLen = 0;
sRequiredSize += sizeof(struct group);
sRequiredSize += strlen(pInfo->pszName) + 1;
sRequiredSize += 2;
dwError = LwAllocateMemory(
sRequiredSize,
&pStartMem);
BAIL_ON_LSA_ERROR(dwError);
pMem = pStartMem;
pResult = (struct group *)pMem;
pMem += sizeof(struct group);
pResult->gr_mem = NULL;
sLen = strlen(pInfo->pszName);
pResult->gr_name = (char *)pMem;
memcpy(pResult->gr_name, pInfo->pszName, sLen + 1);
pMem += sLen + 1;
sLen = 1;
pResult->gr_passwd = (char *)pMem;
memcpy(pResult->gr_passwd, "*", sLen + 1);
pMem += sLen + 1;
pResult->gr_gid = pInfo->gid;
assert(pMem == pStartMem + sRequiredSize);
*ppResult = pResult;
cleanup:
return dwError;
error:
*ppResult = NULL;
LW_SAFE_FREE_MEMORY(pStartMem);
goto cleanup;
}