Source code of Windows XP (NT5)
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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1997.
//
// File: handle.hxx
//
// Contents: Handle Package interface
//
// Classes:
//
// Functions:
//
// History: 2-03-97 RichardW Created
//
//----------------------------------------------------------------------------
#ifndef __HANDLE_HXX__
#define __HANDLE_HXX__
typedef VOID (WINAPI HP_ENUM_CALLBACK_FN)( PSecHandle Handle, PVOID Context, ULONG RefCount );
typedef HP_ENUM_CALLBACK_FN * PHP_ENUM_CALLBACK_FN;
typedef struct _SEC_HANDLE_ENTRY { LIST_ENTRY List ; SecHandle Handle ; PVOID Context ; ULONG HandleCount ; ULONG RefCount ; ULONG HandleIssuedCount ; // same as HandleCount, but doesn't go down.
ULONG Flags ; } SEC_HANDLE_ENTRY, * PSEC_HANDLE_ENTRY ;
#define SEC_HANDLE_FLAG_LOCKED 0x00000001
#define SEC_HANDLE_FLAG_DELETE_PENDING 0x00000002
#define SEC_HANDLE_FLAG_NO_CALLBACK 0x00000004
typedef BOOL (WINAPI HP_INITIALIZE_FN)( VOID );
typedef PVOID (WINAPI HP_CREATE_FN)( IN ULONG Flags, IN PVOID HandleTable OPTIONAL, IN PHP_ENUM_CALLBACK_FN Callback OPTIONAL );
#define HANDLE_PACKAGE_NO_SERIALIZE 0x00000001
#define HANDLE_PACKAGE_CALLBACK_ON_DELETE 0x00000002
#define HANDLE_PACKAGE_REQUIRE_UNIQUE 0x00000004
#define HANDLE_PACKAGE_MAX_FLAG 0x00000004
#define HANDLE_PACKAGE_GENERAL_FLAGS 0x00000007
typedef BOOL (WINAPI HP_DELETE_FN)( PVOID HandleTable, PHP_ENUM_CALLBACK_FN Callback );
typedef BOOL (WINAPI HP_ADD_HANDLE_FN)( PVOID HandleTable, PSecHandle Handle, PVOID Context, ULONG Flags );
typedef BOOL (WINAPI HP_DELETE_HANDLE_FN)( PVOID HandleTable, PSecHandle Handle, ULONG Options );
#define DELHANDLE_FORCE 0x00000001
#define DELHANDLE_NO_CALLBACK 0x00000002
typedef BOOL (WINAPI HP_VALIDATE_HANDLE_FN)( PVOID HandleTable, PSecHandle Handle, BOOL Deref );
typedef PVOID (WINAPI HP_REF_HANDLE_FN)( PVOID HandleTable, PSecHandle Handle );
typedef VOID (WINAPI HP_DEREF_HANDLE_KEY_FN)( PVOID HandleTable, PVOID HandleKey );
typedef PVOID (WINAPI HP_GET_HANDLE_CONTEXT_FN)( PVOID HandleTable, PSecHandle Handle );
typedef BOOL (WINAPI HP_RELEASE_CONTEXT_FN)( PVOID HandleTable, PSecHandle Handle );
typedef HP_INITIALIZE_FN * PHP_INITIALIZE_FN; typedef HP_CREATE_FN * PHP_CREATE_FN ; typedef HP_DELETE_FN * PHP_DELETE_FN ; typedef HP_ADD_HANDLE_FN * PHP_ADD_HANDLE_FN ; typedef HP_DELETE_HANDLE_FN * PHP_DELETE_HANDLE_FN ; typedef HP_VALIDATE_HANDLE_FN * PHP_VALIDATE_HANDLE_FN ; typedef HP_REF_HANDLE_FN * PHP_REF_HANDLE_FN ; typedef HP_DEREF_HANDLE_KEY_FN * PHP_DEREF_HANDLE_KEY_FN ; typedef HP_GET_HANDLE_CONTEXT_FN * PHP_GET_HANDLE_CONTEXT_FN ; typedef HP_RELEASE_CONTEXT_FN * PHP_RELEASE_CONTEXT_FN ;
typedef struct _HANDLE_PACKAGE { ULONG TableSize ; PHP_INITIALIZE_FN Initialize ; PHP_CREATE_FN Create ; PHP_DELETE_FN Delete ; PHP_ADD_HANDLE_FN AddHandle ; PHP_DELETE_HANDLE_FN DeleteHandle ; PHP_VALIDATE_HANDLE_FN ValidateHandle ; PHP_REF_HANDLE_FN RefHandle ; PHP_DEREF_HANDLE_KEY_FN DerefHandleKey ; PHP_GET_HANDLE_CONTEXT_FN GetHandleContext ; PHP_RELEASE_CONTEXT_FN ReleaseContext ; } HANDLE_PACKAGE, * PHANDLE_PACKAGE ;
PVOID LhtConvertSmallToLarge( PVOID Small );
extern HANDLE_PACKAGE LargeHandlePackage ; extern HANDLE_PACKAGE SmallHandlePackage ;
#endif // __HANDLE_HXX__
|