mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-26 19:33:31 +00:00
[Win32SS] Add Driver Callback
Add user driver callback to be used later on.
This commit is contained in:
@@ -18,7 +18,8 @@
|
||||
#define USER32_CALLBACK_DDEGET (14)
|
||||
#define USER32_CALLBACK_SETOBM (15)
|
||||
#define USER32_CALLBACK_LPK (16)
|
||||
#define USER32_CALLBACK_MAXIMUM (16)
|
||||
#define USER32_CALLBACK_UMPD (17)
|
||||
#define USER32_CALLBACK_MAXIMUM (17)
|
||||
|
||||
typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS
|
||||
{
|
||||
@@ -186,4 +187,6 @@ NTSTATUS WINAPI
|
||||
User32CallOBMFromKernel(PVOID Arguments, ULONG ArgumentLength);
|
||||
NTSTATUS WINAPI
|
||||
User32CallLPKFromKernel(PVOID Arguments, ULONG ArgumentLength);
|
||||
NTSTATUS WINAPI
|
||||
User32CallUMPDFromKernel(PVOID Arguments, ULONG ArgumentLength);
|
||||
#endif /* __INCLUDE_USER32_CALLBACK_H */
|
||||
|
||||
@@ -1208,5 +1208,30 @@ co_IntSetupOBM(VOID)
|
||||
IntCbFreeMemory(Argument);
|
||||
}
|
||||
|
||||
LRESULT
|
||||
APIENTRY
|
||||
co_UserCBClientPrinterThunk( PVOID pkt, INT InSize, PVOID pvOutData, INT OutSize )
|
||||
{
|
||||
ULONG ResultLength;
|
||||
PVOID ResultPointer;
|
||||
NTSTATUS Status;
|
||||
UserLeaveCo();
|
||||
|
||||
Status = KeUserModeCallback(USER32_CALLBACK_UMPD,
|
||||
0,
|
||||
0,
|
||||
&ResultPointer,
|
||||
&ResultLength);
|
||||
|
||||
|
||||
UserEnterCo();
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
ERR("User UMPD callback failed!\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
||||
@@ -206,6 +206,7 @@ PVOID apfnDispatch[USER32_CALLBACK_MAXIMUM + 1] =
|
||||
User32CallDDEGetFromKernel,
|
||||
User32CallOBMFromKernel,
|
||||
User32CallLPKFromKernel,
|
||||
User32CallUMPDFromKernel,
|
||||
};
|
||||
|
||||
|
||||
@@ -663,3 +664,9 @@ NTSTATUS WINAPI User32CallLPKFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
||||
|
||||
return ZwCallbackReturn(&bResult, sizeof(BOOL), STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
NTSTATUS WINAPI User32CallUMPDFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
||||
{
|
||||
// = GdiPrinterThunk( , , );
|
||||
return ZwCallbackReturn(Arguments, ArgumentLength, STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user