mirror of https://github.com/lianthony/NT4.0
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.
162 lines
4.7 KiB
162 lines
4.7 KiB
|
|
#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
|
|
|
|
|