本文整理汇总了C++中VmDirAllocateMemory函数的典型用法代码示例。如果您正苦于以下问题:C++ VmDirAllocateMemory函数的具体用法?C++ VmDirAllocateMemory怎么用?C++ VmDirAllocateMemory使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了VmDirAllocateMemory函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: VmDirSrvCreateAccessToken
DWORD
VmDirSrvCreateAccessToken(
PCSTR pszUPN,
PVMDIR_SRV_ACCESS_TOKEN* ppAccessToken
)
{
DWORD dwError = 0;
PVMDIR_SRV_ACCESS_TOKEN pAccessToken = NULL;
dwError = VmDirAllocateMemory(sizeof(*pAccessToken), (PVOID*)&pAccessToken);
BAIL_ON_VMDIR_ERROR(dwError);
pAccessToken->refCount = 1;
dwError = VmDirAllocateStringA(pszUPN, &pAccessToken->pszUPN);
BAIL_ON_VMDIR_ERROR(dwError);
*ppAccessToken = pAccessToken;
cleanup:
return dwError;
error:
*ppAccessToken = NULL;
if (pAccessToken)
{
VmDirSrvReleaseAccessToken(pAccessToken);
}
goto cleanup;
}
示例2: VmDirAllocateMutex
DWORD
VmDirAllocateMutex(
PVMDIR_MUTEX* ppMutex
)
{
DWORD dwError = ERROR_SUCCESS;
PVMDIR_MUTEX pVmDirMutex = NULL;
if ( ppMutex == NULL )
{
dwError = ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
dwError = VmDirAllocateMemory( sizeof(VMDIR_MUTEX), ((PVOID*)&pVmDirMutex));
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirInitializeMutexContent( pVmDirMutex );
BAIL_ON_VMDIR_ERROR(dwError);
*ppMutex = pVmDirMutex;
pVmDirMutex = NULL;
error:
VMDIR_SAFE_FREE_MUTEX( pVmDirMutex );
return dwError;
}
示例3: VmDirQueueInit
DWORD
VmDirQueueInit(
PVDIR_QUEUE* ppQueue
)
{
DWORD dwError = 0;
PVDIR_QUEUE pQueue = NULL;
if (!ppQueue)
{
BAIL_WITH_VMDIR_ERROR(dwError, ERROR_INVALID_PARAMETER);
}
dwError = VmDirAllocateMemory(sizeof(VDIR_QUEUE), (PVOID*)&pQueue);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateMutex(&pQueue->pMutex);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateCondition(&pQueue->pCond);
BAIL_ON_VMDIR_ERROR(dwError);
*ppQueue = pQueue;
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "%s failed, error (%d)", __FUNCTION__, dwError);
VmDirQueueFree(pQueue);
goto cleanup;
}
示例4: VmDirAllocateRWLock
DWORD
VmDirAllocateRWLock(
PVMDIR_RWLOCK* ppLock
)
{
DWORD dwError = 0;
PVMDIR_RWLOCK pLock = NULL;
if (!ppLock)
{
dwError = VMDIR_ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
dwError = VmDirAllocateMemory(sizeof(VMDIR_RWLOCK), (PVOID*)&pLock);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirInitializeRWLockContent(pLock);
BAIL_ON_VMDIR_ERROR(dwError);
*ppLock = pLock;
pLock = NULL;
error:
VmDirFreeRWLock(pLock);
return dwError;
}
示例5: VmDirDDVectorInit
DWORD
VmDirDDVectorInit(
VOID
)
{
DWORD dwError = 0;
dwError = VmDirAllocateMemory(
sizeof(VMDIR_REPL_DEADLOCKDETECTION_VECTOR),
(PVOID*)&gVmdirServerGlobals.pReplDeadlockDetectionVector);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = LwRtlCreateHashMap(
&gVmdirServerGlobals.pReplDeadlockDetectionVector->pEmptyPageSentMap,
LwRtlHashDigestPstrCaseless,
LwRtlHashEqualPstrCaseless,
NULL);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateMutex(
&gVmdirServerGlobals.pReplDeadlockDetectionVector->pMutex);
BAIL_ON_VMDIR_ERROR(dwError);
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "failed, error (%d)", dwError);
goto cleanup;
}
示例6: VmDirWriteQueueElementAllocate
DWORD
VmDirWriteQueueElementAllocate(
PVMDIR_WRITE_QUEUE_ELEMENT* ppWriteQueueEle
)
{
DWORD dwError = 0;
PVMDIR_WRITE_QUEUE_ELEMENT pWriteQueueEleLocal = NULL;
if (!ppWriteQueueEle)
{
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_INVALID_PARAMETER);
}
dwError = VmDirAllocateMemory(sizeof(VMDIR_WRITE_QUEUE_ELEMENT), (PVOID)&pWriteQueueEleLocal);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateCondition(&pWriteQueueEleLocal->pCond);
BAIL_ON_VMDIR_ERROR(dwError);
*ppWriteQueueEle = pWriteQueueEleLocal;
pWriteQueueEleLocal = NULL;
cleanup:
return dwError;
error:
VmDirWriteQueueElementFree(pWriteQueueEleLocal);
pWriteQueueEleLocal = NULL;
VMDIR_LOG_ERROR(VMDIR_LOG_MASK_ALL, "failed, error (%d)", dwError);
goto cleanup;
}
示例7: _VmDirMDBInitializeDBEntry
static
DWORD
_VmDirMDBInitializeDBEntry(
const char *pszDBPath,
PVDIR_MDB_DB *ppDB
)
{
DWORD dwError = 0;
PVDIR_MDB_DB pDB = NULL;
if (!pszDBPath || !ppDB)
{
BAIL_WITH_VMDIR_ERROR(dwError, ERROR_INVALID_PARAMETER);
}
dwError = VmDirAllocateMemory (sizeof(VDIR_MDB_DB), ((PVOID*)&pDB));
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateStringA (pszDBPath, &pDB->pszDBPath);
BAIL_ON_VMDIR_ERROR(dwError);
*ppDB = pDB;
cleanup:
return dwError;
error:
if (pDB)
{
VMDIR_SAFE_FREE_MEMORY(pDB->pszDBPath);
VMDIR_SAFE_FREE_MEMORY(pDB);
}
goto cleanup;
}
示例8: VmDirRESTAuthTokenInit
DWORD
VmDirRESTAuthTokenInit(
PVDIR_REST_AUTH_TOKEN* ppAuthToken
)
{
DWORD dwError = 0;
PVDIR_REST_AUTH_TOKEN pAuthToken = NULL;
if (!ppAuthToken)
{
dwError = VMDIR_ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
dwError = VmDirAllocateMemory(
sizeof(VDIR_REST_AUTH_TOKEN), (PVOID*)&pAuthToken);
BAIL_ON_VMDIR_ERROR(dwError);
*ppAuthToken = pAuthToken;
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR(
VMDIR_LOG_MASK_ALL,
"%s failed, error (%d)",
__FUNCTION__,
dwError);
VmDirFreeRESTAuthToken(pAuthToken);
goto cleanup;
}
示例9: VmDirPrepareSwapDBInfo
DWORD
VmDirPrepareSwapDBInfo(
PCSTR pszHostName, // partner server object cn
PVMDIR_SWAP_DB_INFO* ppSwapDBInfo
)
{
DWORD dwError = 0;
PVMDIR_SWAP_DB_INFO pLocalSwapDBInfo = NULL;
if (!ppSwapDBInfo)
{
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_INVALID_PARAMETER);
}
dwError = VmDirAllocateMemory(sizeof(VMDIR_SWAP_DB_INFO), (PVOID*)&pLocalSwapDBInfo);
BAIL_ON_VMDIR_ERROR(dwError);
if (pszHostName)
{
dwError = VmDirAllocateStringA(pszHostName, &pLocalSwapDBInfo->pszPartnerServerName);
BAIL_ON_VMDIR_ERROR(dwError);
VMDIR_LOG_INFO(VMDIR_LOG_MASK_ALL, "My partner %s", pLocalSwapDBInfo->pszPartnerServerName);
}
dwError = VmDirInternalGetDSERootServerCN(&pLocalSwapDBInfo->pszOrgDBServerName);
BAIL_ON_VMDIR_ERROR(dwError);
VMDIR_LOG_INFO(VMDIR_LOG_MASK_ALL, "DB was from %s", pLocalSwapDBInfo->pszOrgDBServerName);
dwError = _VmDirComposeUtdVector(pLocalSwapDBInfo);
BAIL_ON_VMDIR_ERROR(dwError);
if (!pLocalSwapDBInfo->pszPartnerServerName || // no partner, DR case
VmDirStringCompareA( // DB copied from joining partner
pLocalSwapDBInfo->pszPartnerServerName,
pLocalSwapDBInfo->pszOrgDBServerName,
FALSE) == 0)
{
dwError = VmDirAllocateStringA(pLocalSwapDBInfo->pszOrgDBMaxUSN, &pLocalSwapDBInfo->pszMyHighWaterMark);
BAIL_ON_VMDIR_ERROR(dwError);
}
else
{ // DB from one node but join to another
dwError = _VmDirComposeHighWaterMark(pLocalSwapDBInfo);
BAIL_ON_VMDIR_ERROR(dwError);
}
VMDIR_LOG_INFO(VMDIR_LOG_MASK_ALL, "My High Water Mark %s", pLocalSwapDBInfo->pszMyHighWaterMark);
*ppSwapDBInfo = pLocalSwapDBInfo;
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR( VMDIR_LOG_MASK_ALL, " error (%u)", dwError);
VmDirFreeSwapDBInfo(pLocalSwapDBInfo);
goto cleanup;
}
示例10: VmDirAllocateAndCopyMemory
DWORD
VmDirAllocateAndCopyMemory(
PVOID pBlob,
size_t iBlobSize,
PVOID* ppOutBlob
)
{
DWORD dwError = 0;
PVOID pMemory = NULL;
if (!pBlob || !ppOutBlob || iBlobSize < 1)
{
dwError = ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
// add 1 for safety (VMDIR assuem bervalue is NULL terminated for string value)
dwError = VmDirAllocateMemory(iBlobSize + 1, &pMemory);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirCopyMemory(pMemory, iBlobSize, pBlob, iBlobSize);
BAIL_ON_VMDIR_ERROR(dwError);
*ppOutBlob = pMemory;
cleanup:
return dwError;
error:
VMDIR_SAFE_FREE_MEMORY(pMemory);
goto cleanup;
}
示例11: VmDirRESTCacheInit
DWORD
VmDirRESTCacheInit(
PVDIR_REST_HEAD_CACHE* ppRestCache
)
{
DWORD dwError = 0;
PVDIR_REST_HEAD_CACHE pRestCache = NULL;
if (!ppRestCache)
{
BAIL_WITH_VMDIR_ERROR(dwError, VMDIR_ERROR_INVALID_PARAMETER);
}
dwError = VmDirAllocateMemory(
sizeof(VDIR_REST_HEAD_CACHE), (PVOID*)&pRestCache);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateRWLock(&pRestCache->pRWLock);
BAIL_ON_VMDIR_ERROR(dwError);
*ppRestCache = pRestCache;
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR(
VMDIR_LOG_MASK_ALL,
"%s failed, error (%d)",
__FUNCTION__,
dwError);
VmDirFreeRESTCache(pRestCache);
goto cleanup;
}
示例12: wmain
int wmain(int argc, wchar_t* argv[])
{
DWORD dwError = 0;
PSTR* ppszArgs = NULL;
int iArg = 0;
dwError = VmDirAllocateMemory(sizeof(PSTR) * argc, (PVOID*)&ppszArgs);
BAIL_ON_VMDIR_ERROR(dwError);
for (; iArg < argc; iArg++)
{
dwError = VmDirAllocateStringAFromW(argv[iArg], &ppszArgs[iArg]);
BAIL_ON_VMDIR_ERROR(dwError);
}
dwError = VmDirMain(argc, ppszArgs);
BAIL_ON_VMDIR_ERROR(dwError);
error:
if (ppszArgs)
{
for (iArg = 0; iArg < argc; iArg++)
{
VMDIR_SAFE_FREE_MEMORY(ppszArgs[iArg]);
}
VmDirFreeMemory(ppszArgs);
}
return dwError;
}
示例13: VmDirAllocateCondition
DWORD
VmDirAllocateCondition(
PVMDIR_COND* ppCondition
)
{
DWORD dwError = ERROR_SUCCESS;
PVMDIR_COND pVmDirCond = NULL;
if ( ppCondition == NULL )
{
dwError = ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
dwError = VmDirAllocateMemory( sizeof(VMDIR_COND), ((PVOID*)&pVmDirCond));
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirInitializeConditionContent( pVmDirCond );
BAIL_ON_VMDIR_ERROR(dwError);
*ppCondition = pVmDirCond;
pVmDirCond = NULL;
error:
VMDIR_SAFE_FREE_CONDITION( pVmDirCond );
return dwError;
}
示例14: VmDirGetKrbMasterKey
DWORD
VmDirGetKrbMasterKey(
PSTR pszFQDN, // [in] FQDN
PBYTE* ppKeyBlob,
DWORD* pSize
)
{
DWORD dwError = 0;
PBYTE pRetMasterKey = NULL;
if (IsNullOrEmptyString(pszFQDN)
|| !ppKeyBlob
|| !pSize
)
{
dwError = VMDIR_ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
// Currently, we only support single krb realm.
// Global cache gVmdirKrbGlobals is initialized during startup stage.
if (VmDirStringCompareA( pszFQDN, VDIR_SAFE_STRING(gVmdirKrbGlobals.pszRealm), FALSE) != 0)
{
dwError = VMDIR_ERROR_INVALID_REALM;
BAIL_ON_VMDIR_ERROR(dwError);
}
dwError = VmDirAllocateMemory(
gVmdirKrbGlobals.bervMasterKey.lberbv.bv_len,
(PVOID*)&pRetMasterKey
);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirCopyMemory (
pRetMasterKey,
gVmdirKrbGlobals.bervMasterKey.lberbv.bv_len,
gVmdirKrbGlobals.bervMasterKey.lberbv.bv_val,
gVmdirKrbGlobals.bervMasterKey.lberbv.bv_len
);
BAIL_ON_VMDIR_ERROR(dwError);
*ppKeyBlob = pRetMasterKey;
*pSize = (DWORD) gVmdirKrbGlobals.bervMasterKey.lberbv.bv_len;
pRetMasterKey = NULL;
cleanup:
return dwError;
error:
VMDIR_LOG_ERROR( LDAP_DEBUG_RPC, "VmDirGetKrbMasterKey failed. (%u)(%s)",
dwError, VDIR_SAFE_STRING(pszFQDN));
VMDIR_SAFE_FREE_MEMORY(pRetMasterKey);
goto cleanup;
}
示例15: VmDirEntryAddSingleValueAttribute
/*
* Convenient function to add a single attribute to pEntry.
*/
DWORD
VmDirEntryAddSingleValueAttribute(
PVDIR_ENTRY pEntry,
PCSTR pszAttrName,
PCSTR pszAttrValue,
size_t iAttrValueLen
)
{
DWORD dwError = 0;
PVDIR_ATTRIBUTE pAttr = NULL;
if (!pEntry || !pEntry->pSchemaCtx || !pszAttrName || !pszAttrValue || iAttrValueLen < 1)
{
dwError = ERROR_INVALID_PARAMETER;
BAIL_ON_VMDIR_ERROR(dwError);
}
dwError = VmDirAttributeAllocate(
pszAttrName,
1,
pEntry->pSchemaCtx,
&pAttr);
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirAllocateMemory(
iAttrValueLen + 1, // want string null terminated.
(PVOID*)&pAttr->vals[0].lberbv.bv_val );
BAIL_ON_VMDIR_ERROR(dwError);
dwError = VmDirCopyMemory(
pAttr->vals[0].lberbv.bv_val,
(iAttrValueLen + 1),
(PCVOID)pszAttrValue,
iAttrValueLen
);
BAIL_ON_VMDIR_ERROR(dwError);
pAttr->vals[0].bOwnBvVal = TRUE;
pAttr->vals[0].lberbv.bv_len = iAttrValueLen;
dwError = VmDirEntryAddAttribute(
pEntry,
pAttr);
BAIL_ON_VMDIR_ERROR(dwError);
pAttr = NULL;
cleanup:
return dwError;
error:
if (pAttr)
{
VmDirFreeAttribute(pAttr);
}
goto cleanup;
}