コード例 #1
0
ファイル: error.c プロジェクト: BrendanBenshoof/ZeroTierOne
VOID
	MyDebugPrint (const unsigned char* format, ...)
{
	if (g_Debug.text && g_Debug.capacity > 0 && CAN_WE_PRINT)
	{
		BOOLEAN owned;
		ACQUIRE_MUTEX_ADAPTIVE (&g_Debug.lock, owned);
		if (owned)
		{
			const int remaining = (int)g_Debug.capacity - (int)g_Debug.out;

			if (remaining > 0)
			{
				va_list args;
				NTSTATUS status;
				char *end;

#ifdef DBG_PRINT
				va_start (args, format);
				vDbgPrintEx (DPFLTR_IHVNETWORK_ID, DPFLTR_INFO_LEVEL, format, args);
				va_end (args);
#endif
				va_start (args, format);
				status = RtlStringCchVPrintfExA (g_Debug.text + g_Debug.out,
					remaining,
					&end,
					NULL,
					STRSAFE_NO_TRUNCATION | STRSAFE_IGNORE_NULLS,
					format,
					args);
				va_end (args);
				va_start (args, format);
				vDbgPrintEx(DPFLTR_IHVDRIVER_ID , 1, format, args);
				va_end (args);
				if (status == STATUS_SUCCESS)
					g_Debug.out = (unsigned int) (end - g_Debug.text);
				else
					g_Debug.error = TRUE;
			}
			else
				g_Debug.error = TRUE;

			RELEASE_MUTEX (&g_Debug.lock);
		}
		else
			g_Debug.error = TRUE;
	}
}
コード例 #2
0
static void DebugPrintFunc(const char *format, ...)
{
    va_list list;
    va_start(list, format);
    vDbgPrintEx(DPFLTR_DEFAULT_ID, 9 | DPFLTR_MASK, format, list);
    va_end(list);
}
コード例 #3
0
_Use_decl_annotations_
VOID
SimBattPrint (
    ULONG Level,
    PCSTR Format,
    ...
    )

/*++

Routine Description:

    This routine emits the debugger message.

Arguments:

    Level - Supplies the criticality of message being printed.

    Format - Message to be emitted in varible argument format.

Return Value:

    None.

--*/

{

	va_list Arglist;
	va_start(Arglist, Format);
	vDbgPrintEx(DPFLTR_IHVDRIVER_ID, Level, Format, Arglist);
}
ULONG __cdecl GoogleDbgPrint(char* format, ...) {
  va_list arg_list;
  va_start(arg_list, format);
  ULONG ret =
    vDbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, format, arg_list);
  va_end(arg_list);

  return ret;
}
コード例 #5
0
ファイル: Tools.c プロジェクト: hitfreedom/HITCS-74
void DsmDebugPrint(ULONG DebugPrintLevel, 
					PCCHAR DebugMessage, ...) 
{
	va_list ap;
	va_start(ap, DebugMessage);

	vDbgPrintEx(DPFLTR_IHVDRIVER_ID, DebugPrintLevel, DebugMessage, ap);

	va_end(ap);
}
コード例 #6
0
void
AcpiOsVprintf (
    const char              *Fmt,
    va_list                 Args)
{
#ifndef NDEBUG
    vDbgPrintEx (-1, DPFLTR_ERROR_LEVEL, Fmt, Args);
#endif
    return;
}
コード例 #7
0
ファイル: test_winkernel.cpp プロジェクト: AVGirl/capstone
// This functions mimics printf() but does not return the same value as printf()
// would do. printf() is required to exercise regression tests.
_Use_decl_annotations_
int __cdecl printf(const char * format, ...)
{
	NTSTATUS status;
	va_list args;

	va_start(args, format);
	status = vDbgPrintEx(DPFLTR_DEFAULT_ID, DPFLTR_ERROR_LEVEL, format, args);
	va_end(args);
	return NT_SUCCESS(status);
}