다음을 통해 공유


PSCSIWMI_SET_DATAITEM 콜백 함수(scsiwmi.h)

미니포트 드라이버의 HwScsiWmiSetDataItem 루틴은 데이터 블록의 instance 단일 데이터 항목을 변경하기 위해 호출됩니다. 이 루틴은 선택 사항입니다.

참고 SCSI 포트 드라이버 및 SCSI 미니포트 드라이버 모델은 나중에 변경되거나 사용할 수 없습니다. 대신 Storport 드라이버Storport 미니포트 드라이버 모델을 사용하는 것이 좋습니다.
 

구문

PSCSIWMI_SET_DATAITEM PscsiwmiSetDataitem;

BOOLEAN PscsiwmiSetDataitem(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] ULONG InstanceIndex,
  [in] ULONG DataItemId,
  [in] ULONG BufferSize,
  [in] PUCHAR Buffer
)
{...}

매개 변수

[in] DeviceContext

ScsiPortWmiDispatchFunction에 전달된 미니포트 드라이버 정의 컨텍스트 값을 가리킵니다.

[in] RequestContext

미니포트 드라이버가 ScsiPortWmiDispatchFunction에 전달한 SCSIWMI_REQUEST_CONTEXT 구조를 가리킵니다.

[in] GuidIndex

미니포트 드라이버가 ScsiPortWmiDispatchFunction에 전달한 SCSI_WMILIB_CONTEXT 구조체의 GUID 목록에 대한 인덱스의 데이터 블록을 지정합니다.

[in] InstanceIndex

GuidIndex에서 지정한 블록에 여러 인스턴스가 있는 경우 InstanceIndex는 instance 지정합니다.

[in] DataItemId

설정할 데이터 항목의 ID를 지정합니다.

[in] BufferSize

버퍼에서 버퍼의 크기(바이트)를 지정합니다.

[in] Buffer

데이터 항목에 대한 새 값이 포함된 버퍼를 가리킵니다.

반환 값

HwScsiWmiSetDataItem은 요청이 보류 중인 경우 SRB_STATUS_PENDING 반환하거나 요청이 완료된 경우 0이 아닌 SRB 상태 값을 반환합니다. 이 루틴에서 반환되는 SRB 상태 값은 HwScsiWmiSetDataItem에 전달된 값과 동일합니다. 반환 값 데이터 형식이 BOOLEAN이지만 HwScsiWmiSetDataItem 루틴은 실제로 SRB 상태 값을 반환합니다.

설명

미니포트 드라이버는 Function 멤버가 SRB_FUNCTION_WMI 설정된 SRB를 받으면 초기화된 SCSI_WMILIB_CONTEXT 구조체에 대한 포인터와 Srb-WmiSubFunction>으로 설정된 MinorFunction을 사용하여 ScsiPortWmiDispatchFunction을 호출합니다. MINORFunction이 데이터 블록의 instance 항목을 변경하라는 요청을 나타내는 경우 SCSI 포트 드라이버는 미니포트 드라이버의 HwScsiWmiSetDataItem 루틴을 호출합니다.

미니포트 드라이버가 HwScsiWmiSetDataItem 루틴을 구현하지 않는 경우 미니포트 드라이버가 ScsiPortWmiDispatchFunction에 전달하는 SCSI_WMILIB_CONTEXT SetWmiDataItemNULL로 설정해야 합니다. 이 경우 포트 드라이버는 호출자에게 SRB_STATUS_ERROR 반환합니다.

요청이 보류되지 않으면 미니포트 드라이버는 HwScsiWmiSetDataItem 콜백에서 ScsiPortWmiPostProcess를 호출해야 합니다. 그렇지 않으면 미니포트 드라이버는 요청이 실제로 완료되면 ScsiPortWmiPostProcess 를 호출해야 합니다. 미니포트 드라이버는 적절한 SrbStatus 값으로 ScsiPortWmiPostProcess를 호출해야 합니다.

항목이 읽기 전용인 경우 미니포트 드라이버는 SRB_STATUS_ERROR 사용하여 ScsiPortWmiPostProcess 를 호출합니다. 그렇지 않으면 미니포트 드라이버가 항목을 변경하고 SRB_STATUS_SUCCESS 사용하여 ScsiPortWmiPostProcess 를 호출합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 scsiwmi.h(Scsiwmi.h 포함)

추가 정보

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess