KdPrintEx 매크로(wdm.h)
KdPrintEx 매크로는 지정한 조건이 충족되면 커널 디버거에 문자열을 보냅니다.
KdPrintEx 호출하려면 이중 괄호가 필요합니다.
통사론
void KdPrintEx(
_x_
);
매개 변수
_x_
printf형식 문자열에 대한 인수를 지정합니다.
반환 값
없음
발언
KdPrintEx 디버그 구성을 위해 컴파일된 코드의 DbgPrintEx 루틴과 동일합니다. 이 루틴은 릴리스 빌드용으로 컴파일된 코드에 영향을 주지 않습니다. 커널 모드 드라이버만 KdPrintEx 루틴을 호출할 수 있습니다.
KdPrintEx 지정된 문자열을 커널 디버거에 전달하거나 ComponentId, Level및 해당 구성 요소 필터 마스크의 값에 따라 아무 작업도 수행하지 않습니다. 자세한 내용은 디버깅 메시지읽기 및 필터링을 참조하세요.
반드시 필요한 경우가 아니면 사용자 입력 또는 다른 프로세스에서 문자열을 가져와서 KdPrintEx전달해서는 안 됩니다. 만들지 않은 문자열을 사용하는 경우 이 문자열이 유효한 형식 문자열이고 형식 코드가 형식 및 수량의 인수 목록과 일치하는지 확인해야 합니다. 가장 좋은 코딩 방법은 모든 Format 문자열이 정적이고 컴파일 시간에 정의되는 것입니다.
Format 문자열의 크기 또는 인수 수에 대한 상한은 없습니다. 그러나 KdPrintEx 대한 단일 호출은 512바이트의 정보만 전송합니다. DbgPrint 버퍼의 크기도 제한됩니다. 자세한 내용은 DbgPrint 버퍼 및 디버거 참조하세요.
이 루틴은 ntddk.h 및 ndis.h로 정의됩니다. 구성 요소 필터 ID는 dpfilter.h, ndis.h 및 wdm.h에 정의됩니다. ntddk.h 또는 ndis.h를 포함합니다.
인수는 다음과 같습니다.
ComponentId [in]
이 루틴을 호출하는 구성 요소를 지정합니다. dpfilter.h 헤더 파일에 정의된 구성 요소 이름 필터 ID 중 하나여야 합니다. 드라이버의 출력을 Windows 구성 요소의 출력과 혼합하지 않도록 하려면 ComponentId다음 값만 사용해야 합니다.
DPFLTR_IHVVIDEO_ID
DPFLTR_IHVAUDIO_ID
DPFLTR_IHVNETWORK_ID
DPFLTR_IHVSTREAMING_ID
DPFLTR_IHVBUS_ID
DPFLTR_IHVDRIVER_ID
형식 [in]
인쇄할 서식 문자열에 대한 포인터를 지정합니다.
Format 문자열은printf 스타일서식 사양 필드 대부분을 지원합니다. 그러나 유니코드 형식 코드(%C, %S, %lc, %ls, %wc, %ws및 %wZ)는 IRQL = PASSIVE_LEVEL 함께만 사용할 수 있습니다. KdPrintEx 루틴은 부동 소수점 형식(%f, %e, %E, %g, %G, %a또는 %A)을 지원하지 않습니다. 수준 [in]
이 메시지의 심각도를 지정합니다. 32비트 정수일 수 있습니다. 0에서 31 사이의 값(포함)은 32에서 0xFFFFFFFF 사이의 값과 다르게 처리됩니다. 자세한 내용은 디버깅 메시지읽기 및 필터링을 참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Microsoft Windows XP 이상에서 사용할 수 있습니다. |
대상 플랫폼 | 바탕 화면 |
헤더 | wdm.h(Wdm.h 포함) |
라이브러리 | NtosKrnl.lib(DbgPrintEx 참조) |
DLL | NtosKrnl.exe |
참고 항목
DbgPrintEx
KdPrint