[WDF] Add Windows Driver Framework files
[reactos.git] / sdk / lib / drivers / wdf / shared / primitives / km / mxgeneralkm.cpp
diff --git a/sdk/lib/drivers/wdf/shared/primitives/km/mxgeneralkm.cpp b/sdk/lib/drivers/wdf/shared/primitives/km/mxgeneralkm.cpp
new file mode 100644 (file)
index 0000000..4b609c9
--- /dev/null
@@ -0,0 +1,58 @@
+//
+//    Copyright (C) Microsoft.  All rights reserved.
+//
+#include "Mx.h"
+
+VOID
+Mx::MxDbgPrint(
+    __drv_formatString(printf)
+    __in PCSTR DebugMessage,
+    ...
+    )
+{
+#if DBG
+
+#define         TEMP_BUFFER_SIZE        1024
+    va_list     list;
+    CHAR        debugMessageBuffer[TEMP_BUFFER_SIZE];
+    NTSTATUS    status;
+
+    va_start(list, DebugMessage);
+
+    if (DebugMessage) {
+
+        //
+        // Using new safe string functions instead of _vsnprintf.
+        // This function takes care of NULL terminating if the message
+        // is longer than the buffer.
+        //
+        status = RtlStringCbVPrintfA( debugMessageBuffer,
+                                      sizeof(debugMessageBuffer),
+                                      DebugMessage,
+                                      list );
+        if(!NT_SUCCESS(status)) {
+
+            DbgPrint ("WDF DbgPrint: Unable to expand: %s", DebugMessage);
+        }
+        else {
+            DbgPrint("%s", debugMessageBuffer);
+        }
+    }
+    va_end(list);
+
+#else
+    UNREFERENCED_PARAMETER(DebugMessage);
+#endif
+    return;
+}
+
+
+VOID
+Mx::MxGlobalInit(
+    VOID
+    )
+{
+    //
+    // Global initialization for kernel-mode primitives
+    //
+}