다음을 통해 공유


HW_UNIT_CONTROL 콜백 함수(storport.h)

미니포트 드라이버의 HwStorUnitControl 루틴은 동기 작업을 수행하여 스토리지 단위 디바이스의 상태를 제어하기 위해 호출됩니다.

구문

HW_UNIT_CONTROL HwUnitControl;

SCSI_UNIT_CONTROL_STATUS HwUnitControl(
  [in] PVOID DeviceExtension,
  [in] SCSI_UNIT_CONTROL_TYPE ControlType,
  [in] PVOID Parameters
)
{...}

매개 변수

[in] DeviceExtension

미니포트 드라이버의 단위별 스토리지 영역에 대한 포인터입니다.

[in] ControlType

각 컨트롤 형식이 미니포트 드라이버에 의해 작업을 시작하는 단위 제어 작업을 지정하는 SCSI_UNIT_CONTROL_TYPE 값입니다 . 자세한 내용은 SCSI_UNIT_CONTROL_TYPE 참조하세요.

[in] Parameters

ControlType과 관련된 정보를 포함하는 구조체 또는 값에 대한 포인터입니다. 모든 구조체는 호출자가 할당합니다. 자세한 내용은 SCSI_UNIT_CONTROL_TYPE 참조하세요.

주소

컨트롤 작업이 지정된 단위의 주소입니다.

반환 값

컨트롤 형식에 따라 HwStorUnitControl 은 다음 SCSI_UNIT_CONTROL_STATUS 값 중 하나를 반환합니다.

반환 코드 설명
ScsiUnitControlSuccess 미니포트 드라이버가 요청된 작업을 성공적으로 완료했습니다.
ScsiUnitControlUnsuccessful 단위 제어 작업이 실패했습니다.

설명

Storport는 HBA가 초기화된 후 첫 번째 I/O 이전에 ScsiQuerySupportedControlTypes 컨트롤 형식을 사용하여 미니포트의 HwStorUnitControl을 호출합니다. 미니포트 드라이버는 매개 변수SCSI_SUPPORTED_CONTROL_TYPE_LIST 구조체를 지원하는 작업으로 채웁니다. HwStorUnitControl이 이 호출에서 반환되면 Storport 드라이버는 미니포트에서 지원하는 작업에 대해서만 미니포트 드라이버의 HwStorAdapterControl 콜백을 호출합니다.

Storport는 HwStorUnitControl 을 호출하여 미니포트 드라이버에 Address로 식별된 단위 디바이스에 대한 변경 사항을 알리거나 미니포트가 단위 시작 또는 단위에 대한 전원 제어 작업 처리와 같은 해당 단위에서 쿼리 또는 설정 작업을 수행해야 한다고 알립니다.

다음 표에는 현재 IRQL 및 컨트롤 형식이 발급될 때 획득한 스핀 잠금이 나열되어 있습니다.

컨트롤 종류 Irql 스핀 잠금
ScsiQuerySupportedControlTypes PASSIVE_LEVEL 없음
ScsiUnitUsage PASSIVE_LEVEL 없음
ScsiUnitStart PASSIVE_LEVEL 없음
ScsiUnitPower DISPATCH_LEVEL 없음
ScsiUnitPoFxPowerInfo PASSIVE_LEVEL 없음
ScsiUnitPoFxPowerRequired DISPATCH_LEVEL 없음
ScsiUnitPoFxPowerActive DISPATCH_LEVEL 없음
ScsiUnitPoFxPowerSetFState DISPATCH_LEVEL 없음
ScsiUnitPoFxPowerControl DISPATCH_LEVEL 없음
ScsiUnitRemove PASSIVE_LEVEL 없음
ScsiUnitSurpriseRemoval PASSIVE_LEVEL 없음
ScsiUnitRichDescription PASSIVE_LEVEL 없음
ScsiUnitQueryBusType PASSIVE_LEVEL 없음
ScsiUnitQueryFruId PASSIVE_LEVEL 없음

HwStorUnitControl 이름은 자리 표시자일 뿐입니다. 이 루틴의 실제 프로토타입은 다음과 같이 storport.h 에 정의됩니다.

typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
  _In_ PVOID  DeviceExtension,
  _In_ SCSI_UNIT_CONTROL_TYPE  ControlType,
  _In_ PVOID  Parameters
  );

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
대상 플랫폼 유니버설
헤더 storport.h(Storport.h 포함)
IRQL 설명 부분을 참조하세요.

추가 정보

HwStorAdapterControl

SCSI_SUPPORTED_CONTROL_TYPE_LIST

SCSI_UNIT_CONTROL_TYPE