[NTOS] STUB ALL THE EXPORTS. We should now have all the exports expected by a 2k3-ish kernel (except for a few amd64-specific ones). Add some missing explicit cdecl to the Verifier stubs, and don't return STATUS_SUCCESS (0) from the ABIOS stubs.

[NDK] Add a few types needed by the PfxXxx routines.

This should fix absolutely nothing.

svn path=/trunk/; revision=69128
This commit is contained in:
Stefan Ginsberg 2015-09-08 20:14:39 +00:00
parent c6a13942f0
commit 900d67c9f9
14 changed files with 441 additions and 37 deletions

View file

@ -834,6 +834,27 @@ typedef struct _UNICODE_PREFIX_TABLE
PUNICODE_PREFIX_TABLE_ENTRY LastNextEntry;
} UNICODE_PREFIX_TABLE, *PUNICODE_PREFIX_TABLE;
#ifdef NTOS_MODE_USER
//
// Pfx* routines' table structures
//
typedef struct _PREFIX_TABLE_ENTRY
{
CSHORT NodeTypeCode;
CSHORT NameLength;
struct _PREFIX_TABLE_ENTRY *NextPrefixTree;
RTL_SPLAY_LINKS Links;
PSTRING Prefix;
} PREFIX_TABLE_ENTRY, *PPREFIX_TABLE_ENTRY;
typedef struct _PREFIX_TABLE
{
CSHORT NodeTypeCode;
CSHORT NameLength;
PPREFIX_TABLE_ENTRY NextPrefixTree;
} PREFIX_TABLE, *PPREFIX_TABLE;
#endif
//
// Time Structure for RTL Time calls
//
@ -1607,6 +1628,12 @@ typedef struct _STACK_TRACE_DATABASE
RTL_CRITICAL_SECTION CriticalSection;
} STACK_TRACE_DATABASE, *PSTACK_TRACE_DATABASE;
//
// Trace Database
//
typedef ULONG (NTAPI *RTL_TRACE_HASH_FUNCTION) (ULONG Count, PVOID *Trace);
typedef struct _RTL_TRACE_BLOCK
{
ULONG Magic;
@ -1619,6 +1646,50 @@ typedef struct _RTL_TRACE_BLOCK
PVOID *Trace;
} RTL_TRACE_BLOCK, *PRTL_TRACE_BLOCK;
typedef struct _RTL_TRACE_DATABASE
{
ULONG Magic;
ULONG Flags;
ULONG Tag;
struct _RTL_TRACE_SEGMENT *SegmentList;
SIZE_T MaximumSize;
SIZE_T CurrentSize;
PVOID Owner;
#ifdef NTOS_MODE_USER
RTL_CRITICAL_SECTION Lock;
#else
union
{
KSPIN_LOCK SpinLock;
FAST_MUTEX FastMutex;
} u;
#endif
ULONG NoOfBuckets;
struct _RTL_TRACE_BLOCK **Buckets;
RTL_TRACE_HASH_FUNCTION HashFunction;
SIZE_T NoOfTraces;
SIZE_T NoOfHits;
ULONG HashCounter[16];
} RTL_TRACE_DATABASE, *PRTL_TRACE_DATABASE;
typedef struct _RTL_TRACE_SEGMENT
{
ULONG Magic;
struct _RTL_TRACE_DATABASE *Database;
struct _RTL_TRACE_SEGMENT *NextSegment;
SIZE_T TotalSize;
PCHAR SegmentStart;
PCHAR SegmentEnd;
PCHAR SegmentFree;
} RTL_TRACE_SEGMENT, *PRTL_TRACE_SEGMENT;
typedef struct _RTL_TRACE_ENUMERATE
{
struct _RTL_TRACE_DATABASE *Database;
ULONG Index;
struct _RTL_TRACE_BLOCK *Block;
} RTL_TRACE_ENUMERATE, * PRTL_TRACE_ENUMERATE;
//
// Auto-Managed Rtl* String Buffer
//

