Author: tkreuzer Date: Sat May 10 17:19:53 2014 New Revision: 63222
URL: http://svn.reactos.org/svn/reactos?rev=63222&view=rev Log: [KMTEST] Add a temp hack that allows to compile kmtest_drv with either the current incompatible object type data imports or with the fixed ones
Modified: trunk/rostests/kmtests/npfs/NpfsHelpers.c trunk/rostests/kmtests/ntos_ex/ExFastMutex.c trunk/rostests/kmtests/ntos_ex/ExResource.c trunk/rostests/kmtests/ntos_io/IoCreateFile.c trunk/rostests/kmtests/ntos_ke/KeEvent.c trunk/rostests/kmtests/ntos_ke/KeGuardedMutex.c trunk/rostests/kmtests/ntos_mm/MmSection.c trunk/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c trunk/rostests/kmtests/ntos_mm/ZwCreateSection.c trunk/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c trunk/rostests/kmtests/ntos_ob/ObTypes.c
Modified: trunk/rostests/kmtests/npfs/NpfsHelpers.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/npfs/NpfsHelpers.c... ============================================================================== --- trunk/rostests/kmtests/npfs/NpfsHelpers.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/npfs/NpfsHelpers.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -742,7 +742,11 @@ { Status = ObReferenceObjectByHandle(ThreadHandle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else PsThreadType, +#endif KernelMode, &ThreadObject, NULL);
Modified: trunk/rostests/kmtests/ntos_ex/ExFastMutex.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_ex/ExFastMute... ============================================================================== --- trunk/rostests/kmtests/ntos_ex/ExFastMutex.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_ex/ExFastMutex.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -90,7 +90,7 @@ KmtSetIrql(OriginalIrql); CheckMutex(Mutex, 1L, NULL, 0LU, PASSIVE_LEVEL, OriginalIrql); } - + if (!KmtIsCheckedBuild) { /* release without acquire */ @@ -196,7 +196,13 @@ InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireMutexThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS);
return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout);
Modified: trunk/rostests/kmtests/ntos_ex/ExResource.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_ex/ExResource... ============================================================================== --- trunk/rostests/kmtests/ntos_ex/ExResource.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_ex/ExResource.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -268,7 +268,14 @@ InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireResourceThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + + KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS);
return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout);
Modified: trunk/rostests/kmtests/ntos_io/IoCreateFile.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_io/IoCreateFi... ============================================================================== --- trunk/rostests/kmtests/ntos_io/IoCreateFile.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_io/IoCreateFile.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -57,7 +57,11 @@ { Status = ObReferenceObjectByHandle(TargetHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif KernelMode, (PVOID *)&TargetFileObject, NULL); @@ -103,7 +107,11 @@ { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -173,7 +181,11 @@ { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -187,7 +199,11 @@ ok_eq_long(RtlCompareUnicodeString(&ParentFileObject->FileName, &TargetFileObject->FileName, FALSE), 0); Status = ObReferenceObjectByHandle(SystemRootHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif KernelMode, (PVOID *)&SystemRootFileObject, NULL); @@ -240,7 +256,12 @@ { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif + KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -302,7 +323,12 @@ { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif + KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -316,7 +342,12 @@ ok_eq_long(RtlCompareUnicodeString(&ParentFileObject->FileName, &TargetFileObject->FileName, FALSE), 0); Status = ObReferenceObjectByHandle(SystemRootHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif + KernelMode, (PVOID *)&SystemRootFileObject, NULL); @@ -534,7 +565,11 @@ /* Then, just wait on our thread to finish */ Status = ObReferenceObjectByHandle(ThreadHandle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else PsThreadType, +#endif KernelMode, &ThreadObject, NULL);
Modified: trunk/rostests/kmtests/ntos_ke/KeEvent.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_ke/KeEvent.c?... ============================================================================== --- trunk/rostests/kmtests/ntos_ke/KeEvent.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_ke/KeEvent.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -169,7 +169,13 @@ Threads[i].Signal = FALSE; Status = PsCreateSystemThread(&Threads[i].Handle, GENERIC_ALL, NULL, NULL, NULL, WaitForEventThread, &Threads[i]); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&Threads[i].Thread, NULL); + Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, (PVOID *)&Threads[i].Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ThreadObjects[i] = Threads[i].Thread; Priority = KeQueryPriorityThread(Threads[i].Thread);
Modified: trunk/rostests/kmtests/ntos_ke/KeGuardedMutex.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_ke/KeGuardedM... ============================================================================== --- trunk/rostests/kmtests/ntos_ke/KeGuardedMutex.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_ke/KeGuardedMutex.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -204,7 +204,13 @@ InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireMutexThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS);
return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout);
Modified: trunk/rostests/kmtests/ntos_mm/MmSection.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_mm/MmSection.... ============================================================================== --- trunk/rostests/kmtests/ntos_mm/MmSection.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_mm/MmSection.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -428,7 +428,13 @@
if (!skip(Status == STATUS_SUCCESS && FileHandle1 != NULL, "Failed to open file 1\n")) { - Status = ObReferenceObjectByHandle(FileHandle1, FILE_READ_DATA | FILE_WRITE_DATA, IoFileObjectType, KernelMode, (PVOID *)&FileObject1, NULL); + Status = ObReferenceObjectByHandle(FileHandle1, FILE_READ_DATA | FILE_WRITE_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else + IoFileObjectType, +#endif + KernelMode, (PVOID *)&FileObject1, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ok(FileObject1 != NULL, "FileObject1 is NULL\n"); CheckObject(FileHandle1, 3L, 1L); @@ -436,7 +442,13 @@
if (!skip(Status == STATUS_SUCCESS && FileHandle2 != NULL, "Failed to open file 2\n")) { - Status = ObReferenceObjectByHandle(FileHandle2, FILE_READ_DATA | FILE_WRITE_DATA, IoFileObjectType, KernelMode, (PVOID *)&FileObject2, NULL); + Status = ObReferenceObjectByHandle(FileHandle2, FILE_READ_DATA | FILE_WRITE_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else + IoFileObjectType, +#endif + KernelMode, (PVOID *)&FileObject2, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ok(FileObject2 != NULL, "FileObject2 is NULL\n"); }
Modified: trunk/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_mm/ZwAllocate... ============================================================================== --- trunk/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -437,7 +437,13 @@ goto cleanup; }
- Status = ObReferenceObjectByHandle(Thread1, THREAD_ALL_ACCESS, PsThreadType, KernelMode, &ThreadObjects[0], NULL); + Status = ObReferenceObjectByHandle(Thread1, THREAD_ALL_ACCESS, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, &ThreadObjects[0], NULL); if (!NT_SUCCESS(Status)) { trace("error referencing thread1\n"); @@ -451,7 +457,13 @@ goto cleanup; }
- Status = ObReferenceObjectByHandle(Thread2, THREAD_ALL_ACCESS, PsThreadType, KernelMode, &ThreadObjects[1], NULL); + Status = ObReferenceObjectByHandle(Thread2, THREAD_ALL_ACCESS, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, &ThreadObjects[1], NULL); if (!NT_SUCCESS(Status)) { trace("error referencing thread2\n");
Modified: trunk/rostests/kmtests/ntos_mm/ZwCreateSection.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_mm/ZwCreateSe... ============================================================================== --- trunk/rostests/kmtests/ntos_mm/ZwCreateSection.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_mm/ZwCreateSection.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -464,7 +464,13 @@ /* FIXME: Null pointer dereference. See ROSTESTS-108 */ #ifdef ROSTESTS_108_FIXED //mimic lack of section support for a particular file as well. - Status = ObReferenceObjectByHandle(FileHandle, STANDARD_RIGHTS_ALL, IoFileObjectType, KernelMode, (PVOID *)&FileObject, NULL); + Status = ObReferenceObjectByHandle(FileHandle, STANDARD_RIGHTS_ALL, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else + IoFileObjectType, +#endif + KernelMode, (PVOID *)&FileObject, NULL); if (!skip(NT_SUCCESS(Status), "Cannot reference object by handle\n")) { PSECTION_OBJECT_POINTERS Pointers = FileObject->SectionObjectPointer;
Modified: trunk/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_mm/ZwMapViewO... ============================================================================== --- trunk/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -390,7 +390,13 @@ Status = PsCreateSystemThread(&SysThreadHandle, STANDARD_RIGHTS_ALL, &ObjectAttributes, NULL, NULL, SystemProcessWorker, NULL); if (!skip(NT_SUCCESS(Status), "Error creating System thread. Error = %p\n", Status)) { - Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, PsThreadType, KernelMode, &ThreadObject, NULL); + Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, &ThreadObject, NULL); if (!skip(NT_SUCCESS(Status), "Error getting reference to System thread when testing file-backed section\n")) { //wait until the system thread actually terminates @@ -515,7 +521,13 @@
if (!skip(NT_SUCCESS(Status), "Error creating System thread. Error = %p\n", Status)) { - Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, PsThreadType, KernelMode, &ThreadObject, NULL); + Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, &ThreadObject, NULL); if (!skip(NT_SUCCESS(Status), "Error getting reference to System thread when testing pagefile-backed section\n")) { //wait until the system thread actually terminates
Modified: trunk/rostests/kmtests/ntos_ob/ObTypes.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_ob/ObTypes.c?... ============================================================================== --- trunk/rostests/kmtests/ntos_ob/ObTypes.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_ob/ObTypes.c [iso-8859-1] Sat May 10 17:19:53 2014 @@ -164,6 +164,40 @@ SeDefaultObjectMethod = ObpTypeObjectType->TypeInfo.SecurityProcedure; ok(SeDefaultObjectMethod != NULL, "No SeDefaultObjectMethod\n");
+#ifdef _PROPER_NT_EXPORTS +#define ExSemaphoreObjectType *ExSemaphoreObjectType +#define SeTokenObjectType *SeTokenObjectType +#define PsProcessType *PsProcessType +#define PsThreadType *PsThreadType +#define ExEventObjectType *ExEventObjectType +#define IoFileObjectType *IoFileObjectType +#endif +#ifdef _PROPER_NT_NDK_EXPORTS +#define ObpTypeObjectType *ObpTypeObjectType +#define ObpDirectoryObjectType *ObpDirectoryObjectType +#define ObpSymbolicLinkObjectType *ObpSymbolicLinkObjectType +#define PsJobType *PsJobType +#define DbgkDebugObjectType *DbgkDebugObjectType +#define ExEventPairObjectType *ExEventPairObjectType +#define ExMutantObjectType *ExMutantObjectType +#define ExCallbackObjectType *ExCallbackObjectType +#define ExTimerObjectType *ExTimerObjectType +#define ExProfileObjectType *ExProfileObjectType +#define ExpKeyedEventObjectType *ExpKeyedEventObjectType +#define ExWindowStationObjectType *ExWindowStationObjectType +#define ExDesktopObjectType *ExDesktopObjectType +#define MmSectionObjectType *MmSectionObjectType +#define CmpKeyObjectType *CmpKeyObjectType +#define LpcPortObjectType *LpcPortObjectType +#define LpcWaitablePortObjectType *LpcWaitablePortObjectType +#define IoAdapterObjectType *IoAdapterObjectType +#define IoControllerObjectType *IoControllerObjectType +#define IoDeviceObjectType *IoDeviceObjectType +#define IoDriverObjectType *IoDriverObjectType +#define IoCompletionObjectType *IoCompletionObjectType +#define WmipGuidObjectType *WmipGuidObjectType +#endif + Index = 1; CheckObjectType(Type, ObpTypeObjectType, OBT_MAINTAIN_TYPE_LIST | OBT_CUSTOM_KEY, 0x100, 0x020000, 0x020000, 0x020000, 0x0f0001, 0x1f0001); ok_eq_hex(ObpTypeObjectType->Key, TAG('ObjT'));