Share via


ReportEventA 함수(winbase.h)

지정된 이벤트 로그의 끝에 항목을 씁니다.

구문

BOOL ReportEventA(
  [in] HANDLE hEventLog,
  [in] WORD   wType,
  [in] WORD   wCategory,
  [in] DWORD  dwEventID,
  [in] PSID   lpUserSid,
  [in] WORD   wNumStrings,
  [in] DWORD  dwDataSize,
  [in] LPCSTR *lpStrings,
  [in] LPVOID lpRawData
);

매개 변수

[in] hEventLog

이벤트 로그에 대한 핸들입니다. RegisterEventSource 함수는 이 핸들을 반환합니다.

WINDOWS XP SP2를 사용하는 경우 이 매개 변수는 보안 로그에 대한 핸들이 될 수 없습니다. 보안 로그에 이벤트를 쓰려면 AuthzReportSecurityEvent 함수를 사용합니다.

[in] wType

기록할 이벤트의 유형입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
EVENTLOG_SUCCESS
0x0000
정보 이벤트
EVENTLOG_AUDIT_FAILURE
0x0010
오류 감사 이벤트
EVENTLOG_AUDIT_SUCCESS
0x0008
Success Audit 이벤트
EVENTLOG_ERROR_TYPE
0x0001
오류 이벤트
EVENTLOG_INFORMATION_TYPE
0x0004
정보 이벤트
EVENTLOG_WARNING_TYPE
0x0002
경고 이벤트
 

이벤트 유형에 대한 자세한 내용은 이벤트 유형을 참조하세요.

[in] wCategory

이벤트 범주입니다. 원본별 정보입니다. 범주에는 모든 값이 있을 수 있습니다. 자세한 내용은 이벤트 범주를 참조하세요.

[in] dwEventID

이벤트 식별자입니다. 이벤트 식별자는 이벤트 원본과 연결된 메시지 파일의 항목을 지정합니다. 자세한 내용은 이벤트 식별자를 참조하세요.

[in] lpUserSid

현재 사용자의 보안 식별자에 대한 포인터입니다. 보안 식별자가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.

[in] wNumStrings

lpStrings 매개 변수가 가리키는 배열의 삽입 문자열 수입니다. 값이 0이면 문자열이 없음을 나타냅니다.

[in] dwDataSize

로그에 쓸 이벤트별 원시(이진) 데이터의 바이트 수입니다. 이 매개 변수가 0이면 이벤트별 데이터가 없습니다.

[in] lpStrings

이벤트 뷰어 사용자에게 문자열을 표시하기 전에 메시지에 병합되는 null로 끝나는 문자열 배열을 포함하는 버퍼에 대한 포인터입니다. wNumStrings가 0인 경우에도 이 매개 변수는 유효한 포인터(또는 NULL)여야 합니다. 각 문자열은 31,839자로 제한됩니다.

Windows Vista 이전: 각 문자열은 32K 문자로 제한됩니다.

[in] lpRawData

이진 데이터를 포함하는 버퍼에 대한 포인터입니다. dwDataSize 매개 변수가 0인 경우에도 이 매개 변수는 유효한 포인터(또는 NULL)여야 합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닌 값으로, 항목이 로그에 기록되었음을 나타냅니다.

함수가 실패하면 반환 값은 0입니다. 확장된 오류 정보를 얻으려면 다음 확장 오류 코드 중 하나를 반환하는 GetLastError를 호출합니다.

오류 코드 의미
ERROR_INVALID_PARAMETER
매개 변수 중 하나가 잘못되었습니다.

이 오류는 기록할 메시지 데이터가 너무 크면 Windows Server 2003에서 반환됩니다. 이 오류는 dwDataSize 매개 변수가 261,991(0x3ff67)보다 큰 경우 Windows Server 2003의 RPC 서버에서 반환됩니다.

ERROR_NOT_ENOUGH_MEMORY
메모리 리소스가 부족하여 작업을 완료할 수 있습니다.
RPC_S_INVALID_BOUND
배열 범위가 잘못되었습니다.

기록할 메시지 데이터가 너무 크면 이 오류가 반환됩니다. Windows Vista 이상에서는 dwDataSize 매개 변수가 61,440(0xf000)보다 큰 경우 이 오류가 반환됩니다.

RPC_X_BAD_STUB_DATA
스텁이 잘못된 데이터를 수신했습니다.

이 오류는 기록할 메시지 데이터가 너무 크면 Windows XP에서 반환됩니다. dwDataSize 매개 변수가 262,143(0x3ffff)보다 큰 경우 이 오류는 Windows XP의 RPC 서버에서 반환됩니다.

기타
FormatMessage를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

설명

이 함수는 이벤트를 기록하는 데 사용됩니다. 항목은 hEventLog 매개 변수로 식별된 원본에 대해 구성된 로그의 끝에 기록됩니다. ReportEvent 함수는 로그에 항목을 저장하기 전에 시간, 항목의 길이 및 오프셋을 추가합니다. 함수가 사용자 이름을 추가할 수 있도록 하려면 lpUserSid 매개 변수에 사용자의 SID를 제공해야 합니다.

애플리케이션이 실행되는 클라이언트와 메시지가 기록되는 서버에서 사용하는 Windows 버전에 따라 기록할 수 있는 메시지 데이터의 크기에 대한 크기 제한이 다릅니다. 서버는 RegisterEventSource 함수에 전달된 lpUNCServerName 매개 변수에 의해 결정됩니다. Windows 버전에 따라 크기 제한을 초과하면 다른 오류가 반환됩니다.

로그하는 문자열에 %n이 포함되어 있는 경우 여기서 n 은 정수 값(예: %1)입니다. 이벤트 뷰어는 이를 삽입 문자열로 처리합니다. IPv6 주소는 이 문자 시퀀스를 포함할 수 있으므로 형식 지정자(! S!) IPv6 주소를 포함하는 이벤트 메시지를 기록합니다. 이 지정자는 문자열을 문자 그대로 사용하고 추가 확장을 수행하지 않도록 서식 지정 코드에 지시합니다(예: "내 IPv6 주소: %1! S!").

예제

예제는 이벤트 보고를 참조하세요.

참고

winbase.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 ReportEvent를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

ClearEventLog

CloseEventLog

이벤트 로그 파일 형식

이벤트 로깅 함수

OpenEventLog

ReadEventLog

RegisterEventSource