xpmgr/BuildTools/Include/clfsmgmtw32.h

234 lines
7.4 KiB
C

/*=============================================================================
Copyright (c) 2003 Microsoft Corporation
Module Name:
clfsmgmtw32.h
Abstract:
Declares the exported API set for the Common Log Win32
Management API.
Author:
JR Tipton [jrtipton] 24-Aug-2003
Environment:
User Mode
Revision History:
=============================================================================*/
#ifndef __CLFSMGMTW32_H__
#define __CLFSMGMTW32_H__
#ifdef CLFS_KERNEL_MODE
# undef CLFS_KERNEL_MODE
#endif /* CLFS_KERNEL_MODE */
#include <clfsmgmt.h>
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
typedef
VOID
(*PLOG_TAIL_ADVANCE_CALLBACK) (
IN HANDLE hLogFile,
IN CLFS_LSN lsnTarget,
IN PVOID pvClientContext
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
typedef
VOID
(*PLOG_FULL_HANDLER_CALLBACK) (
IN HANDLE hLogFile,
IN DWORD dwError,
IN BOOL fLogIsPinned,
IN PVOID pvClientContext
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
typedef
VOID
(*PLOG_UNPINNED_CALLBACK) (
IN HANDLE hLogFile,
IN PVOID pvClientContext
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
typedef struct _LOG_MANAGEMENT_CALLBACKS
{
PVOID CallbackContext;
PLOG_TAIL_ADVANCE_CALLBACK AdvanceTailCallback;
PLOG_FULL_HANDLER_CALLBACK LogFullHandlerCallback;
PLOG_UNPINNED_CALLBACK LogUnpinnedCallback;
} LOG_MANAGEMENT_CALLBACKS, *PLOG_MANAGEMENT_CALLBACKS;
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// RegisterManageableLogClient
//
// Registers a client as one that wishes to participate in the CLFS management
// scheme. The client can receive notifications such as "advance base lsn" if
// pCallbacks is non-null.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI RegisterManageableLogClient (
IN HANDLE hLog,
IN PLOG_MANAGEMENT_CALLBACKS pCallbacks
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// DeregisterManageableLogClient
//
// When a log client no longer wishes to be registered, either the log handle
// can be closed (deregistering the client implicitly) or this routine can
// be invoked which will deregister the client explicitly. The client will
// no longer receive notifications related to management.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI DeregisterManageableLogClient (
IN HANDLE hLog
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// ReadLogNotification
//
// Allows a registered log management client to read a management notification.
// Only possible if the client is not receiving callbacks. Can function in
// synchronous or asynchronous mode.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI ReadLogNotification (
IN HANDLE hLog,
OUT PCLFS_MGMT_NOTIFICATION pNotification,
IN LPOVERLAPPED lpOverlapped
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// InstallLogPolicy
//
// Installs a policy on a log. The possible policies are described by the
// enumerated type CLFS_MGMT_POLICY_TYPE.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI InstallLogPolicy (
IN HANDLE hLog,
IN PCLFS_MGMT_POLICY pPolicy
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// InstallLogPolicy
//
// Removes a policy from a log, reverting back to the default behavior for the
// policy indicated. The possible policies are described by the enumerated type
// CLFS_MGMT_POLICY_TYPE.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI RemoveLogPolicy (
IN HANDLE hLog,
IN CLFS_MGMT_POLICY_TYPE ePolicyType
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// QueryLogPolicy
//
// Given a policy type, returns the associated policy data.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI QueryLogPolicy (
IN HANDLE hLog,
IN CLFS_MGMT_POLICY_TYPE ePolicyType,
OUT PCLFS_MGMT_POLICY pPolicyBuffer,
IN OUT PULONG pcbPolicyBuffer
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// SetLogFileSizeWithPolicy
//
// Sets the size of a log file, obeying any policies present on the log file
// at the time.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI SetLogFileSizeWithPolicy(
IN HANDLE hLog,
IN PULONGLONG pDesiredSize,
OUT PULONGLONG pResultingSize
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// HandleLogFull
//
// Handles a log full condition according to policy (either by growing the log
// or demanding that other streams advance their log bases).
//
// This routine may do the work asynchronously (returning FALSE with last error
// of ERROR_IO_PENDING).
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI HandleLogFull(
IN HANDLE hLog
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// LogTailAdvanceFailure
//
// Allows a log client to indicate that it cannot comply with a request from
// log management to advance its tail.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI LogTailAdvanceFailure(
IN HANDLE hLog,
IN DWORD dwReason
);
#endif /* _WIN32_WINNT */
#if (_WIN32_WINNT >= _WIN32_WINNT_WS03)
//------------------------------------------------------------------------------
// RegisterForLogWriteNotification
//
// Registers a client as one may not wish to participate in the CLFS management
// scheme but does wish to be notified of certain events in the log.
//------------------------------------------------------------------------------
CLFSUSER_API BOOL WINAPI RegisterForLogWriteNotification (
IN HANDLE hLog,
IN ULONG cbThreshold,
IN BOOL fEnable
);
#endif /* _WIN32_WINNT */
#endif /* __CLFSMGMTW32_H__ */
#ifdef __cplusplus
} // extern "C"
#endif /* __cplusplus */
//-----------------------------------------------------------------------------
// END OF FILE
//-----------------------------------------------------------------------------