Leaked source code of windows server 2003
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.
 
 
 
 
 
 

140 lines
3.7 KiB

//+-------------------------------------------------------------------------
// 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__