View file

@ -42,6 +42,7 @@ list(APPEND SOURCE
nls.c
path.c
ppb.c
prefix.c
priv.c
process.c
propvar.c
@ -61,6 +62,7 @@ list(APPEND SOURCE
time.c
timezone.c
timerqueue.c
trace.c
unicode.c
unicodeprefix.c
vectoreh.c

47
reactos/lib/rtl/prefix.c Normal file
View file

@ -0,0 +1,47 @@
/*
* PROJECT: ReactOS Run-Time Library
* LICENSE: BSD - See COPYING.ARM in the top level directory
* PURPOSE: Rtl Prefix Routines
*/
/* INCLUDES *******************************************************************/
#include <rtl.h>
#define NDEBUG
#include <debug.h>
/* FUNCTIONS ******************************************************************/
VOID
NTAPI
PfxInitialize(IN PPREFIX_TABLE PrefixTable)
{
UNIMPLEMENTED;
}
BOOLEAN
NTAPI
PfxInsertPrefix(IN PPREFIX_TABLE PrefixTable,
IN PSTRING Prefix,
IN PPREFIX_TABLE_ENTRY PrefixTableEntry)
{
UNIMPLEMENTED;
return FALSE;
}
VOID
NTAPI
PfxRemovePrefix(IN PPREFIX_TABLE PrefixTable,
IN PPREFIX_TABLE_ENTRY PrefixTableEntry)
{
UNIMPLEMENTED;
}
PPREFIX_TABLE_ENTRY
NTAPI
PfxFindPrefix(IN PPREFIX_TABLE PrefixTable,
IN PSTRING FullName)
{
UNIMPLEMENTED;
return FALSE;
}

90
reactos/lib/rtl/trace.c Normal file
View file

@ -0,0 +1,90 @@
/*
* PROJECT: ReactOS Run-Time Library
* LICENSE: BSD - See COPYING.ARM in the top level directory
* PURPOSE: Rtl Trace Routines
*/
/* INCLUDES *******************************************************************/
#include <rtl.h>
#define NDEBUG
#include <debug.h>
/* FUNCTIONS ******************************************************************/
BOOLEAN
NTAPI
RtlTraceDatabaseAdd(IN PRTL_TRACE_DATABASE Database,
IN ULONG Count,
IN PVOID *Trace,
OUT OPTIONAL PRTL_TRACE_BLOCK *TraceBlock)
{
UNIMPLEMENTED;
return FALSE;
}
PRTL_TRACE_DATABASE
NTAPI
RtlTraceDatabaseCreate(IN ULONG Buckets,
IN OPTIONAL SIZE_T MaximumSize,
IN ULONG Flags,
IN ULONG Tag,
IN OPTIONAL RTL_TRACE_HASH_FUNCTION HashFunction)
{
UNIMPLEMENTED;
return NULL;
}
BOOLEAN
NTAPI
RtlTraceDatabaseDestroy(IN PRTL_TRACE_DATABASE Database)
{
UNIMPLEMENTED;
return FALSE;
}
BOOLEAN
NTAPI
RtlTraceDatabaseEnumerate(IN PRTL_TRACE_DATABASE Database,
IN PRTL_TRACE_ENUMERATE TraceEnumerate,
IN OUT PRTL_TRACE_BLOCK *TraceBlock)
{
UNIMPLEMENTED;
return FALSE;
}
BOOLEAN
NTAPI
RtlTraceDatabaseFind(IN PRTL_TRACE_DATABASE Database,
IN ULONG Count,
IN PVOID *Trace,
OUT OPTIONAL PRTL_TRACE_BLOCK *TraceBlock)
{
UNIMPLEMENTED;
return FALSE;
}
BOOLEAN
NTAPI
RtlTraceDatabaseLock(IN PRTL_TRACE_DATABASE Database)
{
UNIMPLEMENTED;
return FALSE;
}
BOOLEAN
NTAPI
RtlTraceDatabaseUnlock(IN PRTL_TRACE_DATABASE Database)
{
UNIMPLEMENTED;
return FALSE;
}
BOOLEAN
NTAPI
RtlTraceDatabaseValidate(IN PRTL_TRACE_DATABASE Database)
{
UNIMPLEMENTED;
return FALSE;
}

View file

@ -15,6 +15,16 @@
/* FUNCTIONS *****************************************************************/
NTSTATUS
NTAPI
XIPDispatch(IN ULONG DispatchCode,
OUT PVOID Buffer,
IN ULONG BufferSize)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
PMEMORY_ALLOCATION_DESCRIPTOR
NTAPI
INIT_FUNCTION

View file

@ -24,7 +24,7 @@ KeI386FlatToGdtSelector(IN ULONG Base,
IN USHORT Selector)
{
UNIMPLEMENTED;
return 0;
return STATUS_NOT_IMPLEMENTED;
}
/*
@ -36,7 +36,7 @@ KeI386ReleaseGdtSelectors(OUT PULONG SelArray,
IN ULONG NumOfSelectors)
{
UNIMPLEMENTED;
return 0;
return STATUS_NOT_IMPLEMENTED;
}
/*
@ -46,9 +46,68 @@ NTSTATUS
NTAPI
KeI386AllocateGdtSelectors(OUT PULONG SelArray,
IN ULONG NumOfSelectors)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
KeI386SetGdtSelector(IN ULONG Selector,
IN PKGDTENTRY GdtValue)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
KeI386AbiosCall(IN USHORT CallId,
IN PDRIVER_OBJECT DriverObject,
IN PULONG RequestBlock,
IN USHORT EntryPoint)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
KeI386GetLid(IN USHORT DeviceId,
IN USHORT RelativeLid,
IN BOOLEAN SharedLid,
IN PDRIVER_OBJECT DriverObject,
OUT PUSHORT LogicalId)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
KeI386ReleaseLid(IN USHORT LogicalId,
IN PDRIVER_OBJECT DriverObject)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
USHORT
NTAPI
KeI386Call16BitCStyleFunction(IN ULONG EntryOffset,
IN ULONG EntrySelector,
IN PULONG Parameters,
IN ULONG Size)
{
UNIMPLEMENTED;
return 0;
}
VOID
NTAPI
KeI386Call16BitFunction(IN OUT PCONTEXT Context)
{
UNIMPLEMENTED;
}
/* EOF */

View file

@ -1740,6 +1740,13 @@ ExitCall:
KiServiceExit(TrapFrame, Result);
}
VOID
FASTCALL
KiCheckForSListAddress(IN PKTRAP_FRAME TrapFrame)
{
UNIMPLEMENTED;
}
/*
* @implemented
*/

View file

@ -267,6 +267,14 @@ Quickie:
/* PUBLIC FUNCTIONS **********************************************************/
BOOLEAN
NTAPI
KeIsWaitListEmpty(IN PVOID Object)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @implemented
*/

View file

@ -265,4 +265,13 @@ MmUnmapVideoDisplay(IN PVOID BaseAddress,
MmUnmapIoSpace(BaseAddress, NumberOfBytes);
}
LOGICAL
NTAPI
MmIsIoSpaceActive(IN PHYSICAL_ADDRESS StartAddress,
IN SIZE_T NumberOfBytes)
{
UNIMPLEMENTED;
return FALSE;
}
/* EOF */

View file

@ -260,4 +260,12 @@ MmQuerySystemSize(VOID)
return MmSystemSize;
}
NTSTATUS
NTAPI
MmCreateMirror(VOID)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */

