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 함수는 이 핸들을 반환합니다.
SP2가 있는 Windows XP에서는 이 매개 변수가 보안 로그에 대한 핸들이 될 수 없습니다. Security 로그에 이벤트를 쓰려면 AuthzReportSecurityEvent 함수를 사용합니다.
[in] wType
기록할 이벤트의 유형입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
이벤트 유형에 대한 자세한 내용은 이벤트 유형참조하세요.
[in] wCategory
이벤트 범주입니다. 원본별 정보입니다. 범주에는 모든 값이 있을 수 있습니다. 자세한 내용은 이벤트 범주참조하세요.
[in] dwEventID
이벤트 식별자입니다. 이벤트 식별자는 이벤트 원본과 연결된 메시지 파일의 항목을 지정합니다. 자세한 내용은 이벤트 식별자참조하세요.
[in] lpUserSid
현재 사용자의 보안 식별자에 대한 포인터입니다. 보안 식별자가 필요하지 않은 경우 이 매개 변수는 NULL
[in] wNumStrings
lpStrings 매개 변수가 가리키는 배열의 삽입 문자열 수입니다. 값이 0이면 문자열이 없음을 나타냅니다.
[in] dwDataSize
로그에 쓸 이벤트별 원시(이진) 데이터의 바이트 수입니다. 이 매개 변수가 0이면 이벤트별 데이터가 없습니다.
[in] lpStrings
이벤트 뷰어가 사용자에게 문자열을 표시하기 전에 메시지에 병합되는 null로 끝나는 문자열 배열을 포함하는 버퍼에 대한 포인터입니다.
Windows Vista 이전: 각 문자열은 32K 문자로 제한됩니다.
[in] lpRawData
이진 데이터를 포함하는 버퍼에 대한 포인터입니다.
반환 값
함수가 성공하면 반환 값은 0이 아닌 값으로, 항목이 로그에 기록되었음을 나타냅니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 다음 확장 오류 코드 중 하나를 반환하는 GetLastError호출합니다.
오류 코드 | 의미 |
---|---|
|
매개 변수 중 하나가 잘못되었습니다.
기록할 메시지 데이터가 너무 크면 Windows Server 2003에서 이 오류가 반환됩니다. 이 오류는 dwDataSize 매개 변수가 261,991(0x3ff67)보다 큰 경우 Windows Server 2003의 RPC 서버에서 반환됩니다. |
|
메모리 리소스가 부족하여 작업을 완료할 수 있습니다. |
|
배열 범위가 잘못되었습니다.
기록할 메시지 데이터가 너무 크면 이 오류가 반환됩니다. Windows Vista 이상에서는 dwDataSize 매개 변수가 61,440(0xf000)보다 큰 경우 이 오류가 반환됩니다. |
|
스텁이 잘못된 데이터를 수신했습니다.
기록할 메시지 데이터가 너무 크면 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