mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 22:50:43 +00:00
8bbf8180e5
Wed Sep 11 18:08:30 1996 Albrecht Kleine <kleine@ak.sax.de> * [windows/event.c] Minor improvements in setting event time in MSG struct. * [windows/hook.c] Removed an useless 'unimplemented hook' message. * [windows/win.c] Added a WH_CBT hook call during window creation: good for CTL3D.DLL Wed Sep 11 11:19:56 1996 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [loader/pe_image.c] Fixed imports with no name/ordinal list (MFC30.DLL). Added borland style - ordinal import (wsock32.dll). * [files/file.c] [win32/file.c] [if1632/kernel.spec] [if1632/kernel32.spec] [include/windows.h] Win32 and Win16 code use the same filehandles/HFILEs. Added SetEndOfFile, MoveFile*, diverse *W functions. * [loader/pe_image.c] Fixed argument 2 to DllEntry. * [misc/comm.c] Adapt to filehandling changes, win32 code still broken. * [misc/registry.c] Use Wine filehandling. StartupRegistry to add startup-detected registry entries. * [miscemu/dpmi.c] [miscemu/int21.c] Some missing interrupt-functions added. * [if1632/gdi32.spec][if1632/user32.spec] Some thunks to 16 bit equivalent functions added. Sat Sep 7 11:36:57 EDT 1996 Matthew Ghio <ghio@netcom.com> * [misc/winsocket.c] Rewrote WINSOCK_select() and WSAFDIsSet() to properly convert Windows fd_set structs. * [if1632/winsock.spec] Corrected arguments to select().
109 lines
2.8 KiB
C
109 lines
2.8 KiB
C
#ifndef __WINE_HANDLE32_H
|
|
#define __WINE_HANDLE32_H
|
|
|
|
#include <stdlib.h>
|
|
#include "wintypes.h"
|
|
|
|
/* The _*_OBJECT structures contain information needed about each
|
|
* particular type of handle. This information is a combination of
|
|
* equivalent UNIX-style handles/descriptors and general information
|
|
* that the Win32 API might request.
|
|
*
|
|
* The KERNEL_OBJECT structure must be the first member of any specific
|
|
* kernel object type's structure.
|
|
*/
|
|
|
|
typedef struct {
|
|
unsigned long magic;
|
|
} KERNEL_OBJECT;
|
|
|
|
typedef struct {
|
|
KERNEL_OBJECT common;
|
|
unsigned long thread_id;
|
|
unsigned long process_id;
|
|
} THREAD_OBJECT;
|
|
|
|
typedef struct {
|
|
KERNEL_OBJECT common;
|
|
unsigned long process_id;
|
|
unsigned long main_thread_id;
|
|
} PROCESS_OBJECT;
|
|
|
|
typedef struct {
|
|
KERNEL_OBJECT common;
|
|
HFILE hfile;
|
|
int prot;
|
|
unsigned long size;
|
|
} FILEMAP_OBJECT;
|
|
|
|
typedef struct {
|
|
KERNEL_OBJECT common;
|
|
} SEMAPHORE_OBJECT;
|
|
|
|
typedef struct {
|
|
KERNEL_OBJECT common;
|
|
} EVENT_OBJECT;
|
|
|
|
/* Should this even be here?
|
|
*/
|
|
typedef struct {
|
|
KERNEL_OBJECT common;
|
|
} REGKEY_OBJECT;
|
|
|
|
typedef struct _VRANGE_OBJECT{
|
|
KERNEL_OBJECT common;
|
|
DWORD start;
|
|
DWORD size;
|
|
struct _VRANGE_OBJECT *next;
|
|
} VRANGE_OBJECT;
|
|
|
|
struct _HEAPITEM_OBJECT;
|
|
typedef struct{
|
|
KERNEL_OBJECT common;
|
|
LPVOID start;
|
|
DWORD size;
|
|
DWORD maximum;
|
|
DWORD flags;
|
|
struct _HEAPITEM_OBJECT *first,*last;
|
|
} HEAP_OBJECT;
|
|
|
|
typedef struct _HEAPITEM_OBJECT{
|
|
KERNEL_OBJECT common;
|
|
HEAP_OBJECT *heap;
|
|
DWORD size; /* size including header */
|
|
struct _HEAPITEM_OBJECT *next,*prev;
|
|
} HEAPITEM_OBJECT;
|
|
|
|
|
|
/* Object number definitions. These numbers are used to
|
|
* validate the kernel object by comparison against the
|
|
* object's 'magic' value.
|
|
*/
|
|
#define KERNEL_OBJECT_UNUSED 2404554046UL
|
|
#define KERNEL_OBJECT_THREAD (KERNEL_OBJECT_UNUSED + 1)
|
|
#define KERNEL_OBJECT_PROCESS (KERNEL_OBJECT_UNUSED + 2)
|
|
#define KERNEL_OBJECT_FILE (KERNEL_OBJECT_UNUSED + 3)
|
|
#define KERNEL_OBJECT_SEMAPHORE (KERNEL_OBJECT_UNUSED + 4)
|
|
#define KERNEL_OBJECT_EVENT (KERNEL_OBJECT_UNUSED + 5)
|
|
#define KERNEL_OBJECT_REGKEY (KERNEL_OBJECT_UNUSED + 6)
|
|
#define KERNEL_OBJECT_FILEMAP (KERNEL_OBJECT_UNUSED + 7)
|
|
#define KERNEL_OBJECT_VRANGE (KERNEL_OBJECT_UNUSED + 8)
|
|
#define KERNEL_OBJECT_HEAP (KERNEL_OBJECT_UNUSED + 9)
|
|
#define KERNEL_OBJECT_HEAPITEM (KERNEL_OBJECT_UNUSED + 10)
|
|
|
|
/* Functions for checking kernel objects.
|
|
*/
|
|
int ValidateKernelObject(KERNEL_OBJECT *ptr);
|
|
|
|
/* For now, CreateKernelObject and ReleaseKernelObject will
|
|
* simply map to malloc() and free().
|
|
*/
|
|
#define CreateKernelObject(size) (malloc(size))
|
|
#define ReleaseKernelObject(ptr) (free(ptr))
|
|
|
|
/* Prototypes for the Close*Handle functions
|
|
*/
|
|
int CloseFileHandle(HFILE hFile);
|
|
|
|
#endif /* __WINE_HANDLE32_H */
|