Ignore:
Timestamp:
Feb 21, 2001, 8:41:24 AM (25 years ago)
Author:
bird
Message:

H2INC changes. New IOCtl for selector. Changed parameter packet layout.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/win32k.h

    r5210 r5219  
    1 /* $Id: win32k.h,v 1.9 2001-02-20 05:13:15 bird Exp $
     1/* $Id: win32k.h,v 1.10 2001-02-21 07:41:24 bird Exp $
    22 *
    33 * Top level make file for the Win32k library.
     
    99 *
    1010 */
     11/* NOINC */
    1112#ifndef _WIN32K_H_
    1213#define _WIN32K_H_
     14/* INC */
    1315
    1416/*******************************************************************************
     
    3133#define K32_HANDLESYSTEMEVENT   0x06
    3234#define K32_QUERYSYSTEMMEMINFO  0x07
    33 #define K32_LASTIOCTLFUNCTION   K32_QUERYSYSTEMMEMINFO
     35#define K32_QUERYCALLGATE       0x08
     36#define K32_LASTIOCTLFUNCTION   K32_QUERYCALLGATE
    3437
    3538
     
    7982
    8083
     84/* NOINC */
    8185#ifndef INCL_16                         /* We don't need this in 16-bit code. */
     86/* INC */
     87
     88/*******************************************************************************
     89*   Assembly Fixes                                                             *
     90*******************************************************************************/
     91/*ASM
     92BOOL struc
     93        dd ?
     94BOOL ends
     95
     96PID struc
     97        dd ?
     98PID ends
     99
     100HMODULE struc
     101        dd ?
     102HMODULE ends
     103
     104HEV struc
     105        dd ?
     106HEV ends
     107
     108PVOID struc
     109        dd ?
     110PVOID ends
     111
     112PPVOID struc
     113        dd ?
     114PPVOID ends
     115
     116PUSHORT struc
     117        dd ?
     118PUSHORT ends
     119
     120CCHMAXPATH EQU 260
     121
     122*/  /* end of assembly */
     123
    82124
    83125/*******************************************************************************
     
    89131 * Object Table Entry buffer.
    90132 */
    91 typedef struct _QueryOTE
     133struct _QueryOTE
    92134{
    93135    ULONG   ote_size;                   /* Object virtual size */
     
    99141    USHORT  ote_sel;                    /* Object Selector */
    100142    USHORT  ote_hob;                    /* Object Handle */
    101 } QOTE, *PQOTE;
     143};
     144typedef struct _QueryOTE    QOTE;
     145typedef QOTE     *          PQOTE;
     146
    102147
    103148typedef struct _QueryOTEBuffer
     
    105150    ULONG   cOTEs;                      /* Number of entries in aOTE. */
    106151    QOTE    aOTE[1];                    /* Array of OTEs. */
    107 } QOTEBUFFER, *PQOTEBUFFER;
     152} QOTEBUFFER;
     153typedef QOTEBUFFER *PQOTEBUFFER;
    108154
    109155
     
    152198    ULONG       cbSwpHeapMax;           /* Maximum heapsize. */
    153199    ULONG       cbResHeapMax;           /* Maxiumem residentheapsize. */
    154 } K32OPTIONS, *PK32OPTIONS;
     200} K32OPTIONS;
     201typedef K32OPTIONS  *PK32OPTIONS;
    155202
    156203
     
    197244    ULONG       cElf2LxModules;         /* Number of Elf2Lx modules currently loaded. */
    198245    /*...*/
    199 } K32STATUS, *PK32STATUS;
     246} K32STATUS;
     247typedef K32STATUS * PK32STATUS;
    200248
    201249
     
    255303    ULONG       ulVMArenaHighSharedMax; /* VM: Current highest address in the high shared arena - aurora/smp only. (ahvmhShr) */
    256304
    257 } K32SYSTEMMEMINFO, *PK32SYSTEMMEMINFO;
     305} K32SYSTEMMEMINFO;
     306typedef K32SYSTEMMEMINFO *  PK32SYSTEMMEMINFO;
    258307
    259308
    260309/*
    261310 * K32 category parameter structs
    262  *
    263  * Note. The ULONG rc should allways be the first datamember!
    264  */
    265 typedef struct _k32AllocMemEx
    266 {
     311 * ---
     312 * First member is allways a K32HDR struct called hdr.
     313 * The rest of it should be exactly like the parameter list for the API call.
     314 */
     315struct _k32Header                       /* Common parameter header. */
     316{
     317    ULONG       cb;                     /* Size of the parameters struct. */
    267318    ULONG       rc;                     /* Return code. */
     319};
     320typedef struct _k32Header   K32HDR;
     321typedef K32HDR *            PK32HDR;
     322
     323
     324struct _k32AllocMemEx
     325{
     326    K32HDR      hdr;                    /* Common parameter header */
    268327    PPVOID      ppv;                    /* Pointer to pointer to the allocated memory block */
    269328                                        /* On input it (*ppv) may hold the suggested  location of the block. */
     
    272331    ULONG       ulCS;                   /* Call CS */
    273332    ULONG       ulEIP;                  /* Call EIP */
    274 } K32ALLOCMEMEX, *PK32ALLOCMEMEX;
    275 
    276 typedef struct _k32QueryOTEs
    277 {
    278     ULONG       rc;                     /* Return code. */
     333};
     334typedef struct _k32AllocMemEx   K32ALLOCMEMEX;
     335typedef K32ALLOCMEMEX *         PK32ALLOCMEMEX;
     336
     337
     338struct _k32QueryOTEs
     339{
     340    K32HDR      hdr;                    /* Common parameter header */
    279341    HMODULE     hMTE;                   /* Module handle. */
    280342    PQOTEBUFFER pQOte;                  /* Pointer to output buffer. */
    281343    ULONG       cbQOte;                 /* Size of the buffer pointed to by pQOte  */
    282 } K32QUERYOTES, *PK32QUERYOTES;
    283 
    284 typedef struct _k32QueryOptionsStatus
    285 {
    286     ULONG       rc;                     /* Return code. */
     344};
     345typedef struct _k32QueryOTEs    K32QUERYOTES;
     346typedef K32QUERYOTES *          PK32QUERYOTES;
     347
     348
     349struct _k32QueryOptionsStatus
     350{
     351    K32HDR      hdr;                    /* Common parameter header */
    287352    PK32OPTIONS pOptions;               /* Pointer to option struct. (NULL allowed) */
    288353    PK32STATUS  pStatus;                /* Pointer to status struct. (NULL allowed) */
    289 } K32QUERYOPTIONSSTATUS, *PK32QUERYOPTIONSSTATUS;
    290 
    291 typedef struct _k32SetOptions
    292 {
    293     ULONG        rc;                    /* Return code. */
    294     PK32OPTIONS  pOptions;              /* Pointer to option struct. (NULL allowed) */
    295 } K32SETOPTIONS, *PK32SETOPTIONS;
    296 
    297 typedef struct _k32ProcessReadWrite
    298 {
    299     ULONG       rc;                     /* Return code. */
     354};
     355typedef struct _k32QueryOptionsStatus   K32QUERYOPTIONSSTATUS;
     356typedef K32QUERYOPTIONSSTATUS *         PK32QUERYOPTIONSSTATUS;
     357
     358
     359struct _k32SetOptions
     360{
     361    K32HDR      hdr;                    /* Common parameter header */
     362    PK32OPTIONS pOptions;               /* Pointer to option struct. (NULL allowed) */
     363};
     364typedef struct _k32SetOptions           K32SETOPTIONS;
     365typedef K32SETOPTIONS *                 PK32SETOPTIONS;
     366
     367
     368struct _k32ProcessReadWrite
     369{
     370    K32HDR      hdr;                    /* Common parameter header */
    300371    PID         pid;                    /* Process ID of the process to access memory in. */
    301372    ULONG       cb;                     /* Number of bytes to read or write. */
     
    304375    BOOL        fRead;                  /* TRUE:   pvSource is within pid while pvTarget is ours. */
    305376                                        /* FALSE:  pvTarget is within pid while pvSource is ours. */
    306 } K32PROCESSREADWRITE, *PK32PROCESSREADWRITE;
    307 
    308 typedef struct _k32HandleSystemEvent
    309 {
    310     ULONG       rc;                     /* Return code. */
     377};
     378typedef struct _k32ProcessReadWrite     K32PROCESSREADWRITE;
     379typedef K32PROCESSREADWRITE *           PK32PROCESSREADWRITE;
     380
     381
     382struct _k32HandleSystemEvent
     383{
     384    K32HDR      hdr;                    /* Common parameter header */
    311385    ULONG       ulEvent;                /* Event identifier. One of the K32_SYSEVENT_ defines. */
    312386    HEV         hev;                    /* Handle of shared event semaphore which should be */
     
    315389                                        /* TRUE:  Take control of the event. */
    316390                                        /* FALSE: Give control back to the OS of this event. (hev must match the current handle!) */
    317 } K32HANDLESYSTEMEVENT, *PK32HANDLESYSTEMEVENT;
    318 
    319 typedef struct _k32QuerySystemMemInfo
    320 {
    321     APIRET      rc;                     /* Return code. */
     391};
     392typedef struct _k32HandleSystemEvent    K32HANDLESYSTEMEVENT;
     393typedef K32HANDLESYSTEMEVENT *          PK32HANDLESYSTEMEVENT;
     394
     395
     396struct _k32QuerySystemMemInfo
     397{
     398    K32HDR      hdr;                    /* Common parameter header */
    322399    PK32SYSTEMMEMINFO   pMemInfo;       /* Pointer to system memory info structure with cb set. */
    323400                                        /* The other members will be filled on successful return. */
    324 } K32QUERYSYSTEMMEMINFO, *PK32QUERYSYSTEMMEMINFO;
    325 
     401};
     402typedef struct _k32QuerySystemMemInfo   K32QUERYSYSTEMMEMINFO;
     403typedef K32QUERYSYSTEMMEMINFO *         PK32QUERYSYSTEMMEMINFO;
     404
     405
     406struct _k32QueryCallGate
     407{
     408    K32HDR      hdr;                    /* Common parameter header */
     409    PUSHORT     pusCGSelector;          /* Pointer to variable where the callgate selector */
     410                                        /* is to be stored. */
     411};
     412typedef struct _k32QueryCallGate        K32QUERYCALLGATE;
     413typedef struct _k32QueryCallGate *      PK32QUERYCALLGATE;
    326414
    327415#pragma pack()
    328416
     417/* NOINC */
    329418#ifndef NO_WIN32K_LIB_FUNCTIONS
    330419/*******************************************************************************
     
    348437USHORT APIENTRY  libHelperGetCS(void);
    349438
    350 
    351439#endif
    352 
     440/* INC */
     441
     442/* NOINC */
    353443#endif /* !defined(INCL_16) */
    354 
    355444#endif
     445/* INC */
Note: See TracChangeset for help on using the changeset viewer.