View file

@ -590,16 +590,16 @@
@ stdcall KeGetCurrentThread()
@ stdcall KeGetPreviousMode()
@ stdcall KeGetRecommendedSharedDataAlignment()
; -arch=i386 KeI386AbiosCall
@ stdcall -arch=i386 KeI386AbiosCall(long ptr ptr long)
@ stdcall -arch=i386 KeI386AllocateGdtSelectors(ptr long)
; -arch=i386 KeI386Call16BitCStyleFunction
; -arch=i386 KeI386Call16BitFunction
@ stdcall -arch=i386 KeI386Call16BitCStyleFunction(long long ptr long)
@ stdcall -arch=i386 KeI386Call16BitFunction(ptr)
@ stdcall -arch=i386 KeI386FlatToGdtSelector(long long long)
; -arch=i386 KeI386GetLid
@ stdcall -arch=i386 KeI386GetLid(long long long ptr ptr)
@ extern -arch=i386 KeI386MachineType
@ stdcall -arch=i386 KeI386ReleaseGdtSelectors(ptr long)
; -arch=i386 KeI386ReleaseLid
; -arch=i386 KeI386SetGdtSelector
@ stdcall -arch=i386 KeI386ReleaseLid(long ptr)
@ stdcall -arch=i386 KeI386SetGdtSelector(long ptr)
@ stdcall KeInitializeApc(ptr ptr long ptr ptr ptr long ptr)
@ stdcall KeInitializeCrashDumpHeader(long long ptr long ptr)
@ stdcall KeInitializeDeviceQueue(ptr)
@ -625,7 +625,7 @@
@ stdcall KeIpiGenericCall(ptr ptr)
@ stdcall KeIsAttachedProcess()
@ stdcall -arch=i386,arm KeIsExecutingDpc()
;KeIsWaitListEmpty
@ stdcall KeIsWaitListEmpty(ptr)
;@ cdecl -arch=x86_64 KeLastBranchMSR()
@ stdcall KeLeaveCriticalRegion() _KeLeaveCriticalRegion
@ stdcall KeLeaveGuardedRegion() _KeLeaveGuardedRegion
@ -725,7 +725,7 @@
@ fastcall -arch=i386,arm KiAcquireSpinLock(ptr)
@ extern KiBugCheckData
@ stdcall KiCheckForKernelApcDelivery()
;-arch=i386,arm KiCheckForSListAddress
@ fastcall -arch=i386,arm KiCheckForSListAddress(ptr)
@ stdcall -arch=i386 KiCoprocessorError()
;@ cdecl -arch=x86_64 KiCpuId()
@ stdcall -arch=i386,arm KiDeliverApc(long ptr ptr)
@ -763,7 +763,7 @@
@ stdcall MmCanFileBeTruncated(ptr ptr)
@ stdcall MmCommitSessionMappedView(ptr ptr)
@ stdcall MmCreateMdl(ptr ptr long)
;MmCreateMirror
@ stdcall MmCreateMirror()
@ stdcall MmCreateSection(ptr long ptr ptr long long ptr ptr)
@ stdcall MmDisableModifiedWriteOfSection(long)
@ stdcall MmFlushImageSection(ptr long)
@ -781,7 +781,7 @@
@ extern MmHighestUserAddress
@ stdcall MmIsAddressValid(ptr)
@ stdcall MmIsDriverVerifying(ptr)
;MmIsIoSpaceActive
@ stdcall MmIsIoSpaceActive(long long ptr)
@ stdcall MmIsNonPagedSystemAddressValid(ptr)
@ stdcall MmIsRecursiveIoFault()
@ stdcall MmIsThisAnNtAsSystem()
@ -926,10 +926,10 @@
@ stdcall ObSetSecurityObjectByPointer(ptr long ptr)
@ fastcall ObfDereferenceObject(ptr)
@ fastcall ObfReferenceObject(ptr)
;PfxFindPrefix
;PfxInitialize
;PfxInsertPrefix
;PfxRemovePrefix
@ stdcall PfxFindPrefix(ptr ptr)
@ stdcall PfxInitialize(ptr)
@ stdcall PfxInsertPrefix(ptr ptr ptr)
@ stdcall PfxRemovePrefix(ptr ptr)
@ stdcall PoCallDriver(ptr ptr)
@ stdcall PoCancelDeviceNotify(ptr)
@ stdcall PoQueueShutdownWorkItem(ptr)
@ -1040,7 +1040,7 @@
@ stdcall PsSetThreadWin32Thread(ptr ptr ptr)
@ stdcall PsTerminateSystemThread(long)
@ extern PsThreadType
;PsWrapApcWow64Thread
@ stdcall PsWrapApcWow64Thread(ptr ptr)
@ stdcall -arch=i386,arm READ_REGISTER_BUFFER_UCHAR(ptr ptr long)
@ stdcall -arch=i386,arm READ_REGISTER_BUFFER_ULONG(ptr ptr long)
@ stdcall -arch=i386,arm READ_REGISTER_BUFFER_USHORT(ptr ptr long)
@ -1290,14 +1290,14 @@
@ stdcall RtlTimeToSecondsSince1970(ptr ptr)
@ stdcall RtlTimeToSecondsSince1980(ptr ptr)
@ stdcall RtlTimeToTimeFields(ptr ptr)
;RtlTraceDatabaseAdd
;RtlTraceDatabaseCreate
;RtlTraceDatabaseDestroy
;RtlTraceDatabaseEnumerate
;RtlTraceDatabaseFind
;RtlTraceDatabaseLock
;RtlTraceDatabaseUnlock
;RtlTraceDatabaseValidate
@ stdcall RtlTraceDatabaseAdd(ptr long ptr ptr)
@ stdcall RtlTraceDatabaseCreate(long ptr long long ptr)
@ stdcall RtlTraceDatabaseDestroy(ptr)
@ stdcall RtlTraceDatabaseEnumerate(ptr ptr ptr)
@ stdcall RtlTraceDatabaseFind(ptr long ptr ptr)
@ stdcall RtlTraceDatabaseLock(ptr)
@ stdcall RtlTraceDatabaseUnlock(ptr)
@ stdcall RtlTraceDatabaseValidate(ptr)
@ fastcall -arch=i386,arm RtlUlongByteSwap(long)
@ fastcall -arch=i386,arm RtlUlonglongByteSwap(long long)
@ stdcall RtlUnicodeStringToAnsiSize(ptr) RtlxUnicodeStringToAnsiSize
@ -1394,7 +1394,7 @@
@ stdcall SeValidSecurityDescriptor(long ptr)
@ stdcall VerSetConditionMask(long long long long)
@ cdecl VfFailDeviceNode(ptr long long long ptr ptr ptr)
;VfFailDriver
@ cdecl VfFailDriver(long long long ptr ptr ptr)
@ cdecl VfFailSystemBIOS(long long long ptr ptr ptr)
@ stdcall VfIsVerificationEnabled(long ptr)
@ stdcall -arch=i386,arm WRITE_REGISTER_BUFFER_UCHAR(ptr ptr long)
@ -1403,17 +1403,17 @@
@ stdcall -arch=i386,arm WRITE_REGISTER_UCHAR(ptr long)
@ stdcall -arch=i386,arm WRITE_REGISTER_ULONG(ptr long)
@ stdcall -arch=i386,arm WRITE_REGISTER_USHORT(ptr long)
;WmiFlushTrace
;WmiGetClock
;WmiQueryTrace
@ stdcall WmiFlushTrace(ptr)
@ stdcall WmiGetClock(long ptr)
@ stdcall WmiQueryTrace(ptr)
@ stdcall WmiQueryTraceInformation(long ptr long ptr ptr)
;WmiStartTrace
;WmiStopTrace
;WmiTraceFastEvent
@ stdcall WmiStartTrace(ptr)
@ stdcall WmiStopTrace(ptr)
@ stdcall WmiTraceFastEvent(ptr)
@ cdecl WmiTraceMessage()
@ stdcall WmiTraceMessageVa(double long ptr long long)
;WmiUpdateTrace
;XIPDispatch
@ stdcall WmiUpdateTrace(ptr)
@ stdcall XIPDispatch(long ptr long)
@ stdcall ZwAccessCheckAndAuditAlarm(ptr ptr ptr ptr ptr long ptr long ptr ptr ptr)
@ stdcall ZwAddBootEntry(ptr long)
@ stdcall ZwAddDriverEntry(ptr long)
@ -1542,9 +1542,9 @@
@ cdecl -arch=arm __jump_unwind()
@ cdecl -arch=x86_64 __chkstk()
;@ cdecl -arch=x86_64 __misaligned_access()
;@ cdecl -arch=i386 _CIcos
;@ cdecl -arch=i386 _CIsin
;@ cdecl -arch=i386 _CIsqrt
@ cdecl -arch=i386 _CIcos()
@ cdecl -arch=i386 _CIsin()
@ cdecl -arch=i386 _CIsqrt()
@ cdecl -arch=i386,arm _abnormal_termination()
@ cdecl -arch=i386 _alldiv()
@ cdecl -arch=i386 _alldvrm()

