summaryrefslogblamecommitdiffstats
path: root/private/os2/inc/conrqust.h
blob: 4f304483494e52a4cb855d328690beede00d5640 (plain) (tree)

































































































































































                                                                                                          

#define NTOS2_ONLY
#include "sesport.h"
#include "os2err.h"

/*
 *  Routines defined in conrqust.c to send requests to OS2.EXE
 */

APIRET
SendCtrlConsoleRequest(
    IN OUT PSCREQUESTMSG Request,
    IN     PCH           OutBuffer,
    OUT    PCH           InBuffer,
    IN     HANDLE        hSem
    );

APIRET
Od2CallRootProcessThruLPC(
    IN OUT PSCREQUESTMSG Request,
    IN     PCH           OutBuffer,
    OUT    PCH           InBuffer,
    IN     HANDLE        hSem,
    IN     ULONG         ArgLength
    );

APIRET
Od2LockCtrlRequestDataBuffer();

VOID
Od2UnlockCtrlRequestDataBuffer();

APIRET
Od2RemoveConsoleThread();

APIRET
Od2RestartConsoleThread();

APIRET
Od2AddWin32ChildProcess();

APIRET
Od2RemoveWin32ChildProcess();

/*
 *  Routines in "VIO" (vio/kbd/mou) that are called from dllremot.c or
 *      dllmisc.c(DosDevIOCtl)
 */

APIRET KbdOpenLogHandle(PHANDLE);
APIRET RemoteCloseHandle(HANDLE Handle);
NTSTATUS CtrlCloseHandle(IN HANDLE hFile);
APIRET KbdRead(IN PFILE_HANDLE hFileRecord, OUT PCH Buffer, IN ULONG Length,
        OUT PULONG BytesRead, IN KBDREQUESTNUMBER RequestType);
APIRET VioWrite(IN PFILE_HANDLE hFileRecord, IN PCH Buffer, IN ULONG Length,
        OUT PULONG BytesWritten, IN VIOREQUESTNUMBER RequestType);
APIRET DevMouOpen(OUT PHANDLE FileHandle);
APIRET DevMouClose();
APIRET KbdDupLogHandle( IN  HANDLE hKbd);
APIRET OpenLVBsection(VOID);
APIRET Od2WaitForSingleObject(IN HANDLE Handle, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL);

APIRET DosMonReg( IN ULONG hMon, IN PBYTE pInBuffer, IN PBYTE pOutBuffer,
    IN ULONG fPosition, IN ULONG usIndex);
APIRET KbdCharIn(OUT PKBDKEYINFO Info, IN ULONG Wait, IN ULONG hKbd);
APIRET KbdPeek(OUT PKBDKEYINFO Info, IN ULONG hKbd);
APIRET KbdGetFocus( IN ULONG Wait, IN ULONG hKbd);
APIRET MouDrawPtr(IN ULONG hMou);
APIRET MouGetDevStatus(OUT PUSHORT DevStatus, IN ULONG hMou);
APIRET MouGetEventMask(OUT PUSHORT EventMask, IN ULONG hMou);
APIRET MouGetNumButtons(OUT PUSHORT NumButtons, IN ULONG hMou);
APIRET MouGetNumMickeys(OUT PUSHORT NumMickeys, IN ULONG hMou);
APIRET MouGetNumQueEl(OUT PMOUQUEINFO NumQueEl, IN ULONG hMou);
APIRET MouGetPtrPos(OUT PPTRLOC PtrPos, IN ULONG hMou);
APIRET MouGetPtrShape(OUT PBYTE PtrMask, OUT PPTRSHAPE PtrShape, IN ULONG hMou);
APIRET MouGetScaleFact(OUT PSCALEFACT ScaleFact, IN ULONG hMou);
APIRET MouReadEventQue(OUT PMOUEVENTINFO MouEvent, IN PUSHORT Wait, IN ULONG hMou);
APIRET MouRemovePtr(IN PNOPTRRECT Rect, IN ULONG hMou);
APIRET MouSetDevStatus(IN PUSHORT DevStatus, IN ULONG hMou);
APIRET MouSetEventMask(IN PUSHORT EventMask, IN ULONG hMou);
APIRET MouSetPtrPos(IN PPTRLOC PtrPos, IN ULONG hMou);
APIRET MouSetPtrShape(IN PBYTE PtrMask, IN PPTRSHAPE PtrShape, IN ULONG hMou);
APIRET MouSetScaleFact(IN PSCALEFACT ScaleFact, IN ULONG hMou);

APIRET KbdGetCpId(OUT PUSHORT pIdCodePage, IN ULONG hKbd);
APIRET KbdGetInputMode(OUT PBYTE pInputMode, IN ULONG hKbd);
APIRET KbdGetInterimFlag(OUT PBYTE pInterimFlag, IN ULONG hKbd);
APIRET KbdGetKbdType(OUT PUSHORT pKbdType, IN ULONG hKbd);
APIRET KbdGetHotKey(IN PUSHORT pParm, OUT PBYTE pHotKey, IN ULONG hKbd);
APIRET KbdGetShiftState(OUT PBYTE pvData, IN ULONG hDev);
APIRET KbdSetInputMode(IN BYTE InputMode, IN ULONG hDev);
APIRET KbdSetInterimFlag(IN BYTE InterimFlag, IN ULONG hDev);
APIRET KbdSetShiftState(OUT PBYTE pvData, IN ULONG hDev);
APIRET KbdSetTypamaticRate(IN PBYTE pRateDelay, IN ULONG hDev);
APIRET MouAllowPtrDraw(IN ULONG hMou);
APIRET MouScreenSwitch(IN PBYTE pScreenGroup, IN ULONG hMou);

/*
 *  pointer to section of all-session-group parm
 */

POS2_SES_GROUP_PARMS  SesGrp;
ULONG   SesGrpId;

/*
 *  parameters from os2.exe ports for Vio/Kbd/Mou/Mon/Net APIs
 */

HANDLE  CtrlPortHandle;

PVOID   VioBuff;            // LVB buffer for VIO (after got selector)

extern HANDLE      FocusSemaphore;
extern HANDLE      CtrlDataSemaphore;
extern HANDLE      KbdDataSemaphore;
extern HANDLE      MouDataSemaphore;
extern HANDLE      PopUpSemaphore;
extern HANDLE      ScreenLockSemaphore;
extern HANDLE      PauseEvent;
extern HANDLE      Od2VioWriteSemHandle;

USHORT  MoniorOpenedForThisProcess;

#if DBG

//
// conrqust.c
//

VOID
AcquireStdHandleLock(
    IN PSZ CallingRoutine
    );

VOID
ReleaseStdHandleLock(
    IN PSZ CallingRoutine
    );

#else
VOID
AcquireStdHandleLock(
    );

VOID
ReleaseStdHandleLock(
    );
#endif


#if DBG
#define UNSUPPORTED_API()                                        \
    DbgPrint("%s Not Implemented Yet\n", FuncName);              \
 /* DbgUserBreakPoint();  */                                     \
    return NO_ERROR;
#else
#define UNSUPPORTED_API()                                        \
 /* DbgUserBreakPoint();  */                                     \
    return NO_ERROR;
#endif