PSCSIWMI_SET_DATABLOCK 콜백 함수(scsiwmi.h)

미니포트 드라이버의 HwScsiWmiSetDataBlock 루틴은 데이터 블록의 단일 인스턴스에 있는 모든 데이터 항목을 변경하기 위해 호출됩니다. 이 루틴은 선택 사항입니다.

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

구문

PSCSIWMI_SET_DATABLOCK PscsiwmiSetDatablock;

BOOLEAN PscsiwmiSetDatablock(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] ULONG InstanceIndex,
  [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는 인스턴스를 지정합니다.

[in] BufferSize

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

[in] Buffer

인스턴스에 대한 새 값이 포함된 버퍼를 가리킵니다.

반환 값

HwScsiWmiSetDataBlock 은 요청이 보류 중인 경우 SRB_STATUS_PENDING 반환하거나 요청이 완료된 경우 0이 아닌 SRB 상태 값을 반환합니다. 이 루틴에서 반환된 SRB 상태 값은 ScsiPortWmiPostProcess에 전달된 값과 동일합니다.

설명

미니포트 드라이버는 함수 멤버가 SRB_FUNCTION_WMI 설정된 SRB를 받으면 초기화된 SCSI_WMILIB_CONTEXT 구조체에 대한 포인터를 사용하여 ScsiPortWmiDispatchFunction 을 호출하고 MinorFunctionSrb->WmiSubFunction으로 설정됩니다. MinorFunction이 데이터 블록의 인스턴스를 변경하라는 요청을 나타내는 경우 SCSI 포트 드라이버는 미니포트 드라이버의 HwScsiWmiSetDataBlock 루틴을 호출합니다.

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

미니포트 드라이버가 HwScsiWmiSetDataBlock 을 구현하는 경우 데이터 블록의 인스턴스를 버퍼의 새 값으로 변경해야 합니다.

데이터 블록의 모든 항목이 읽기 전용인 경우 미니포트 드라이버는 SRB_STATUS_ERROR 반환해야 합니다. 그렇지 않으면 미니포트 드라이버가 할 수 있는 항목을 변경하고 SRB_STATUS_SUCCESS 반환합니다.

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

요구 사항

   
대상 플랫폼 데스크톱
헤더 scsiwmi.h(Scsiwmi.h 포함)

참고 항목

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess