다음을 통해 공유


StorPortNotification 함수(storport.h)

미니포트 드라이버는 StorPortNotification 루틴을 사용하여 Storport 드라이버에 특정 이벤트 및 조건을 알립니다.

StorPortNotification 은 지정된 알림 유형에 따라 다양한 수의 매개 변수를 사용합니다.

구문

STORPORT_API VOID StorPortNotification(
  SCSI_NOTIFICATION_TYPE NotificationType,
  PVOID                  HwDeviceExtension,
  ...                    
);

매개 변수

NotificationType

다음 값 중 하나일 수 있는 알림 유형을 지정합니다.

알림 유형 Description
BufferOverrunDetected 이 알림 유형에는 인수가 없으며 미니포트 드라이버가 손상을 감지하는 경우 시스템을 버그 검사할 수 있는 기회를 제공합니다.
BusChangeDetected 대상 디바이스가 동적 버스에서 추가되거나 제거되었을 수 있음을 나타냅니다. 이 알림 유형을 사용하려면 변경 내용이 검색된 SCSI 포트 또는 버스를 나타내는 선택적 PathId 매개 변수를 포함합니다.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_opt_ UCHAR                  PathId
);
IoTargetRequestServiceTime 지정된 요청을 처리하는 데 필요한 시간을 Storport에 나타냅니다.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ ULONGLONG              Duration,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);

기간 [in]

Srb에 필요한 서비스 시간(100나노초 단위)입니다.

Srb [in]

서비스 시간을 설정할 요청 블록입니다.

LinkDown 링크가 다운되고 일정 시간 동안 중단될 것임을 나타냅니다. StorPort는 이 알림에 대한 응답으로 어댑터를 일시 중지합니다.
교신 링크가 복원되었음을 나타냅니다. StorPort는 이 알림에 대한 응답으로 작업을 다시 시작할 수 있도록 어댑터를 다시 시작합니다. 미니포트 드라이버는 링크가 다운되지 않는 한 이 알림을 보내지 않아야 합니다.
QueryTickCount 이 알림 유형은 KeQueryTickCount의 값을 보유하는 LARGE_INTEGER 반환합니다. TickCount에서 반환되는 값은 시스템이 부팅된 이후 발생한 간격 타이머 인터럽트 수입니다.
VOID StorPortNotification(
  _In_    SCSI_NOTIFICATION_TYPE NotificationType,
  _In_    PVOID                  HwDeviceExtension,
  _Inout_ PLARGE_INTEGER         TickCount
);
RequestComplete 지정된 SRB가 완료되었음을 나타냅니다. 이 알림을 보낸 후 포트 드라이버는 요청을 소유합니다. Srb 매개 변수는 완료된 SCSI 요청 블록에 대한 포인터를 나타냅니다. 미니포트 드라이버는 Srb의 요청에 액세스하려고 시도해서는 안 되며 Srb를 다른 루틴으로 전달해서는 안 됩니다.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);
RequestTimerCall 미니포트 드라이버가 요청된 수의 마이크로초에서 미니포트 드라이버의 HwStorTimer 루틴을 호출하도록 포트 드라이버가 필요했음을 나타냅니다.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PHW_TIMER              HwStorTimer,
  _In_ ULONG                  MiniportTimerValue
);

HwStorTimer [in]

MiniportTimerValue에 지정된 시간 간격 이후에 호출되는 타이머 루틴에 대한 포인터입니다.

MiniportTimerValue [in]

HwStorTimer에서 가리키는 타이머 루틴이 호출된 후의 간격을 나타냅니다. 마이크로초 단위로 지정된 양수 값입니다. 값이 0이면 타이머가 취소됩니다. 시스템 타이머 해상도는 약 10밀리초입니다.

ResetDetected HBA가 버스에서 재설정을 감지했음을 나타냅니다. 이 알림을 보낸 후에도 미니포트 드라이버는 활성 요청을 완료해야 합니다. 포트 드라이버는 필요한 모든 버스 재설정 지연을 관리합니다.
WMIEvent 미니포트 드라이버가 하나 이상의 WMI 데이터 소비자가 등록된 이벤트를 감지했음을 나타냅니다. WmiEvent 매개 변수는 최대 128바이트로 제한됩니다. WmiEvent가 128바이트보다 크면 무시됩니다.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     PWNODE_EVENT_ITEM      WMIEvent,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

WMIEvent [in]

미니포트 드라이버에서 검색하는 WMI 이벤트에 대한 정보가 있는 이벤트 구조체에 대한 포인터입니다.

PathId [in]

요청에 대한 SCSI 포트 또는 버스를 나타냅니다. 이 매개 변수를 어댑터 디바이스의 0xff 설정합니다. 그렇지 않으면 를 유효한 경로 ID로 설정합니다.

TargetId [in, optional]

버스의 대상 컨트롤러 또는 디바이스를 나타냅니다. 이 매개 변수는 이벤트가 어댑터에 대한 경우 사용되지 않습니다.

Lun [in, optional]

디바이스의 논리적 단위 번호를 나타냅니다. 이 매개 변수는 이벤트가 어댑터에 대한 경우 사용되지 않습니다.

WMIReregister 미니포트 드라이버가 IoWMIRegistrationControl을 호출하여 이전에 등록된 지정된 데이터 블록의 데이터 항목 또는 인스턴스 수를 변경했음을 나타냅니다.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

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)

추가 정보

StorPortInitialize