StorPortLogSystemEvent 함수(storport.h)
StorPortLogSystemEvent 루틴은 미니포트 드라이버가 Windows 커널 이벤트 시설의 기능에 대한 모든 권한을 부여하므로 미니포트 드라이버가 스토리지 문제 해결에 진정으로 유용한 이벤트 로그 항목을 만들 수 있습니다. 기존 미니포트 드라이버 이벤트 로깅 함수인 StorPortLogError에 대한 더 나은 대안을 제공합니다.
구문
ULONG StorPortLogSystemEvent(
[in] PVOID HwDeviceExtension,
[in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
[in, out] PULONG MaximumSize
);
매개 변수
[in] HwDeviceExtension
하드웨어 디바이스 확장에 대한 포인터입니다. 포트 드라이버가 미니포트 드라이버를 대신하여 할당하고 초기화하는 HBA 스토리지 영역당 입니다. 미니포트 드라이버는 일반적으로 HBA 상태 및 HBA에 대한 매핑된 액세스 범위와 같은 HBA 관련 정보를 이 확장에 저장합니다. 이 영역은 미니포트 드라이버가 StorPortInitialize를 호출한 직후 미니포트에서 사용할 수 있습니다. 포트 드라이버는 디바이스를 제거할 때 이 메모리를 해제합니다.
[in, out] LogDetails
시스템 이벤트 로그 항목에 표시할 정보를 포함하는 STOR_LOG_EVENT_DETAILS 구조체입니다.
[in, out] MaximumSize
미니포트 덤프 데이터 및 문자열의 최대 결합 크기를 수신하는 변수입니다. 함수가 실패하고 STOR_STATUS_INVALID_BUFFER_SIZE 값을 반환하는 경우에만 반환됩니다. 이 매개 변수는 선택적 요소입니다.
반환 값
반환 코드 | 설명 |
---|---|
|
이 함수는 활성 운영 체제에서 구현되지 않습니다. |
|
잘못된 매개 변수가 전달되었습니다. |
|
IRQL > DISPATCH_LEVEL 호출되었습니다. |
|
요청을 완료할 시스템 리소스가 부족했습니다. |
|
지원되지 않는(예: 최신) 버전의 STOR_LOG_EVENT_DETAILS 구조체가 지정되었습니다. 이 값이 반환되면 LogDetails->InterfaceRevision이 지원되는 최신 버전으로 설정됩니다. |
|
함수에 전달된 버퍼가 너무 큽니다. 이 값이 반환되면 MaximumSize는 미니포트 덤프 데이터 및 문자열의 최대 결합 크기로 설정됩니다. |
|
로그 작업이 성공적으로 완료되었습니다. |
설명
사용자 지정 오류 코드를 사용하여 최상의 이점을 활용하는 방법을 이해하려면 Storport 오류 로그 확장을 참조하세요. StorPortLogSystemEvent 루틴은 IRQL <= DISPATCH_LEVEL 호출해야 합니다. 이 빌드에서 지원하는 것보다 최신 버전의 STOR_LOG_EVENT_DETAILS 전달하는 경우 이 함수는 InterfaceRevision 필드를 지원되는 최신 버전으로 변경하고 STOR_STATUS_UNSUPPORTED_VERSION 반환합니다. STOR_LOG_EVENT_DETAILS InterfaceRevision 필드는 32비트 값입니다. 그러나 유효성 검사에 가장 중요한 바이트 3개만 사용됩니다. 하위 바이트는 특정 버전의 호환되는 사소한 변형을 구분하기 위해 예약되어 있습니다. instance 경우 수정 버전 0x00000101 구조는 인터페이스의 수정 0x00000100 구현하는 Storport와 호환되지만 일부 사소한 중요하지 않은 기능이 손실될 수 있습니다. 허용되는 최대 이벤트 로그 입력 크기를 초과하는 덤프 데이터 및 문자열의 결합된 크기를 지정하면 MaximumSize가 가리키는 정수가 미니포트 덤프 데이터 및 문자열의 허용되는 최대 크기로 설정되고 STOR_INVALID_BUFFER_SIZE 반환됩니다. 이 함수는 경로, 대상 및 LUN 주소 지정자에 대한 ULONG 값을 허용하지만 Storport는 내부적으로 이러한 지정자에 대해 8비트 값만 지원하므로 값이 UCHAR 값으로 잘립니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | storport.h(Storport.h 포함) |
DDI 규정 준수 규칙 | StorPortIrql(storport) |