Fungsi ReallocADsMem (adshlp.h)
Fungsi ReallocADsMem merealokasi dan menyalin blok memori yang ada.
Sintaks
LPVOID ReallocADsMem(
[in] LPVOID pOldMem,
[in] DWORD cbOld,
[in] DWORD cbNew
);
Parameter
[in] pOldMem
Jenis: LPVOID
Arahkan ke memori untuk disalin. ReallocADsMem akan membebaskan memori ini dengan FreeADsMem setelah disalin. Jika memori tambahan tidak dapat dialokasikan, memori ini tidak dikosongkan. Memori ini harus dialokasikan dengan fungsi AllocADsMem, AllocADsStr, ReallocADsMem, atau ReallocADsStr .
Pemanggil harus membebaskan memori ini ketika tidak lagi diperlukan dengan meneruskan pointer ini ke FreeADsMem.
[in] cbOld
Jenis: DWORD
Ukuran, dalam byte, memori yang akan disalin.
[in] cbNew
Jenis: DWORD
Ukuran, dalam byte, dari memori yang akan dialokasikan.
Mengembalikan nilai
Jenis: LPVOID
Jika berhasil, fungsi mengembalikan penunjuk ke memori baru yang dialokasikan. Jika tidak, null akan dikembalikan.
Keterangan
Jika cbNew kurang dari cbOld, memori yang ada dipotong agar sesuai dengan ukuran memori baru.
Contoh
Contoh kode berikut menunjukkan cara menggunakan ReallocADsMem untuk memperbesar string.
LPWSTR pwszPrefix = L"LDAP://"
DWORD dwOldSize = (lstrlenW(pwszPrefix) + 1) * sizeof(WCHAR);
LPWSTR pwszADsPath = (LPWSTR)AllocADsMem(dwOldSize);
if(pwszADsPath)
{
LPWSTR pwszDN = L"DC=fabrikam,DC=com";
wcsncpy_s(pwszADsPath, pwszPrefix); // Path becomes "LDAP://"
wprintf(L"path = %s\n", pwszADsPath);
DWORD dwNewSize = (lstrlenW(pwszPrefix) + lstrlenW(pwszDN) + 1) * sizeof(WCHAR);
/*
If successful, this will free the old path buffer, so it does not have to be
freed manually. But if it fails, the original memory still exists, so the
reallocated memory pointer is temporarily placed in another variable.
*/
LPWSTR pwszNewPath = (LPWSTR)ReallocADsMem(pwszADsPath, dwOldSize, dwNewSize);
if(pwszNewPath)
{
pwszADsPath = pwszNewPath;
// Path is still "LDAP://"
wcsncat_s(pwszADsPath, pwszDN);
// Path is "LDAP://DC=fabrikam,DC=com"
wprintf(L"path = %s\n", pwszADsPath);
}
else
{
wprintf(L"Unable to allocate additional memory.");
}
// Free remaining memory.
FreeADsMem(pwszADsPath);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Server minimum yang didukung | Windows Server 2008 |
Target Platform | Windows |
Header | adshlp.h |
Pustaka | Activeds.lib |
DLL | Activeds.dll |