View file

@ -927,6 +927,15 @@ PsSetThreadWin32Thread(
}
}
NTSTATUS
NTAPI
PsWrapApcWow64Thread(IN OUT PVOID *ApcContext,
IN OUT PVOID *ApcRoutine)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
NtCreateThread(OUT PHANDLE ThreadHandle,

View file

@ -30,6 +30,7 @@ VfIsVerificationEnabled(IN VF_OBJECT_TYPE VfObjectType,
* @unimplemented
*/
VOID
__cdecl
VfFailDeviceNode(IN PDEVICE_OBJECT PhysicalDeviceObject,
IN ULONG BugCheckMajorCode,
IN ULONG BugCheckMinorCode,
@ -46,6 +47,7 @@ VfFailDeviceNode(IN PDEVICE_OBJECT PhysicalDeviceObject,
* @unimplemented
*/
VOID
__cdecl
VfFailSystemBIOS(IN ULONG BugCheckMajorCode,
IN ULONG BugCheckMinorCode,
IN VF_FAILURE_CLASS FailureClass,
@ -57,4 +59,17 @@ VfFailSystemBIOS(IN ULONG BugCheckMajorCode,
UNIMPLEMENTED;
}
VOID
__cdecl
VfFailDriver(IN ULONG BugCheckMajorCode,
IN ULONG BugCheckMinorCode,
IN VF_FAILURE_CLASS FailureClass,
IN OUT PULONG AssertionControl,
IN PSTR DebuggerMessageText,
IN PSTR ParameterFormatString,
...)
{
UNIMPLEMENTED;
}
/* EOF */

View file

@ -19,6 +19,18 @@
#define NDEBUG
#include <debug.h>
typedef PVOID PWMI_LOGGER_INFORMATION; // FIXME
typedef enum _WMI_CLOCK_TYPE
{
WMICT_DEFAULT,
WMICT_SYSTEMTIME,
WMICT_PERFCOUNTER,
WMICT_PROCESS,
WMICT_THREAD,
WMICT_CPUCYCLE
} WMI_CLOCK_TYPE;
/* FUNCTIONS *****************************************************************/
BOOLEAN
@ -349,6 +361,63 @@ WmiTraceMessageVa(IN TRACEHANDLE LoggerHandle,
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
WmiFlushTrace(IN OUT PWMI_LOGGER_INFORMATION LoggerInfo)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
LONG64
FASTCALL
WmiGetClock(IN WMI_CLOCK_TYPE ClockType,
IN PVOID Context)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
WmiQueryTrace(IN OUT PWMI_LOGGER_INFORMATION LoggerInfo)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
WmiStartTrace(IN OUT PWMI_LOGGER_INFORMATION LoggerInfo)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
WmiStopTrace(IN PWMI_LOGGER_INFORMATION LoggerInfo)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
FASTCALL
WmiTraceFastEvent(IN PWNODE_HEADER Wnode)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
WmiUpdateTrace(IN OUT PWMI_LOGGER_INFORMATION LoggerInfo)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/*
* @unimplemented
*/