RxLogEventWithBufferDirect 함수(rxprocs.h)
RxLogEventWithBufferDirect 는 I/O 오류 로그 구조를 할당하고, 정보를 입력하고, I/O 오류 로그에 항목을 씁니다.
구문
void RxLogEventWithBufferDirect(
IN PVOID DeviceOrDriverObject,
[in] IN PUNICODE_STRING OriginatorId,
[in] IN ULONG EventId,
[in] IN NTSTATUS Status,
[in] IN PVOID DataBuffer,
[in] IN USHORT DataBufferLength,
[in] IN ULONG LineNumber
);
매개 변수
DeviceOrDriverObject
RDBSS 디바이스 개체에 대한 포인터입니다.
[in] OriginatorId
오류를 생성하는 호출자를 나타내는 문자열입니다.
[in] EventId
루틴에서 반환되는 NTSTATUS 값과 다른 I/O 오류 로그 코드를 나타내는 값입니다. 법적 I/O 오류 로그 코드 값은 Microsoft Windows SDK 및 Visual Studio에 포함된 ntiolog.h 헤더 파일에 정의됩니다.
[in] Status
오류를 나타내는 루틴의 상태 코드를 나타내는 값입니다.
[in] DataBuffer
I/O 오류 로그 구조에 추가할 데이터 버퍼에 대한 포인터입니다.
[in] DataBufferLength
I/O 오류 로그 구조에 추가할 데이터 버퍼의 길이입니다.
[in] LineNumber
이 오류가 발생한 소스 코드 파일의 줄 번호입니다.
반환 값
없음
설명
RxLogEventDirect는 내부적으로 RxLogEventWithAnnotation 루틴을 호출하여 Status 및 LineNumber 매개 변수를 RxLogEventWithAnnotation에 대한 Annotations 매개 변수로 전달하는 로그 항목을 만들고 작성합니다.
I/O 오류 로그 입력 크기는 255자의 길이로 제한됩니다. 따라서 EventId, DataBuffer 및 Annotations 매개 변수의 길이와 I/O 오류 로그 항목의 고정된 부분 크기가 255를 초과하는 경우 I/O 오류 로그 항목이 생성되지 않습니다.
RxLogEventWithAnnotation 루틴은 I/O 오류 로그 항목을 만들기 위해 메모리를 할당해야 합니다. 따라서 메모리 할당이 실패하면 RxLogEventWithBufferDirect 가 자동으로 실패할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | rxprocs.h(Rxprocs.h, Rxstruc.h 포함) |
IRQL | <= APC_LEVEL |