mirror of https://github.com/tongzx/nt5src
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.
131 lines
2.2 KiB
131 lines
2.2 KiB
/*++
|
|
|
|
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
|