add_subdirectory(font)
add_subdirectory(miniport)
add_subdirectory(videoprt)
+add_subdirectory(watchdog)
+
return 0;
}
+_Function_class_(KDEFERRED_ROUTINE)
+VOID
+NTAPI
+WdDdiWatchdogDpcCallback(
+ _In_ PKDPC Dpc,
+ _In_opt_ PVOID DeferredContext,
+ _In_opt_ PVOID SystemArgument1,
+ _In_opt_ PVOID SystemArgument2)
+{
+ UNIMPLEMENTED;
+}
+
#ifdef _M_AMD64
UCHAR
NTAPI
@ stdcall VideoPortZeroMemory(ptr long) NTOSKRNL.RtlZeroMemory
@ stdcall VideoPortZeroDeviceMemory(ptr long) NTOSKRNL.RtlZeroMemory
@ stdcall VpNotifyEaData(ptr ptr)
+@ stdcall WdDdiWatchdogDpcCallback(ptr ptr ptr ptr)
--- /dev/null
+
+spec2def(watchdog.sys watchdog.spec)
+
+add_library(watchdog SHARED
+ watchdog.c
+ ${CMAKE_CURRENT_BINARY_DIR}/watchdog.def)
+
+set_module_type(watchdog kernelmodedriver)
+add_importlibs(watchdog ntoskrnl)
+
+add_cd_file(TARGET watchdog DESTINATION reactos/system32/drivers FOR all)
--- /dev/null
+
+#include <ntifs.h>
+
+#define NDEBUG
+#include <debug.h>
+
+extern char WatchdogPeHeader;
+void Fixup_WatchdogPeHeader(void);
+
+NTSTATUS
+NTAPI
+DriverEntry (
+ _In_ PDRIVER_OBJECT DriverObject,
+ _In_ PUNICODE_STRING RegistryPath)
+{
+ UNIMPLEMENTED;
+ return STATUS_SUCCESS;
+}
+
+VOID
+NTAPI
+WdAllocateWatchdog(
+ PVOID p1,
+ PVOID p2,
+ ULONG p3)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdAllocateDeferredWatchdog(
+ PVOID p1,
+ PVOID p2,
+ ULONG p3)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdFreeWatchdog(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdFreeDeferredWatchdog(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdStartWatch(
+ PVOID p1,
+ LARGE_INTEGER p2,
+ ULONG p3)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdStartDeferredWatch(
+ PVOID p1,
+ PVOID p2,
+ ULONG p3)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdStopWatch(
+ PVOID p1,
+ ULONG p2)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdStopDeferredWatch(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdSuspendWatch(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+FASTCALL
+WdSuspendDeferredWatch(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdResumeWatch(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+FASTCALL
+WdResumeDeferredWatch(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdResetWatch(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+FASTCALL
+WdResetDeferredWatch(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+FASTCALL
+WdEnterMonitoredSection(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+FASTCALL
+WdExitMonitoredSection(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdAttachContext(
+ PVOID p1,
+ PVOID p2)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdDetachContext(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdGetDeviceObject(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdGetLowestDeviceObject(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdGetLastEvent(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdCompleteEvent(
+ PVOID p1,
+ PVOID p2)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdReferenceObject(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WdDereferenceObject(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+}
+
+BOOLEAN
+NTAPI
+WdMadeAnyProgress(
+ PVOID p1)
+{
+ UNIMPLEMENTED;
+ return FALSE;
+}
+
+
+
+
+
+
+
+
--- /dev/null
+@ fastcall WdEnterMonitoredSection(ptr)
+@ fastcall WdExitMonitoredSection(ptr)
+@ fastcall WdResetDeferredWatch(ptr)
+@ fastcall WdResumeDeferredWatch(ptr ptr)
+@ fastcall WdSuspendDeferredWatch(ptr)
+@ stdcall WdAllocateDeferredWatchdog(ptr ptr long)
+@ stdcall WdAllocateWatchdog(ptr ptr long)
+@ stdcall WdAttachContext(ptr ptr)
+@ stdcall WdCompleteEvent(ptr ptr)
+@ stdcall WdDereferenceObject(ptr)
+@ stdcall WdDetachContext(ptr)
+@ stdcall WdFreeDeferredWatchdog(ptr)
+@ stdcall WdFreeWatchdog(ptr)
+@ stdcall WdGetDeviceObject(ptr)
+@ stdcall WdGetLastEvent(ptr)
+@ stdcall WdGetLowestDeviceObject(ptr)
+@ stdcall WdMadeAnyProgress(ptr)
+@ stdcall WdReferenceObject(ptr)
+@ stdcall WdResetWatch(ptr)
+@ stdcall WdResumeWatch(ptr ptr)
+@ stdcall WdStartDeferredWatch(ptr ptr long)
+@ stdcall WdStartWatch(ptr double ptr)
+@ stdcall WdStopDeferredWatch(ptr)
+@ stdcall WdStopWatch(ptr long)
+@ stdcall WdSuspendWatch(ptr)
-@ stdcall DxApi(long ptr long ptr long)
-@ stdcall DxApiGetVersion()
-;DxApiInitialize
-;DxAutoflipUpdate
-;DxEnableIRQ
-;DxLoseObject
-;DxUpdateCapture
-@ stdcall GsDriverEntry(ptr ptr)
+@ stdcall _DxApi@20(long ptr long ptr long) DxApi
+@ stdcall _DxApiGetVersion@0() DxApiGetVersion
+@ stdcall _DxApiInitialize@32(ptr ptr ptr ptr ptr ptr ptr ptr) DxApiInitialize
+@ stdcall _DxAutoflipUpdate@20(ptr ptr ptr ptr ptr) DxAutoflipUpdate
+@ stdcall _DxEnableIRQ@8(ptr ptr) DxEnableIRQ
+@ stdcall _DxLoseObject@8(ptr ptr) DxLoseObject
+@ stdcall _DxUpdateCapture@12(ptr ptr ptr) DxUpdateCapture
#include "dxapi_driver.h"
+#define NDEBU
+#include <debug.h>
+
NTSTATUS NTAPI
DriverEntry(IN PVOID Context1,
IN PVOID Context2)
{
- /*
+ /*
* NOTE this driver will never be load, it only contain export list
* to win32k eng functions
*/
return STATUS_SUCCESS;
}
-NTSTATUS NTAPI
-GsDriverEntry(IN PVOID Context1,
- IN PVOID Context2)
-{
- return DriverEntry(Context1, Context2);
-}
-
-
-
/*++
* @name DxApiGetVersion
* @implemented
*
* The function DxApiGetVersion return the dsound version, and it always return 4.02
*
-* @return
+* @return
* Always return 4.02
*
* @remarks.
*
*--*/
ULONG
-PASCAL
+NTAPI
DxApiGetVersion()
{
/* MSDN say this always return Direct Sound version 4.02 */
* @name DxApi
* @implemented
*
-* The function DxApi calls to diffent functions, follow functions
+* The function DxApi calls to diffent functions, follow functions
* are supported
* DxGetVersionNumber, DxCloseHandle, DxOpenDirectDraw, DxOpenSurface,
* DxOpenVideoPort, DxGetKernelCaps, DxGetFieldNumber, DxSetFieldNumber,
* DxSetSkipPattern, DxGetSurfaceState, DxSetSurfaceState, DxLock,
* DxFlipOverlay, DxFlipVideoPort, DxGetCurrentAutoflip, DxGetPreviousAutoflip,
* DxRegisterEvent, DxUnregisterEvent, DxGetPolarity, DxOpenVpCatureDevice,
-* DxAddVpCaptureBuffer, DxFlushVpCaptureBuffs
+* DxAddVpCaptureBuffer, DxFlushVpCaptureBuffs
*
* See ddkmapi.h as well
* Our size in bytes of the output buffer, rember wrong size will result in the function
* does not being call.
*
-* @return
-* Return Always 0.
+* @return
+* Return Always 0.
*
* @remarks.
* before call to any of this functions, do not forget set lpvOutBuffer->ddRVal = DDERR_GEN*,
*--*/
DWORD
-PASCAL
+NTAPI
DxApi(IN DWORD dwFunctionNum,
IN LPVOID lpvInBuffer,
IN DWORD cbInBuffer,
dwFunctionNum -= DD_FIRST_DXAPI;
- if ((lpvOutBuffer == NULL) ||
+ if ((lpvOutBuffer == NULL) ||
/*(dwFunctionNum < (DD_FIRST_DXAPI - DD_FIRST_DXAPI)) ||*/
(dwFunctionNum > (DD_DXAPI_FLUSHVPCAPTUREBUFFERS - DD_FIRST_DXAPI)) ||
(gDxApiEntryPoint[dwFunctionNum].pfn == NULL) ||
return 0;
}
+VOID
+NTAPI
+DxApiInitialize (
+ PVOID p1,
+ PVOID p2,
+ PVOID p3,
+ PVOID p4,
+ PVOID p5,
+ PVOID p6,
+ PVOID p7,
+ PVOID p8)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+DxAutoflipUpdate (
+ PVOID p1,
+ PVOID p2,
+ PVOID p3,
+ PVOID p4,
+ PVOID p5)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+DxEnableIRQ (
+ PVOID p1,
+ PVOID p2)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+DxLoseObject (
+ PVOID p1,
+ PVOID p2)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+DxUpdateCapture (
+ PVOID p1,
+ PVOID p2,
+ PVOID p3)
+{
+ UNIMPLEMENTED;
+}
+
+
/*++
* @name DxGetVersionNumber
* @implemented
*
* The function DxGetVersionNumber return dxapi interface version, that is 1.0
*
-* @return
+* @return
* Always return 1.0
*
* @remarks.