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.
|
|
/*++
Copyright (c) 1990-1995 Microsoft Corporation
Module Name:
handle.h
Abstract:
This module contains all definitions for the handle table
Author:
30-Jan-1996 Tue 16:30:15 created -by- Daniel Chou (danielc)
[Environment:]
NT Windows - Common Printer Driver UI DLL
[Notes:]
Revision History:
--*/
#ifndef CPSUI_HANDLE
#define CPSUI_HANDLE
#define HANDLE_TABLE_ID (DWORD)0x436e6144
#define HANDLE_TABLE_PREFIX (WORD)0x4344
#define MAX_HANDLE_TABLE_IDX 0xFFFF
#define HANDLE_2_IDX(h) LOWORD((DWORD)((ULONG_PTR)(h) & 0xFFFFFFFF))
#define HANDLE_2_PREFIX(h) HIWORD((DWORD)((ULONG_PTR)(h) & 0xFFFFFFFF))
#define WORD_2_HANDLE(w) LongToHandle(MAKELONG((w), HANDLE_TABLE_PREFIX))
#define DATATABLE_BLK_COUNT 64
#define DATATABLE_MAX_COUNT (MAX_HANDLE_TABLE_IDX - DATATABLE_BLK_COUNT)
#define NO_THREADID 0xFFFFFFFF
#define MAX_SEM_WAIT 60000
typedef struct _DATATABLE { PCPSUIPAGE pCPSUIPage; } DATATABLE, *PDATATABLE;
typedef struct _CPSUIHANDLETABLE { PDATATABLE pDataTable; WORD MaxCount; WORD CurCount; DWORD ThreadID; DWORD cWait; } CPSUIHANDLETABLE, *PCPSUIHANDLETABLE;
#define MK_TLSVALUE(cWait, Idx) (DWORD)MAKELONG(cWait, Idx)
#define TLSVALUE_2_IDX(v) HIWORD(LODWORD(v))
#define TLSVALUE_2_CWAIT(v) LOWORD(LODWORD(v))
//
// Function Prototypes
//
BOOL LOCK_CPSUI_HANDLETABLE( VOID );
BOOL UNLOCK_CPSUI_HANDLETABLE( VOID );
PCPSUIPAGE HANDLETABLE_GetCPSUIPage( HANDLE hTable );
BOOL HANDLETABLE_UnGetCPSUIPage( PCPSUIPAGE pCPSUIPage );
DWORD HANDLETABLE_LockCPSUIPage( PCPSUIPAGE pCPSUIPage );
#define HANDLETABLE_UnLockCPSUIPage HANDLETABLE_UnGetCPSUIPage
BOOL HANDLETABLE_IsChildPage( PCPSUIPAGE pChildPage, PCPSUIPAGE pParentPage );
PCPSUIPAGE HANDLETABLE_GetRootPage( PCPSUIPAGE pCPSUIPage );
HANDLE HANDLETABLE_AddCPSUIPage( PCPSUIPAGE pCPSUIPage );
BOOL HANDLETABLE_DeleteHandle( HANDLE hTable );
BOOL HANDLETABLE_Create( VOID );
VOID HANDLETABLE_Destroy( VOID );
#endif // CPSUI_HANDLE
|