Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+--------------------------------------------------------------------------
//
// Copyright (c) 1997-1999 Microsoft Corporation
//
// File: misc.cpp
//
// Contents:
//
// History:
//
//---------------------------------------------------------------------------
#include "tlsdb.h"
//-----------------------------------------------------------
BOOL TLSDBCopySid( PSID pbSrcSid, DWORD cbSrcSid, PSID* pbDestSid, DWORD* cbDestSid ) /*++
++*/ { if( *pbDestSid == NULL || pbSrcSid == NULL || LocalSize(*pbDestSid) < cbSrcSid ) { if(*pbDestSid != NULL) { FreeMemory(*pbDestSid); *pbDestSid = NULL; }
if(cbSrcSid && pbSrcSid) { *pbDestSid = (PBYTE)AllocateMemory(cbSrcSid); if(*pbDestSid == NULL) { return FALSE; } } }
*cbDestSid = cbSrcSid; return (cbSrcSid) ? CopySid(*cbDestSid, *pbDestSid, pbSrcSid) : TRUE; }
//-----------------------------------------------------------
BOOL TLSDBCopyBinaryData( PBYTE pbSrcData, DWORD cbSrcData, PBYTE* ppbDestData, DWORD* pcbDestData ) /*++
++*/ {
if( ppbDestData == NULL || pcbDestData == NULL ) { return(FALSE); }
if( pbSrcData == NULL || cbSrcData == 0 ) { return(TRUE); }
//
// would be nice to get the actual size of memory allocated
//
if( *ppbDestData != NULL && LocalSize(*ppbDestData) < cbSrcData ) { LocalFree(*ppbDestData); *ppbDestData = NULL; }
if( *ppbDestData == NULL ) { *ppbDestData = (PBYTE)AllocateMemory(cbSrcData); if( *ppbDestData == NULL ) { return FALSE; } }
*pcbDestData = cbSrcData;
memcpy(*ppbDestData, pbSrcData, cbSrcData);
return TRUE; }
|