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.
|
|
#ifndef _OMP_H
#define _OMP_H
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
omp.h
Abstract:
Private data structures and procedure prototypes for the Object Manager subcomponent of the NT Cluster Service
Author:
John Vert (jvert) 16-Feb-1996
Revision History:
--*/ #define QFS_DO_NOT_UNMAP_WIN32
#include "service.h"
#include "sddl.h"
#define LOG_CURRENT_MODULE LOG_MODULE_OM
#define ENUM_GROW_SIZE 5
//
// Data structures for the ObjectTypes
//
extern POM_OBJECT_TYPE OmpObjectTypeTable[ObjectTypeMax]; extern CRITICAL_SECTION OmpObjectTypeLock;
//
// Macros
//
//
// Find the object type for an object
//
#define OmpObjectType(pObject) (((POM_HEADER)OmpObjectToHeader(pObject))->ObjectType)
//
// Dereference object header
//
#if OM_TRACE_OBJREF
DWORD OmpDereferenceHeader( IN POM_HEADER Header );
#else
#define OmpDereferenceHeader(pOmHeader) (InterlockedDecrement(&(pOmHeader)->RefCount) == 0)
#endif
//
// Search object list.
//
POM_HEADER OmpFindIdInList( IN PLIST_ENTRY ListHead, IN LPCWSTR Id );
POM_HEADER OmpFindNameInList( IN PLIST_ENTRY ListHead, IN LPCWSTR Name );
POM_NOTIFY_RECORD OmpFindNotifyCbInList( IN PLIST_ENTRY ListHead, IN OM_OBJECT_NOTIFYCB lpfnObjNotifyCb );
//
// Enumerate object list.
//
typedef BOOL (*OMP_ENUM_LIST_ROUTINE)( IN PVOID Context1, IN PVOID Context2, IN PVOID Object, IN LPCWSTR Name );
VOID OmpEnumerateList( IN PLIST_ENTRY ListHead, IN OMP_ENUM_LIST_ROUTINE EnumerationRoutine, IN PVOID Context1, IN PVOID Context2 );
DWORD OmpGetCbList( IN PVOID pObject, OUT POM_NOTIFY_RECORD *ppNotifyRecList, OUT LPDWORD pdwCount );
//
// object logging routines
//
VOID OmpOpenObjectLog( VOID );
VOID OmpLogPrint( LPWSTR FormatString, ... );
VOID OmpLogStartRecord( VOID );
VOID OmpLogStopRecord( VOID );
#endif //_OMP_H
|