StorPortNotification 함수(storport.h)
미니포트 드라이버는 StorPortNotification 루틴을 사용하여 Storport 드라이버에 특정 이벤트 및 조건을 알립니다.
StorPortNotification 은 지정된 알림 유형에 따라 다양한 수의 매개 변수를 사용합니다.
구문
STORPORT_API VOID StorPortNotification(
SCSI_NOTIFICATION_TYPE NotificationType,
PVOID HwDeviceExtension,
...
);
매개 변수
NotificationType
다음 값 중 하나일 수 있는 알림 유형을 지정합니다.
알림 유형 | Description |
---|---|
BufferOverrunDetected | 이 알림 유형에는 인수가 없으며 미니포트 드라이버가 손상을 감지하는 경우 시스템을 버그 검사할 수 있는 기회를 제공합니다. |
BusChangeDetected |
대상 디바이스가 동적 버스에서 추가되거나 제거되었을 수 있음을 나타냅니다. 이 알림 유형을 사용하려면 변경 내용이 검색된 SCSI 포트 또는 버스를 나타내는 선택적 PathId 매개 변수를 포함합니다.
|
IoTargetRequestServiceTime |
지정된 요청을 처리하는 데 필요한 시간을 Storport에 나타냅니다.
기간 [in] Srb에 필요한 서비스 시간(100나노초 단위)입니다. Srb [in] 서비스 시간을 설정할 요청 블록입니다. |
LinkDown | 링크가 다운되고 일정 시간 동안 중단될 것임을 나타냅니다. StorPort는 이 알림에 대한 응답으로 어댑터를 일시 중지합니다. |
교신 | 링크가 복원되었음을 나타냅니다. StorPort는 이 알림에 대한 응답으로 작업을 다시 시작할 수 있도록 어댑터를 다시 시작합니다. 미니포트 드라이버는 링크가 다운되지 않는 한 이 알림을 보내지 않아야 합니다. |
QueryTickCount |
이 알림 유형은 KeQueryTickCount의 값을 보유하는 LARGE_INTEGER 반환합니다. TickCount에서 반환되는 값은 시스템이 부팅된 이후 발생한 간격 타이머 인터럽트 수입니다.
|
RequestComplete |
지정된 SRB가 완료되었음을 나타냅니다. 이 알림을 보낸 후 포트 드라이버는 요청을 소유합니다. Srb 매개 변수는 완료된 SCSI 요청 블록에 대한 포인터를 나타냅니다. 미니포트 드라이버는 Srb의 요청에 액세스하려고 시도해서는 안 되며 Srb를 다른 루틴으로 전달해서는 안 됩니다.
|
RequestTimerCall |
미니포트 드라이버가 요청된 수의 마이크로초에서 미니포트 드라이버의 HwStorTimer 루틴을 호출하도록 포트 드라이버가 필요했음을 나타냅니다.
HwStorTimer [in] MiniportTimerValue에 지정된 시간 간격 이후에 호출되는 타이머 루틴에 대한 포인터입니다. MiniportTimerValue [in] HwStorTimer에서 가리키는 타이머 루틴이 호출된 후의 간격을 나타냅니다. 마이크로초 단위로 지정된 양수 값입니다. 값이 0이면 타이머가 취소됩니다. 시스템 타이머 해상도는 약 10밀리초입니다. |
ResetDetected | HBA가 버스에서 재설정을 감지했음을 나타냅니다. 이 알림을 보낸 후에도 미니포트 드라이버는 활성 요청을 완료해야 합니다. 포트 드라이버는 필요한 모든 버스 재설정 지연을 관리합니다. |
WMIEvent |
미니포트 드라이버가 하나 이상의 WMI 데이터 소비자가 등록된 이벤트를 감지했음을 나타냅니다. WmiEvent 매개 변수는 최대 128바이트로 제한됩니다. WmiEvent가 128바이트보다 크면 무시됩니다.
WMIEvent [in] 미니포트 드라이버에서 검색하는 WMI 이벤트에 대한 정보가 있는 이벤트 구조체에 대한 포인터입니다. PathId [in] 요청에 대한 SCSI 포트 또는 버스를 나타냅니다. 이 매개 변수를 어댑터 디바이스의 0xff 설정합니다. 그렇지 않으면 를 유효한 경로 ID로 설정합니다. TargetId [in, optional] 버스의 대상 컨트롤러 또는 디바이스를 나타냅니다. 이 매개 변수는 이벤트가 어댑터에 대한 경우 사용되지 않습니다. Lun [in, optional] 디바이스의 논리적 단위 번호를 나타냅니다. 이 매개 변수는 이벤트가 어댑터에 대한 경우 사용되지 않습니다. |
WMIReregister |
미니포트 드라이버가 IoWMIRegistrationControl을 호출하여 이전에 등록된 지정된 데이터 블록의 데이터 항목 또는 인스턴스 수를 변경했음을 나타냅니다.
PathId [in] 요청에 대한 SCSI 포트 또는 버스를 나타냅니다. 이 매개 변수를 어댑터 디바이스의 0xff 설정합니다. 그렇지 않으면 를 유효한 경로 ID로 설정합니다. TargetId [in, optional] 버스의 대상 컨트롤러 또는 디바이스를 나타냅니다. 이 매개 변수는 어댑터에 등록할 때 사용되지 않습니다. Lun [in, optional] 디바이스의 논리적 단위 번호를 나타냅니다. 이 매개 변수는 어댑터에 등록할 때 사용되지 않습니다. |
HwDeviceExtension
하드웨어 디바이스 확장에 대한 포인터입니다. 포트 드라이버가 미니포트 드라이버를 대신하여 할당하고 초기화하는 HBA 스토리지 영역당 입니다. 미니포트 드라이버는 일반적으로 HBA 상태 및 HBA에 대한 매핑된 액세스 범위와 같은 HBA 관련 정보를 이 확장에 저장합니다. 이 영역은 미니포트 드라이버가 StorPortInitialize를 호출한 직후 미니포트 드라이버에서 사용할 수 있습니다. 포트 드라이버는 디바이스를 제거할 때 이 메모리를 해제합니다.
...
추가 매개 변수.
반환 값
없음
설명
StorPortNotification 은 다양한 유형의 요청을 처리하는 다형 함수이므로 가능한 모든 용도를 다루는 방식으로 주석을 달기 어렵습니다. StorPortNotification은 VOID를 반환하므로 검사 엔진은 LockHandle이 요청된 대로 획득되었다고 가정해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | storport.h(Storport.h 포함) |
라이브러리 | Storport.lib |
DDI 규정 준수 규칙 | StorPortNotification2(storport), StorPortStatusPending, StorPortTimer(storport) |