- Set the resource pointer back to the start of the list before looping a second...
authorCameron Gutman <aicommander@gmail.com>
Wed, 17 Mar 2010 09:25:07 +0000 (09:25 +0000)
committerCameron Gutman <aicommander@gmail.com>
Wed, 17 Mar 2010 09:25:07 +0000 (09:25 +0000)
 - Remove the duplicate OSL
 - Disable more debug prints
 - ROS with ACPI has been booted successfully on VirtualBox (with additions), QEMU, and VMware

svn path=/trunk/; revision=46242

reactos/drivers/bus/acpi/acpica/acpica.rbuild
reactos/drivers/bus/acpi/acpica/osl/osl.c [deleted file]
reactos/drivers/bus/acpi/buspdo.c
reactos/drivers/bus/acpi/osl.c

index b23eed8..ce6fee8 100644 (file)
@@ -83,9 +83,6 @@
                <file>nsxfname.c</file>
                <file>nsxfobj.c</file>
        </directory>
-       <!--directory name="osl">
-               <file>osl.c</file>
-       </directory-->
        <directory name="parser">
                <file>psargs.c</file>
                <file>psloop.c</file>
diff --git a/reactos/drivers/bus/acpi/acpica/osl/osl.c b/reactos/drivers/bus/acpi/acpica/osl/osl.c
deleted file mode 100644 (file)
index a8c240a..0000000
+++ /dev/null
@@ -1,751 +0,0 @@
-/*******************************************************************************
-*                                                                              *
-* ACPI Component Architecture Operating System Layer (OSL) for ReactOS         *
-*                                                                              *
-*******************************************************************************/
-
-#include <acpi.h>
-
-#define NDEBUG
-#include <debug.h>
-
-#define NUM_SEMAPHORES      128
-
-static PKINTERRUPT AcpiInterrupt;
-static BOOLEAN AcpiInterruptHandlerRegistered = FALSE;
-static ACPI_OSD_HANDLER AcpiIrqHandler = NULL;
-static PVOID AcpiIrqContext = NULL;
-static ULONG AcpiIrqNumber = 0;
-static KDPC AcpiDpc;
-static PVOID IVTVirtualAddress = NULL;
-
-
-typedef struct semaphore_entry
-{
-    UINT16                  MaxUnits;
-    UINT16                  CurrentUnits;
-    void                    *OsHandle;
-} SEMAPHORE_ENTRY;
-
-static SEMAPHORE_ENTRY AcpiGbl_Semaphores[NUM_SEMAPHORES];
-
-VOID NTAPI
-OslDpcStub(
-  IN PKDPC Dpc,
-  IN PVOID DeferredContext,
-  IN PVOID SystemArgument1,
-  IN PVOID SystemArgument2)
-{
-    ACPI_OSD_EXEC_CALLBACK Routine = (ACPI_OSD_EXEC_CALLBACK)SystemArgument1;
-
-    DPRINT("OslDpcStub()\n");
-    DPRINT("Calling [%p]([%p])\n", Routine, SystemArgument2);
-    (*Routine)(SystemArgument2);
-}
-
-BOOLEAN NTAPI
-OslIsrStub(
-  PKINTERRUPT Interrupt,
-  PVOID ServiceContext)
-{
-  INT32 Status;
-
-  Status = (*AcpiIrqHandler)(AcpiIrqContext);
-
-  if (ACPI_SUCCESS(Status))
-    return TRUE;
-  else
-    return FALSE;
-}
-
-ACPI_STATUS
-AcpiOsRemoveInterruptHandler (
-    UINT32                  InterruptNumber,
-    ACPI_OSD_HANDLER        ServiceRoutine);
-
-ACPI_STATUS
-AcpiOsInitialize (void)
-{
-    DPRINT("AcpiOsInitialize called\n");
-
-#ifndef NDEBUG
-    /* Verboseness level of the acpica core */
-    AcpiDbgLevel = 0x00FFFFFF;
-    AcpiDbgLayer = 0xFFFFFFFF;
-#endif
-
-    UINT32 i;
-
-    for (i = 0; i < NUM_SEMAPHORES; i++)
-    {
-        AcpiGbl_Semaphores[i].OsHandle = NULL;
-    }
-
-    KeInitializeDpc(&AcpiDpc, OslDpcStub, NULL);
-
-    return AE_OK;
-}
-
-ACPI_STATUS
-AcpiOsTerminate(void)
-{
-    DPRINT1("AcpiOsTerminate() called\n");
-
-    if (AcpiInterruptHandlerRegistered)
-        AcpiOsRemoveInterruptHandler(AcpiIrqNumber, AcpiIrqHandler);
-
-    return AE_OK;
-}
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiOsPrintf (
-    const char              *Fmt,
-    ...)
-{
-    va_list                 Args;
-    va_start (Args, Fmt);
-
-    AcpiOsVprintf (Fmt, Args);
-
-    va_end (Args);
-    return;
-}
-
-void
-AcpiOsVprintf (
-    const char              *Fmt,
-    va_list                 Args)
-{
-    vDbgPrintEx (-1, DPFLTR_ERROR_LEVEL, Fmt, Args);
-    return;
-}
-
-void *
-AcpiOsAllocate (ACPI_SIZE size)
-{
-    DPRINT("AcpiOsAllocate size %d\n",size);
-    return ExAllocatePool(NonPagedPool, size);
-}
-
-void *
-AcpiOsCallocate(ACPI_SIZE size)
-{
-  PVOID ptr = ExAllocatePool(NonPagedPool, size);
-  if (ptr)
-    memset(ptr, 0, size);
-  return ptr;
-}
-
-void
-AcpiOsFree(void *ptr)
-{
-    if (!ptr)
-        DPRINT1("Attempt to free null pointer!!!\n");  
-    ExFreePool(ptr);
-}
-
-#ifndef ACPI_USE_LOCAL_CACHE
-
-void*
-AcpiOsAcquireObjectHelper (
-    POOL_TYPE PoolType,
-    SIZE_T NumberOfBytes,
-    ULONG Tag)
-{
-    void* Alloc = ExAllocatePool(PoolType, NumberOfBytes);
-
-    /* acpica expects memory allocated from cache to be zeroed */
-    RtlZeroMemory(Alloc,NumberOfBytes);
-    return Alloc;
-}
-
-ACPI_STATUS
-AcpiOsCreateCache (
-    char                    *CacheName,
-    UINT16                  ObjectSize,
-    UINT16                  MaxDepth,
-    ACPI_CACHE_T            **ReturnCache)
-{
-    PNPAGED_LOOKASIDE_LIST Lookaside = 
-        ExAllocatePool(NonPagedPool,sizeof(NPAGED_LOOKASIDE_LIST));
-
-    ExInitializeNPagedLookasideList(Lookaside,
-        (PALLOCATE_FUNCTION)AcpiOsAcquireObjectHelper,// custom memory allocator
-        NULL,
-        0,
-        ObjectSize,
-        'IPCA',
-        0);
-    *ReturnCache = (ACPI_CACHE_T *)Lookaside;
-
-    DPRINT("AcpiOsCreateCache %p\n", Lookaside);
-    return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiOsDeleteCache (
-    ACPI_CACHE_T            *Cache)
-{
-    DPRINT("AcpiOsDeleteCache %p\n", Cache);
-    ExDeleteNPagedLookasideList(
-        (PNPAGED_LOOKASIDE_LIST) Cache);
-    ExFreePool(Cache);
-    return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiOsPurgeCache (
-    ACPI_CACHE_T            *Cache)
-{
-    DPRINT("AcpiOsPurgeCache\n");
-    /* No such functionality for LookAside lists */
-    return (AE_OK);
-}
-
-void *
-AcpiOsAcquireObject (
-    ACPI_CACHE_T            *Cache)
-{
-       PNPAGED_LOOKASIDE_LIST List = (PNPAGED_LOOKASIDE_LIST)Cache;
-    DPRINT("AcpiOsAcquireObject from %p\n", Cache);
-    void* ptr = 
-        ExAllocateFromNPagedLookasideList(List);
-    ASSERT(ptr);
-
-       RtlZeroMemory(ptr,List->L.Size);
-    return ptr;
-}
-
-ACPI_STATUS
-AcpiOsReleaseObject (
-    ACPI_CACHE_T            *Cache,
-    void                    *Object)
-{
-    DPRINT("AcpiOsReleaseObject %p from %p\n",Object, Cache);
-    ExFreeToNPagedLookasideList(
-        (PNPAGED_LOOKASIDE_LIST)Cache,
-        Object);
-    return (AE_OK);
-}
-
-#endif
-
-void *
-AcpiOsMapMemory (
-    ACPI_PHYSICAL_ADDRESS   phys,
-    ACPI_SIZE               length)
-{
-    PHYSICAL_ADDRESS Address;
-
-    DPRINT("AcpiOsMapMemory(phys 0x%X  size 0x%X)\n", (ULONG)phys, length);
-    if (phys == 0x0)
-    {
-        IVTVirtualAddress = ExAllocatePool(NonPagedPool, length);
-        return IVTVirtualAddress;
-    }
-
-    Address.QuadPart = (ULONG)phys;
-    return MmMapIoSpace(Address, length, MmNonCached);
-}
-
-void
-AcpiOsUnmapMemory (
-    void                    *virt,
-    ACPI_SIZE               length)
-{
-    DPRINT("AcpiOsUnmapMemory()\n");
-
-    if (virt == 0x0)
-    {
-        ExFreePool(IVTVirtualAddress);
-        return;
-    }
-    MmUnmapIoSpace(virt, length);
-}
-
-UINT32
-AcpiOsInstallInterruptHandler (
-    UINT32                  InterruptNumber,
-    ACPI_OSD_HANDLER        ServiceRoutine,
-    void                    *Context)
-{
-    ULONG Vector;
-    KIRQL DIrql;
-    KAFFINITY Affinity;
-    NTSTATUS Status;
-
-    DPRINT("AcpiOsInstallInterruptHandler()\n");
-    Vector = HalGetInterruptVector(
-        Internal,
-        0,
-        InterruptNumber,
-        0,
-        &DIrql,
-        &Affinity);
-
-    AcpiIrqNumber = InterruptNumber;
-    AcpiIrqHandler = ServiceRoutine;
-    AcpiIrqContext = Context;
-    AcpiInterruptHandlerRegistered = TRUE;
-
-    Status = IoConnectInterrupt(
-        &AcpiInterrupt,
-        OslIsrStub,
-        NULL,
-        NULL,
-        Vector,
-        DIrql,
-        DIrql,
-        LevelSensitive, /* FIXME: LevelSensitive or Latched? */
-        TRUE,
-        Affinity,
-        FALSE);
-
-    if (!NT_SUCCESS(Status))
-    {
-        DPRINT("Could not connect to interrupt %d\n", Vector);
-        return AE_ERROR;
-    }
-    return AE_OK;
-}
-
-ACPI_STATUS
-AcpiOsRemoveInterruptHandler (
-    UINT32                  InterruptNumber,
-    ACPI_OSD_HANDLER        ServiceRoutine)
-{
-    DPRINT("AcpiOsRemoveInterruptHandler()\n");
-    if (AcpiInterruptHandlerRegistered)
-    {
-        IoDisconnectInterrupt(AcpiInterrupt);
-        AcpiInterrupt = NULL;
-        AcpiInterruptHandlerRegistered = FALSE;
-    }
-
-    return AE_OK;
-}
-
-void
-AcpiOsStall (UINT32 microseconds)
-{
-    DPRINT1("AcpiOsStall %d\n",microseconds);
-    KeStallExecutionProcessor(microseconds);
-    return;
-}
-
-void
-AcpiOsSleep (ACPI_INTEGER milliseconds)
-{
-    DPRINT1("AcpiOsSleep %d\n", milliseconds);
-       KeStallExecutionProcessor(milliseconds*1000);
-    return;
-}
-
-ACPI_STATUS
-AcpiOsReadPort (
-    ACPI_IO_ADDRESS         Address,
-    UINT32                  *Value,
-    UINT32                  Width)
-{
-    DPRINT("AcpiOsReadPort %p, width %d\n",Address,Width);
-
-    switch (Width)
-    {
-    case 8:
-        *Value = READ_PORT_UCHAR((PUCHAR)Address);
-        break;
-
-    case 16:
-        *Value = READ_PORT_USHORT((PUSHORT)Address);
-        break;
-
-    case 32:
-        *Value = READ_PORT_ULONG((PULONG)Address);
-        break;
-    default:
-        DPRINT1("AcpiOsReadPort got bad width: %d\n",Width);
-        return (AE_BAD_PARAMETER);
-        break;
-    }
-    return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiOsWritePort (
-    ACPI_IO_ADDRESS         Address,
-    UINT32                  Value,
-    UINT32                  Width)
-{
-    DPRINT("AcpiOsWritePort %p, width %d\n",Address,Width);
-    switch (Width)
-    {
-    case 8:
-        WRITE_PORT_UCHAR((PUCHAR)Address, Value);
-        break;
-
-    case 16:
-        WRITE_PORT_USHORT((PUSHORT)Address, Value);
-        break;
-
-    case 32:
-        WRITE_PORT_ULONG((PULONG)Address, Value);
-        break;
-    
-    default:
-        DPRINT1("AcpiOsWritePort got bad width: %d\n",Width);
-        return (AE_BAD_PARAMETER);
-        break;
-    }
-    return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiOsReadMemory (
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  *Value,
-    UINT32                  Width)
-{
-    DPRINT("AcpiOsReadMemory %p\n", Address);
-    switch (Width)
-    {
-    case 8:
-        *Value = (*(PUCHAR)(ULONG)Address);
-        break;
-    case 16:
-        *Value = (*(PUSHORT)(ULONG)Address);
-        break;
-    case 32:
-        *Value = (*(PULONG)(ULONG)Address);
-        break;
-
-    default:
-        DPRINT1("AcpiOsReadMemory got bad width: %d\n",Width);
-        return (AE_BAD_PARAMETER);
-        break;
-    }
-    return (AE_OK);
-}
-
-
-ACPI_STATUS
-AcpiOsWriteMemory (
-    ACPI_PHYSICAL_ADDRESS   Address,
-    UINT32                  Value,
-    UINT32                  Width)
-{
-    DPRINT("AcpiOsWriteMemory %p\n", Address);
-    switch (Width)
-    {
-    case 8:
-        *(PUCHAR)(ULONG)Address = Value;
-        break;
-    case 16:
-        *(PUSHORT)(ULONG)Address = Value;
-        break;
-    case 32:
-        *(PULONG)(ULONG)Address = Value;
-        break;
-
-    default:
-        DPRINT1("AcpiOsWriteMemory got bad width: %d\n",Width);
-        return (AE_BAD_PARAMETER);
-        break;
-    }
-
-    return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiOsReadPciConfiguration (
-    ACPI_PCI_ID             *PciId,
-    UINT32                  Register,
-    void                    *Value,
-    UINT32                  Width)
-{
-    NTSTATUS Status;
-    PCI_SLOT_NUMBER slot;
-
-    if (Register == 0)
-        return AE_ERROR;
-
-    slot.u.AsULONG = 0;
-    slot.u.bits.DeviceNumber = PciId->Bus;
-    slot.u.bits.FunctionNumber = PciId->Function;
-
-    DPRINT("AcpiOsReadPciConfiguration, slot=0x%X, func=0x%X\n", slot.u.AsULONG, Register);
-    Status = HalGetBusDataByOffset(PCIConfiguration,
-        PciId->Bus,
-        slot.u.AsULONG,
-        Value,
-        Register,
-        Width);
-
-    if (NT_SUCCESS(Status))
-        return AE_OK;
-    else
-        return AE_ERROR;
-}
-
-ACPI_STATUS
-AcpiOsWritePciConfiguration (
-    ACPI_PCI_ID              *PciId,
-    UINT32                   Register,
-    ACPI_INTEGER             Value,
-    UINT32                   Width)
-{
-    NTSTATUS Status;
-    ULONG buf = Value;
-    PCI_SLOT_NUMBER slot;
-
-    if (Register == 0)
-        return AE_ERROR;
-
-    slot.u.AsULONG = 0;
-    slot.u.bits.DeviceNumber = PciId->Bus;
-    slot.u.bits.FunctionNumber = PciId->Function;
-
-    DPRINT("AcpiOsWritePciConfiguration, slot=0x%x\n", slot.u.AsULONG);
-    Status = HalSetBusDataByOffset(PCIConfiguration,
-        PciId->Bus,
-        slot.u.AsULONG,
-        &buf,
-        Register,
-        Width);
-
-    if (NT_SUCCESS(Status))
-        return AE_OK;
-    else
-        return AE_ERROR;
-}
-
-ACPI_STATUS
-AcpiOsCreateSemaphore (
-    UINT32              MaxUnits,
-    UINT32              InitialUnits,
-    ACPI_SEMAPHORE      *OutHandle)
-{
-    PFAST_MUTEX Mutex;
-
-    Mutex = ExAllocatePool(NonPagedPool, sizeof(FAST_MUTEX));
-    if (!Mutex)
-    return AE_NO_MEMORY;
-
-    DPRINT("AcpiOsCreateSemaphore() at 0x%X\n", Mutex);
-
-    ExInitializeFastMutex(Mutex);
-
-    *OutHandle = Mutex;
-    return AE_OK;
-}
-
-ACPI_STATUS
-AcpiOsDeleteSemaphore (
-    ACPI_SEMAPHORE      Handle)
-{
-    PFAST_MUTEX Mutex = (PFAST_MUTEX)Handle;
-
-    DPRINT("AcpiOsDeleteSemaphore(handle 0x%X)\n", Handle);
-
-    if (!Mutex)
-    return AE_BAD_PARAMETER;
-
-    ExFreePool(Mutex);
-    return AE_OK;
-}
-
-ACPI_STATUS
-AcpiOsWaitSemaphore(
-    ACPI_SEMAPHORE             Handle,
-    UINT32                     units,
-    UINT16                     timeout)
-{
-    PFAST_MUTEX Mutex = (PFAST_MUTEX)Handle;
-
-    if (!Mutex || (units < 1))
-    {
-        DPRINT("AcpiOsWaitSemaphore(handle 0x%X, units %d) Bad parameters\n",
-            Mutex, units);
-        return AE_BAD_PARAMETER;
-    }
-
-    DPRINT("Waiting for semaphore %p\n", Handle);
-    ASSERT(Mutex);
-
-    ExAcquireFastMutex(Mutex);
-    return AE_OK;
-}
-
-ACPI_STATUS
-AcpiOsSignalSemaphore (
-    ACPI_HANDLE         Handle,
-    UINT32              Units)
-{
-    PFAST_MUTEX  Mutex = (PFAST_MUTEX)Handle;
-
-    DPRINT("AcpiOsSignalSemaphore %p\n",Handle);
-    ASSERT(Mutex);
-
-    ExReleaseFastMutex(Mutex);
-    return AE_OK;
-}
-
-ACPI_STATUS
-AcpiOsCreateLock (
-    ACPI_SPINLOCK           *OutHandle)
-{
-    DPRINT("AcpiOsCreateLock\n");
-    return (AcpiOsCreateSemaphore (1, 1, OutHandle));
-}
-
-void
-AcpiOsDeleteLock (
-    ACPI_SPINLOCK           Handle)
-{
-    DPRINT("AcpiOsDeleteLock %p\n", Handle);
-    AcpiOsDeleteSemaphore (Handle);
-}
-
-
-ACPI_CPU_FLAGS
-AcpiOsAcquireLock (
-    ACPI_HANDLE             Handle)
-{
-    DPRINT("AcpiOsAcquireLock, %p\n", Handle);
-    AcpiOsWaitSemaphore (Handle, 1, 0xFFFF);
-    return (0);
-}
-
-
-void
-AcpiOsReleaseLock (
-    ACPI_SPINLOCK           Handle,
-    ACPI_CPU_FLAGS          Flags)
-{
-    DPRINT("AcpiOsReleaseLock %p\n",Handle);
-    AcpiOsSignalSemaphore (Handle, 1);
-}
-
-ACPI_STATUS
-AcpiOsSignal (
-    UINT32                  Function,
-    void                    *Info)
-{
-
-    switch (Function)
-    {
-    case ACPI_SIGNAL_FATAL:
-        if (Info)
-            AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Info);
-        else
-            AcpiOsPrintf ("AcpiOsBreakpoint ****\n");
-        break;
-    case ACPI_SIGNAL_BREAKPOINT:
-        if (Info)
-            AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Info);
-        else
-            AcpiOsPrintf ("AcpiOsBreakpoint ****\n");
-        break;
-    }
-
-    return (AE_OK);
-}
-
-
-ACPI_THREAD_ID
-AcpiOsGetThreadId (void)
-{
-    return (ULONG)PsGetCurrentThreadId();
-}
-
-ACPI_STATUS
-AcpiOsExecute (
-    ACPI_EXECUTE_TYPE       Type,
-    ACPI_OSD_EXEC_CALLBACK  Function,
-    void                    *Context)
-{
-       DPRINT1("AcpiOsExecute\n");
-
-       KeInsertQueueDpc(&AcpiDpc, (PVOID)Function, (PVOID)Context);
-
-#ifdef _MULTI_THREADED
-    //_beginthread (Function, (unsigned) 0, Context);
-#endif
-
-    return 0;
-}
-
-UINT64
-AcpiOsGetTimer (void)
-{
-    DPRINT("AcpiOsGetTimer\n");
-    LARGE_INTEGER Timer;
-    KeQueryTickCount(&Timer);
-
-    return Timer.QuadPart;
-}
-
-void
-AcpiOsDerivePciId(
-    ACPI_HANDLE             rhandle,
-    ACPI_HANDLE             chandle,
-    ACPI_PCI_ID             **PciId)
-{
-    DPRINT("AcpiOsDerivePciId\n");
-    return;
-}
-
-ACPI_STATUS
-AcpiOsPredefinedOverride (
-    const ACPI_PREDEFINED_NAMES *InitVal,
-    ACPI_STRING                 *NewVal)
-{
-    if (!InitVal || !NewVal)
-        return AE_BAD_PARAMETER;
-
-    *NewVal = ACPI_OS_NAME;
-    DPRINT("AcpiOsPredefinedOverride\n");
-    return AE_OK;
-}
-
-ACPI_PHYSICAL_ADDRESS
-AcpiOsGetRootPointer (
-    void);
-
-ACPI_STATUS
-AcpiOsTableOverride (
-    ACPI_TABLE_HEADER       *ExistingTable,
-    ACPI_TABLE_HEADER       **NewTable)
-{
-    DPRINT("AcpiOsTableOverride\n");
-    *NewTable = NULL;
-    return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiOsValidateInterface (
-    char                    *Interface)
-{
-    DPRINT("AcpiOsValidateInterface\n");
-    return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiOsValidateAddress (
-    UINT8                   SpaceId,
-    ACPI_PHYSICAL_ADDRESS   Address,
-    ACPI_SIZE               Length)
-{
-    DPRINT("AcpiOsValidateAddress\n");
-    return (AE_OK);
-}
-
-ACPI_PHYSICAL_ADDRESS
-AcpiOsGetRootPointer (
-    void)
-{
-    DPRINT("AcpiOsGetRootPointer\n");
-    ACPI_PHYSICAL_ADDRESS pa = 0;
-
-    AcpiFindRootPointer(&pa);
-    return pa;
-}
index ec25335..4a9498e 100644 (file)
@@ -679,6 +679,7 @@ Bus_PDO_QueryResources(
        ResourceDescriptor = ResourceList->List[0].PartialResourceList.PartialDescriptors;
 
        /* Fill resources list structure */
+        resource = Buffer.Pointer;
        while (resource->Type != ACPI_RESOURCE_TYPE_END_TAG)
        {
                switch (resource->Type)
@@ -1093,6 +1094,7 @@ Bus_PDO_QueryResourceRequirements(
        RequirementDescriptor = RequirementsList->List[0].Descriptors;
 
        /* Fill resources list structure */
+        resource = Buffer.Pointer;
        while (resource->Type != ACPI_RESOURCE_TYPE_END_TAG)
        {
                switch (resource->Type)
index 9e2f35e..f254995 100644 (file)
@@ -117,7 +117,9 @@ AcpiOsVprintf (
     const char              *Fmt,
     va_list                 Args)
 {
+#ifndef NDEBUG
     vDbgPrintEx (-1, DPFLTR_ERROR_LEVEL, Fmt, Args);
+#endif
     return;
 }