|
|
//+-------------------------------------------------------------------------
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1999 - 1999
//
// File: logstor.h
//
// Contents: Public functions in logstor.cpp
//
// History: 15-Sep-00 philh created
//--------------------------------------------------------------------------
#ifndef __LOGSTOR_H__
#define __LOGSTOR_H__
//+-------------------------------------------------------------------------
// Register wait for callback functions
//--------------------------------------------------------------------------
typedef VOID (NTAPI * ILS_WAITORTIMERCALLBACK) (PVOID, BOOLEAN );
BOOL WINAPI ILS_RegisterWaitForSingleObject( PHANDLE hNewWaitObject, HANDLE hObject, ILS_WAITORTIMERCALLBACK Callback, PVOID Context, ULONG dwMilliseconds, ULONG dwFlags );
BOOL WINAPI ILS_UnregisterWait( HANDLE WaitHandle );
BOOL WINAPI ILS_ExitWait( HANDLE WaitHandle, HMODULE hLibModule );
//+-------------------------------------------------------------------------
// Registry support functions
//--------------------------------------------------------------------------
void ILS_EnableBackupRestorePrivileges();
void ILS_CloseRegistryKey( IN HKEY hKey );
BOOL ILS_ReadDWORDValueFromRegistry( IN HKEY hKey, IN LPCWSTR pwszValueName, IN DWORD *pdwValue );
BOOL ILS_ReadBINARYValueFromRegistry( IN HKEY hKey, IN LPCWSTR pwszValueName, OUT BYTE **ppbValue, OUT DWORD *pcbValue );
//+-------------------------------------------------------------------------
// Get and allocate the REG_SZ value
//--------------------------------------------------------------------------
LPWSTR ILS_ReadSZValueFromRegistry( IN HKEY hKey, IN LPCWSTR pwszValueName ); LPSTR ILS_ReadSZValueFromRegistry( IN HKEY hKey, IN LPCSTR pszValueName );
//+-------------------------------------------------------------------------
// Key Identifier registry and roaming file support functions
//--------------------------------------------------------------------------
BOOL ILS_ReadKeyIdElement( IN const CRYPT_HASH_BLOB *pKeyIdentifier, IN BOOL fLocalMachine, IN OPTIONAL LPCWSTR pwszComputerName, OUT BYTE **ppbElement, OUT DWORD *pcbElement ); BOOL ILS_WriteKeyIdElement( IN const CRYPT_HASH_BLOB *pKeyIdentifier, IN BOOL fLocalMachine, IN OPTIONAL LPCWSTR pwszComputerName, IN const BYTE *pbElement, IN DWORD cbElement ); BOOL ILS_DeleteKeyIdElement( IN const CRYPT_HASH_BLOB *pKeyIdentifier, IN BOOL fLocalMachine, IN OPTIONAL LPCWSTR pwszComputerName );
typedef BOOL (*PFN_ILS_OPEN_KEYID_ELEMENT)( IN const CRYPT_HASH_BLOB *pKeyIdentifier, IN const BYTE *pbElement, IN DWORD cbElement, IN void *pvArg );
BOOL ILS_OpenAllKeyIdElements( IN BOOL fLocalMachine, IN OPTIONAL LPCWSTR pwszComputerName, IN void *pvArg, IN PFN_ILS_OPEN_KEYID_ELEMENT pfnOpenKeyId );
//+-------------------------------------------------------------------------
// Misc alloc and copy functions
//--------------------------------------------------------------------------
LPWSTR ILS_AllocAndCopyString( IN LPCWSTR pwszSrc, IN LONG cchSrc = -1 );
//+-------------------------------------------------------------------------
// Converts the bytes into UNICODE ASCII HEX
//
// Needs (cb * 2 + 1) * sizeof(WCHAR) bytes of space in wsz
//--------------------------------------------------------------------------
void ILS_BytesToWStr(DWORD cb, void* pv, LPWSTR wsz);
#endif // __LOGSTOR_H__
|