mirror of
https://github.com/reactos/reactos.git
synced 2025-06-15 13:28:32 +00:00
- Remove usercall.c from portable part of Ke and add it to ke\i386. The implementation is slightly arch-specific.
- Remove code in userapc.c and move it into usercall.c, since both functions basically deal with user-mode callouts. - Handle STATUS_CALLBACK_POP_STACK and add the status to ntstatus.h - Also handle future support for GDI Batch flushing. svn path=/trunk/; revision=24089
This commit is contained in:
parent
a614833b08
commit
07a0973e21
5 changed files with 453 additions and 349 deletions
|
@ -877,6 +877,7 @@ extern "C" {
|
|||
#define STATUS_PKINIT_CLIENT_FAILURE ((NTSTATUS)0xC000038CL)
|
||||
#define STATUS_SMARTCARD_CERT_EXPIRED ((NTSTATUS)0xC000038DL)
|
||||
#define STATUS_DRIVER_FAILED_PRIOR_UNLOAD ((NTSTATUS)0xC000038EL)
|
||||
#define STATUS_CALLBACK_POP_STACK ((NTSTATUS)0xC0000423L)
|
||||
#define STATUS_WOW_ASSERTION ((NTSTATUS)0xC0009898L)
|
||||
#define RPC_NT_INVALID_STRING_BINDING ((NTSTATUS)0xC0020001L)
|
||||
#define RPC_NT_WRONG_KIND_OF_BINDING ((NTSTATUS)0xC0020002L)
|
||||
|
|
|
@ -921,6 +921,7 @@
|
|||
#define STATUS_AUTHENTICATION_FIREWALL_FAILED ((NTSTATUS)0xC0000413)
|
||||
#define STATUS_VDM_DISALLOWED ((NTSTATUS)0xC0000414)
|
||||
#define STATUS_HUNG_DISPLAY_DRIVER_THREAD ((NTSTATUS)0xC0000415)
|
||||
#define STATUS_CALLBACK_POP_STACK ((NTSTATUS)0xC0000423)
|
||||
#define STATUS_WOW_ASSERTION ((NTSTATUS)0xC0009898)
|
||||
|
||||
#define RPC_NT_INVALID_STRING_BINDING ((NTSTATUS)0xC0020001)
|
||||
|
|
|
@ -823,6 +823,19 @@ KiInsertQueueApc(
|
|||
IN KPRIORITY PriorityBoost
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KiCallUserMode(
|
||||
IN PVOID *OutputBuffer,
|
||||
IN PULONG OutputLength
|
||||
);
|
||||
|
||||
PULONG
|
||||
NTAPI
|
||||
KiGetUserModeStackAddress(
|
||||
VOID
|
||||
);
|
||||
|
||||
#include "ke_x.h"
|
||||
|
||||
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_KE_H */
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: ntoskrnl/ke/i386/userapc.c
|
||||
* PURPOSE: Implements User-Mode APC Initialization
|
||||
* FILE: ntoskrnl/ke/i386/usercall.c
|
||||
* PURPOSE: User-mode Callout Mechanisms (APC and Win32K Callbacks)
|
||||
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
#include <internal/debug.h>
|
||||
|
||||
/* PRIVATE FUNCTIONS *********************************************************/
|
||||
|
||||
|
@ -56,7 +56,7 @@ _SEH_FILTER(KiCopyInformation2)
|
|||
*
|
||||
*--*/
|
||||
VOID
|
||||
STDCALL
|
||||
NTAPI
|
||||
KiInitializeUserApc(IN PKEXCEPTION_FRAME ExceptionFrame,
|
||||
IN PKTRAP_FRAME TrapFrame,
|
||||
IN PKNORMAL_ROUTINE NormalRoutine,
|
||||
|
@ -134,3 +134,93 @@ KiInitializeUserApc(IN PKEXCEPTION_FRAME ExceptionFrame,
|
|||
_SEH_END;
|
||||
}
|
||||
|
||||
/* PUBLIC FUNCTIONS **********************************************************/
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KeUserModeCallback(IN ULONG RoutineIndex,
|
||||
IN PVOID Argument,
|
||||
IN ULONG ArgumentLength,
|
||||
OUT PVOID *Result,
|
||||
OUT PULONG ResultLength)
|
||||
{
|
||||
ULONG_PTR NewStack, OldStack;
|
||||
PULONG UserEsp;
|
||||
NTSTATUS CallbackStatus = STATUS_SUCCESS;
|
||||
PEXCEPTION_REGISTRATION_RECORD ExceptionList;
|
||||
PTEB Teb;
|
||||
ULONG GdiBatchCount = 0;
|
||||
ASSERT(KeGetCurrentThread()->ApcState.KernelApcInProgress == FALSE);
|
||||
ASSERT(KeGetPreviousMode() == UserMode);
|
||||
|
||||
/* Get the current user-mode stack */
|
||||
UserEsp = KiGetUserModeStackAddress();
|
||||
OldStack = *UserEsp;
|
||||
|
||||
/* Enter a SEH Block */
|
||||
_SEH_TRY
|
||||
{
|
||||
/* Calculate and align the stack size */
|
||||
NewStack = (OldStack - ArgumentLength) & ~3;
|
||||
|
||||
/* Make sure it's writable */
|
||||
ProbeForWrite((PVOID)(NewStack - 6 * sizeof(ULONG_PTR)),
|
||||
ArgumentLength + 6 * sizeof(ULONG_PTR),
|
||||
sizeof(CHAR));
|
||||
|
||||
/* Copy the buffer into the stack */
|
||||
RtlCopyMemory((PVOID)NewStack, Argument, ArgumentLength);
|
||||
|
||||
/* Write the arguments */
|
||||
NewStack -= 24;
|
||||
*(PULONG)NewStack = 0;
|
||||
*(PULONG)(NewStack + 4) = RoutineIndex;
|
||||
*(PULONG)(NewStack + 8) = (NewStack + 24);
|
||||
*(PULONG)(NewStack + 12) = ArgumentLength;
|
||||
|
||||
/* Save the exception list */
|
||||
Teb = KeGetCurrentThread()->Teb;
|
||||
ExceptionList = Teb->Tib.ExceptionList;
|
||||
|
||||
/* Jump to user mode */
|
||||
*UserEsp = NewStack;
|
||||
CallbackStatus = KiCallUserMode(Result, ResultLength);
|
||||
if (CallbackStatus != STATUS_CALLBACK_POP_STACK)
|
||||
{
|
||||
/* Only restore the exception list if we didn't crash in ring 3 */
|
||||
Teb->Tib.ExceptionList = ExceptionList;
|
||||
CallbackStatus = STATUS_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Otherwise, pop the stack */
|
||||
OldStack = *UserEsp;
|
||||
}
|
||||
|
||||
/* Read the GDI Batch count */
|
||||
GdiBatchCount = Teb->GdiBatchCount;
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
/* Get the SEH exception */
|
||||
CallbackStatus = _SEH_GetExceptionCode();
|
||||
}
|
||||
_SEH_END;
|
||||
if (!NT_SUCCESS(CallbackStatus)) return CallbackStatus;
|
||||
|
||||
/* Check if we have GDI Batch operations */
|
||||
if (GdiBatchCount)
|
||||
{
|
||||
/* Shouldn't happen in ROS yet */
|
||||
ASSERT(FALSE);
|
||||
}
|
||||
|
||||
/* Restore stack and return */
|
||||
*UserEsp = OldStack;
|
||||
return CallbackStatus;
|
||||
}
|
||||
|
||||
/* EOF */
|
|
@ -1,346 +1,345 @@
|
|||
<module name="ntoskrnl" type="kernel" installbase="system32" installname="ntoskrnl.exe">
|
||||
<bootstrap base="reactos" />
|
||||
<importlibrary definition="ntoskrnl.def" />
|
||||
<define name="_SEH_NO_NATIVE_NLG" />
|
||||
<define name="_DISABLE_TIDENTS" />
|
||||
<define name="__NTOSKRNL__" />
|
||||
<define name="_NTOSKRNL_" />
|
||||
<define name="_NTSYSTEM_" />
|
||||
<define name="__NO_CTYPE_INLINES" />
|
||||
<define name="__USE_W32API" />
|
||||
<define name="WIN9X_COMPAT_SPINLOCK" />
|
||||
<include base="kjs">include</include>
|
||||
<include base="cmlib">.</include>
|
||||
<include base="ntoskrnl">include</include>
|
||||
<include base="ReactOS">include/reactos/drivers</include>
|
||||
<library>csq</library>
|
||||
<library>hal</library>
|
||||
<library>kjs</library>
|
||||
<library>pseh</library>
|
||||
<library>cmlib</library>
|
||||
<library>rtl</library>
|
||||
<library>rossym</library>
|
||||
<library>string</library>
|
||||
<library>wdmguid</library>
|
||||
<directory name="include">
|
||||
<pch>ntoskrnl.h</pch>
|
||||
</directory>
|
||||
<directory name="ke">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<file first="true">boot.S</file>
|
||||
<file>abios.c</file>
|
||||
<file>cpu.c</file>
|
||||
<file>ctxswitch.S</file>
|
||||
<file>clock.S</file>
|
||||
<file>exp.c</file>
|
||||
<!-- <file>irq.c</file> -->
|
||||
<file>kiinit.c</file>
|
||||
<file>ldt.c</file>
|
||||
<file>thread.c</file>
|
||||
<file>trap.s</file>
|
||||
<file>usercall_asm.S</file>
|
||||
<file>userapc.c</file>
|
||||
<file>v86vdm.c</file>
|
||||
<file>v86m_sup.S</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>apc.c</file>
|
||||
<file>bug.c</file>
|
||||
<file>clock.c</file>
|
||||
<file>device.c</file>
|
||||
<file>dpc.c</file>
|
||||
<file>event.c</file>
|
||||
<file>exception.c</file>
|
||||
<file>freeldr.c</file>
|
||||
<file>gate.c</file>
|
||||
<file>gmutex.c</file>
|
||||
<file>ipi.c</file>
|
||||
<file>kqueue.c</file>
|
||||
<file>krnlinit.c</file>
|
||||
<file>mutex.c</file>
|
||||
<file>process.c</file>
|
||||
<file>profile.c</file>
|
||||
<file>queue.c</file>
|
||||
<file>sem.c</file>
|
||||
<file>spinlock.c</file>
|
||||
<file>thrdschd.c</file>
|
||||
<file>thrdobj.c</file>
|
||||
<file>timer.c</file>
|
||||
<file>usercall.c</file>
|
||||
<file>wait.c</file>
|
||||
</directory>
|
||||
<directory name="deprecated">
|
||||
<file>irqhand.S</file>
|
||||
<file>irq.c</file>
|
||||
</directory>
|
||||
<directory name="cc">
|
||||
<file>cacheman.c</file>
|
||||
<file>copy.c</file>
|
||||
<file>fs.c</file>
|
||||
<file>mdl.c</file>
|
||||
<file>pin.c</file>
|
||||
<file>view.c</file>
|
||||
</directory>
|
||||
<directory name="cm">
|
||||
<file>import.c</file>
|
||||
<file>ntfunc.c</file>
|
||||
<file>regfile.c</file>
|
||||
<file>registry.c</file>
|
||||
<file>regobj.c</file>
|
||||
</directory>
|
||||
<directory name="kdbg">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<if property="KDBG" value="1">
|
||||
<group>
|
||||
<file>i386-dis.c</file>
|
||||
<file>kdb_help.S</file>
|
||||
<file>longjmp.S</file>
|
||||
<file>setjmp.S</file>
|
||||
</group>
|
||||
</if>
|
||||
</directory>
|
||||
</if>
|
||||
<if property="KDBG" value="1">
|
||||
<file>kdb.c</file>
|
||||
<file>kdb_cli.c</file>
|
||||
<file>kdb_expr.c</file>
|
||||
<file>kdb_keyboard.c</file>
|
||||
<file>kdb_serial.c</file>
|
||||
<file>kdb_string.c</file>
|
||||
</if>
|
||||
<if property="DBG_OR_KDBG" value="true">
|
||||
<file>kdb_symbols.c</file>
|
||||
</if>
|
||||
</directory>
|
||||
<directory name="dbgk">
|
||||
<file>dbgkutil.c</file>
|
||||
<file>debug.c</file>
|
||||
</directory>
|
||||
<directory name="ex">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<file>interlck_asm.S</file>
|
||||
<file>fastinterlck_asm.S</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>atom.c</file>
|
||||
<file>callback.c</file>
|
||||
<file>dbgctrl.c</file>
|
||||
<file>error.c</file>
|
||||
<file>efi.c</file>
|
||||
<file>event.c</file>
|
||||
<file>evtpair.c</file>
|
||||
<file>fmutex.c</file>
|
||||
<file>handle.c</file>
|
||||
<file>init.c</file>
|
||||
<file>locale.c</file>
|
||||
<file>lookas.c</file>
|
||||
<file>mutant.c</file>
|
||||
<file>power.c</file>
|
||||
<file>pushlock.c</file>
|
||||
<file>profile.c</file>
|
||||
<file>resource.c</file>
|
||||
<file>rundown.c</file>
|
||||
<file>sem.c</file>
|
||||
<file>sysinfo.c</file>
|
||||
<file>time.c</file>
|
||||
<file>timer.c</file>
|
||||
<file>uuid.c</file>
|
||||
<file>win32k.c</file>
|
||||
<file>work.c</file>
|
||||
<file>zone.c</file>
|
||||
<file>zw.S</file>
|
||||
</directory>
|
||||
<directory name="fs">
|
||||
<file>context.c</file>
|
||||
<file>fastio.c</file>
|
||||
<file>filelock.c</file>
|
||||
<file>mcb.c</file>
|
||||
<file>name.c</file>
|
||||
<file>notify.c</file>
|
||||
<file>oplock.c</file>
|
||||
<file>pool.c</file>
|
||||
<file>tunnel.c</file>
|
||||
<file>unc.c</file>
|
||||
<file>util.c</file>
|
||||
</directory>
|
||||
<directory name="inbv">
|
||||
<file>inbv.c</file>
|
||||
</directory>
|
||||
<directory name="io">
|
||||
<directory name="iomgr">
|
||||
<file>adapter.c</file>
|
||||
<file>arcname.c</file>
|
||||
<file>bootlog.c</file>
|
||||
<file>controller.c</file>
|
||||
<file>device.c</file>
|
||||
<file>deviface.c</file>
|
||||
<file>disk.c</file>
|
||||
<file>driver.c</file>
|
||||
<file>drvrlist.c</file>
|
||||
<file>error.c</file>
|
||||
<file>event.c</file>
|
||||
<file>file.c</file>
|
||||
<file>iocomp.c</file>
|
||||
<file>iofunc.c</file>
|
||||
<file>iomgr.c</file>
|
||||
<file>iowork.c</file>
|
||||
<file>irp.c</file>
|
||||
<file>irq.c</file>
|
||||
<file>mdl.c</file>
|
||||
<file>rawfs.c</file>
|
||||
<file>remlock.c</file>
|
||||
<file>resource.c</file>
|
||||
<file>util.c</file>
|
||||
<file>symlink.c</file>
|
||||
<file>timer.c</file>
|
||||
<file>volume.c</file>
|
||||
</directory>
|
||||
<directory name="pnpmgr">
|
||||
<file>plugplay.c</file>
|
||||
<file>pnpdma.c</file>
|
||||
<file>pnpmgr.c</file>
|
||||
<file>pnpnotify.c</file>
|
||||
<file>pnpreport.c</file>
|
||||
<file>pnproot.c</file>
|
||||
</directory>
|
||||
</directory>
|
||||
<directory name="kd">
|
||||
<directory name="wrappers">
|
||||
<file>bochs.c</file>
|
||||
<file>gdbstub.c</file>
|
||||
</directory>
|
||||
<file>kdinit.c</file>
|
||||
<file>kdio.c</file>
|
||||
<file>kdmain.c</file>
|
||||
</directory>
|
||||
<directory name="ldr">
|
||||
<file>loader.c</file>
|
||||
<file>rtl.c</file>
|
||||
</directory>
|
||||
<directory name="lpc">
|
||||
<file>close.c</file>
|
||||
<file>complete.c</file>
|
||||
<file>connect.c</file>
|
||||
<file>create.c</file>
|
||||
<file>listen.c</file>
|
||||
<file>port.c</file>
|
||||
<file>query.c</file>
|
||||
<file>queue.c</file>
|
||||
<file>receive.c</file>
|
||||
<file>reply.c</file>
|
||||
<file>send.c</file>
|
||||
</directory>
|
||||
<directory name="mm">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<file>memsafe.s</file>
|
||||
<file>page.c</file>
|
||||
<file>pfault.c</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>anonmem.c</file>
|
||||
<file>aspace.c</file>
|
||||
<file>balance.c</file>
|
||||
<file>cont.c</file>
|
||||
<file>drvlck.c</file>
|
||||
<file>freelist.c</file>
|
||||
<file>iospace.c</file>
|
||||
<file>kmap.c</file>
|
||||
<file>marea.c</file>
|
||||
<file>mdl.c</file>
|
||||
<file>mm.c</file>
|
||||
<file>process.c</file>
|
||||
<file>mminit.c</file>
|
||||
<file>mpw.c</file>
|
||||
<file>ncache.c</file>
|
||||
<file>npool.c</file>
|
||||
<file>pagefile.c</file>
|
||||
<file>pageop.c</file>
|
||||
<file>pager.c</file>
|
||||
<file>pagfault.c</file>
|
||||
<file>paging.c</file>
|
||||
<file>pe.c</file>
|
||||
<file>physical.c</file>
|
||||
<file>pool.c</file>
|
||||
<file>ppool.c</file>
|
||||
<file>region.c</file>
|
||||
<file>rmap.c</file>
|
||||
<file>section.c</file>
|
||||
<file>verifier.c</file>
|
||||
<file>virtual.c</file>
|
||||
<file>wset.c</file>
|
||||
<file>elf32.c</file>
|
||||
<file>elf64.c</file>
|
||||
</directory>
|
||||
<directory name="ob">
|
||||
<file>obdir.c</file>
|
||||
<file>obinit.c</file>
|
||||
<file>obhandle.c</file>
|
||||
<file>obname.c</file>
|
||||
<file>oblife.c</file>
|
||||
<file>obref.c</file>
|
||||
<file>sdcache.c</file>
|
||||
<file>obsecure.c</file>
|
||||
<file>symlink.c</file>
|
||||
<file>obwait.c</file>
|
||||
</directory>
|
||||
<directory name="po">
|
||||
<file>power.c</file>
|
||||
<file>events.c</file>
|
||||
</directory>
|
||||
<directory name="ps">
|
||||
<file>debug.c</file>
|
||||
<file>job.c</file>
|
||||
<file>kill.c</file>
|
||||
<file>notify.c</file>
|
||||
<file>process.c</file>
|
||||
<file>psmgr.c</file>
|
||||
<file>query.c</file>
|
||||
<file>quota.c</file>
|
||||
<file>security.c</file>
|
||||
<file>state.c</file>
|
||||
<file>thread.c</file>
|
||||
<file>win32.c</file>
|
||||
</directory>
|
||||
<directory name="rtl">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<file>exception.c</file>
|
||||
<file>seh.s</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>libsupp.c</file>
|
||||
<file>misc.c</file>
|
||||
<file>nls.c</file>
|
||||
<file>regio.c</file>
|
||||
<file>strtok.c</file>
|
||||
</directory>
|
||||
<directory name="se">
|
||||
<file>access.c</file>
|
||||
<file>acl.c</file>
|
||||
<file>audit.c</file>
|
||||
<file>lsa.c</file>
|
||||
<file>luid.c</file>
|
||||
<file>priv.c</file>
|
||||
<file>sd.c</file>
|
||||
<file>semgr.c</file>
|
||||
<file>sid.c</file>
|
||||
<file>token.c</file>
|
||||
</directory>
|
||||
<directory name="vdm">
|
||||
<if property="ARCH" value="i386">
|
||||
<file>vdmmain.c</file>
|
||||
<file>vdmexec.c</file>
|
||||
</if>
|
||||
</directory>
|
||||
<directory name="wmi">
|
||||
<file>wmi.c</file>
|
||||
</directory>
|
||||
<file>ntoskrnl.rc</file>
|
||||
<linkerflag>-nostartfiles</linkerflag>
|
||||
<linkerflag>-nostdlib</linkerflag>
|
||||
<linkerflag>-lgcc</linkerflag>
|
||||
<bootstrap base="reactos" />
|
||||
<importlibrary definition="ntoskrnl.def" />
|
||||
<define name="_SEH_NO_NATIVE_NLG" />
|
||||
<define name="_DISABLE_TIDENTS" />
|
||||
<define name="__NTOSKRNL__" />
|
||||
<define name="_NTOSKRNL_" />
|
||||
<define name="_NTSYSTEM_" />
|
||||
<define name="__NO_CTYPE_INLINES" />
|
||||
<define name="__USE_W32API" />
|
||||
<define name="WIN9X_COMPAT_SPINLOCK" />
|
||||
<include base="kjs">include</include>
|
||||
<include base="cmlib">.</include>
|
||||
<include base="ntoskrnl">include</include>
|
||||
<include base="ReactOS">include/reactos/drivers</include>
|
||||
<library>csq</library>
|
||||
<library>hal</library>
|
||||
<library>kjs</library>
|
||||
<library>pseh</library>
|
||||
<library>cmlib</library>
|
||||
<library>rtl</library>
|
||||
<library>rossym</library>
|
||||
<library>string</library>
|
||||
<library>wdmguid</library>
|
||||
<directory name="include">
|
||||
<pch>ntoskrnl.h</pch>
|
||||
</directory>
|
||||
<directory name="ke">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<file first="true">boot.S</file>
|
||||
<file>abios.c</file>
|
||||
<file>cpu.c</file>
|
||||
<file>ctxswitch.S</file>
|
||||
<file>clock.S</file>
|
||||
<file>exp.c</file>
|
||||
<!-- <file>irq.c</file> -->
|
||||
<file>kiinit.c</file>
|
||||
<file>ldt.c</file>
|
||||
<file>thread.c</file>
|
||||
<file>trap.s</file>
|
||||
<file>usercall_asm.S</file>
|
||||
<file>usercall.c</file>
|
||||
<file>v86vdm.c</file>
|
||||
<file>v86m_sup.S</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>apc.c</file>
|
||||
<file>bug.c</file>
|
||||
<file>clock.c</file>
|
||||
<file>device.c</file>
|
||||
<file>dpc.c</file>
|
||||
<file>event.c</file>
|
||||
<file>exception.c</file>
|
||||
<file>freeldr.c</file>
|
||||
<file>gate.c</file>
|
||||
<file>gmutex.c</file>
|
||||
<file>ipi.c</file>
|
||||
<file>kqueue.c</file>
|
||||
<file>krnlinit.c</file>
|
||||
<file>mutex.c</file>
|
||||
<file>process.c</file>
|
||||
<file>profile.c</file>
|
||||
<file>queue.c</file>
|
||||
<file>sem.c</file>
|
||||
<file>spinlock.c</file>
|
||||
<file>thrdschd.c</file>
|
||||
<file>thrdobj.c</file>
|
||||
<file>timer.c</file>
|
||||
<file>wait.c</file>
|
||||
</directory>
|
||||
<directory name="deprecated">
|
||||
<file>irqhand.S</file>
|
||||
<file>irq.c</file>
|
||||
</directory>
|
||||
<directory name="cc">
|
||||
<file>cacheman.c</file>
|
||||
<file>copy.c</file>
|
||||
<file>fs.c</file>
|
||||
<file>mdl.c</file>
|
||||
<file>pin.c</file>
|
||||
<file>view.c</file>
|
||||
</directory>
|
||||
<directory name="cm">
|
||||
<file>import.c</file>
|
||||
<file>ntfunc.c</file>
|
||||
<file>regfile.c</file>
|
||||
<file>registry.c</file>
|
||||
<file>regobj.c</file>
|
||||
</directory>
|
||||
<directory name="kdbg">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<if property="KDBG" value="1">
|
||||
<group>
|
||||
<file>i386-dis.c</file>
|
||||
<file>kdb_help.S</file>
|
||||
<file>longjmp.S</file>
|
||||
<file>setjmp.S</file>
|
||||
</group>
|
||||
</if>
|
||||
</directory>
|
||||
</if>
|
||||
<if property="KDBG" value="1">
|
||||
<file>kdb.c</file>
|
||||
<file>kdb_cli.c</file>
|
||||
<file>kdb_expr.c</file>
|
||||
<file>kdb_keyboard.c</file>
|
||||
<file>kdb_serial.c</file>
|
||||
<file>kdb_string.c</file>
|
||||
</if>
|
||||
<if property="DBG_OR_KDBG" value="true">
|
||||
<file>kdb_symbols.c</file>
|
||||
</if>
|
||||
</directory>
|
||||
<directory name="dbgk">
|
||||
<file>dbgkutil.c</file>
|
||||
<file>debug.c</file>
|
||||
</directory>
|
||||
<directory name="ex">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<file>interlck_asm.S</file>
|
||||
<file>fastinterlck_asm.S</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>atom.c</file>
|
||||
<file>callback.c</file>
|
||||
<file>dbgctrl.c</file>
|
||||
<file>error.c</file>
|
||||
<file>efi.c</file>
|
||||
<file>event.c</file>
|
||||
<file>evtpair.c</file>
|
||||
<file>fmutex.c</file>
|
||||
<file>handle.c</file>
|
||||
<file>init.c</file>
|
||||
<file>locale.c</file>
|
||||
<file>lookas.c</file>
|
||||
<file>mutant.c</file>
|
||||
<file>power.c</file>
|
||||
<file>pushlock.c</file>
|
||||
<file>profile.c</file>
|
||||
<file>resource.c</file>
|
||||
<file>rundown.c</file>
|
||||
<file>sem.c</file>
|
||||
<file>sysinfo.c</file>
|
||||
<file>time.c</file>
|
||||
<file>timer.c</file>
|
||||
<file>uuid.c</file>
|
||||
<file>win32k.c</file>
|
||||
<file>work.c</file>
|
||||
<file>zone.c</file>
|
||||
<file>zw.S</file>
|
||||
</directory>
|
||||
<directory name="fs">
|
||||
<file>context.c</file>
|
||||
<file>fastio.c</file>
|
||||
<file>filelock.c</file>
|
||||
<file>mcb.c</file>
|
||||
<file>name.c</file>
|
||||
<file>notify.c</file>
|
||||
<file>oplock.c</file>
|
||||
<file>pool.c</file>
|
||||
<file>tunnel.c</file>
|
||||
<file>unc.c</file>
|
||||
<file>util.c</file>
|
||||
</directory>
|
||||
<directory name="inbv">
|
||||
<file>inbv.c</file>
|
||||
</directory>
|
||||
<directory name="io">
|
||||
<directory name="iomgr">
|
||||
<file>adapter.c</file>
|
||||
<file>arcname.c</file>
|
||||
<file>bootlog.c</file>
|
||||
<file>controller.c</file>
|
||||
<file>device.c</file>
|
||||
<file>deviface.c</file>
|
||||
<file>disk.c</file>
|
||||
<file>driver.c</file>
|
||||
<file>drvrlist.c</file>
|
||||
<file>error.c</file>
|
||||
<file>event.c</file>
|
||||
<file>file.c</file>
|
||||
<file>iocomp.c</file>
|
||||
<file>iofunc.c</file>
|
||||
<file>iomgr.c</file>
|
||||
<file>iowork.c</file>
|
||||
<file>irp.c</file>
|
||||
<file>irq.c</file>
|
||||
<file>mdl.c</file>
|
||||
<file>rawfs.c</file>
|
||||
<file>remlock.c</file>
|
||||
<file>resource.c</file>
|
||||
<file>util.c</file>
|
||||
<file>symlink.c</file>
|
||||
<file>timer.c</file>
|
||||
<file>volume.c</file>
|
||||
</directory>
|
||||
<directory name="pnpmgr">
|
||||
<file>plugplay.c</file>
|
||||
<file>pnpdma.c</file>
|
||||
<file>pnpmgr.c</file>
|
||||
<file>pnpnotify.c</file>
|
||||
<file>pnpreport.c</file>
|
||||
<file>pnproot.c</file>
|
||||
</directory>
|
||||
</directory>
|
||||
<directory name="kd">
|
||||
<directory name="wrappers">
|
||||
<file>bochs.c</file>
|
||||
<file>gdbstub.c</file>
|
||||
</directory>
|
||||
<file>kdinit.c</file>
|
||||
<file>kdio.c</file>
|
||||
<file>kdmain.c</file>
|
||||
</directory>
|
||||
<directory name="ldr">
|
||||
<file>loader.c</file>
|
||||
<file>rtl.c</file>
|
||||
</directory>
|
||||
<directory name="lpc">
|
||||
<file>close.c</file>
|
||||
<file>complete.c</file>
|
||||
<file>connect.c</file>
|
||||
<file>create.c</file>
|
||||
<file>listen.c</file>
|
||||
<file>port.c</file>
|
||||
<file>query.c</file>
|
||||
<file>queue.c</file>
|
||||
<file>receive.c</file>
|
||||
<file>reply.c</file>
|
||||
<file>send.c</file>
|
||||
</directory>
|
||||
<directory name="mm">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<file>memsafe.s</file>
|
||||
<file>page.c</file>
|
||||
<file>pfault.c</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>anonmem.c</file>
|
||||
<file>aspace.c</file>
|
||||
<file>balance.c</file>
|
||||
<file>cont.c</file>
|
||||
<file>drvlck.c</file>
|
||||
<file>freelist.c</file>
|
||||
<file>iospace.c</file>
|
||||
<file>kmap.c</file>
|
||||
<file>marea.c</file>
|
||||
<file>mdl.c</file>
|
||||
<file>mm.c</file>
|
||||
<file>process.c</file>
|
||||
<file>mminit.c</file>
|
||||
<file>mpw.c</file>
|
||||
<file>ncache.c</file>
|
||||
<file>npool.c</file>
|
||||
<file>pagefile.c</file>
|
||||
<file>pageop.c</file>
|
||||
<file>pager.c</file>
|
||||
<file>pagfault.c</file>
|
||||
<file>paging.c</file>
|
||||
<file>pe.c</file>
|
||||
<file>physical.c</file>
|
||||
<file>pool.c</file>
|
||||
<file>ppool.c</file>
|
||||
<file>region.c</file>
|
||||
<file>rmap.c</file>
|
||||
<file>section.c</file>
|
||||
<file>verifier.c</file>
|
||||
<file>virtual.c</file>
|
||||
<file>wset.c</file>
|
||||
<file>elf32.c</file>
|
||||
<file>elf64.c</file>
|
||||
</directory>
|
||||
<directory name="ob">
|
||||
<file>obdir.c</file>
|
||||
<file>obinit.c</file>
|
||||
<file>obhandle.c</file>
|
||||
<file>obname.c</file>
|
||||
<file>oblife.c</file>
|
||||
<file>obref.c</file>
|
||||
<file>sdcache.c</file>
|
||||
<file>obsecure.c</file>
|
||||
<file>symlink.c</file>
|
||||
<file>obwait.c</file>
|
||||
</directory>
|
||||
<directory name="po">
|
||||
<file>power.c</file>
|
||||
<file>events.c</file>
|
||||
</directory>
|
||||
<directory name="ps">
|
||||
<file>debug.c</file>
|
||||
<file>job.c</file>
|
||||
<file>kill.c</file>
|
||||
<file>notify.c</file>
|
||||
<file>process.c</file>
|
||||
<file>psmgr.c</file>
|
||||
<file>query.c</file>
|
||||
<file>quota.c</file>
|
||||
<file>security.c</file>
|
||||
<file>state.c</file>
|
||||
<file>thread.c</file>
|
||||
<file>win32.c</file>
|
||||
</directory>
|
||||
<directory name="rtl">
|
||||
<if property="ARCH" value="i386">
|
||||
<directory name="i386">
|
||||
<file>exception.c</file>
|
||||
<file>seh.s</file>
|
||||
</directory>
|
||||
</if>
|
||||
<file>libsupp.c</file>
|
||||
<file>misc.c</file>
|
||||
<file>nls.c</file>
|
||||
<file>regio.c</file>
|
||||
<file>strtok.c</file>
|
||||
</directory>
|
||||
<directory name="se">
|
||||
<file>access.c</file>
|
||||
<file>acl.c</file>
|
||||
<file>audit.c</file>
|
||||
<file>lsa.c</file>
|
||||
<file>luid.c</file>
|
||||
<file>priv.c</file>
|
||||
<file>sd.c</file>
|
||||
<file>semgr.c</file>
|
||||
<file>sid.c</file>
|
||||
<file>token.c</file>
|
||||
</directory>
|
||||
<directory name="vdm">
|
||||
<if property="ARCH" value="i386">
|
||||
<file>vdmmain.c</file>
|
||||
<file>vdmexec.c</file>
|
||||
</if>
|
||||
</directory>
|
||||
<directory name="wmi">
|
||||
<file>wmi.c</file>
|
||||
</directory>
|
||||
<file>ntoskrnl.rc</file>
|
||||
<linkerflag>-nostartfiles</linkerflag>
|
||||
<linkerflag>-nostdlib</linkerflag>
|
||||
<linkerflag>-lgcc</linkerflag>
|
||||
</module>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue