PSCSIWMI_SET_DATABLOCK 콜백 함수(scsiwmi.h)
미니포트 드라이버의 HwScsiWmiSetDataBlock 루틴은 데이터 블록의 단일 인스턴스에 있는 모든 데이터 항목을 변경하기 위해 호출됩니다. 이 루틴은 선택 사항입니다.
구문
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 을 호출하고 MinorFunction 은 Srb->WmiSubFunction으로 설정됩니다. MinorFunction이 데이터 블록의 인스턴스를 변경하라는 요청을 나타내는 경우 SCSI 포트 드라이버는 미니포트 드라이버의 HwScsiWmiSetDataBlock 루틴을 호출합니다.
미니포트 드라이버가 HwScsiWmiSetDataBlock 루틴을 구현하지 않는 경우 미니포트 드라이버가 ScsiPortWmiDispatchFunction에 전달하는 SCSI_WMILIB_CONTEXT SetWmiDataBlock을 NULL로 설정해야 합니다. 이 경우 포트 드라이버는 호출자에게 SRB_STATUS_ERROR 반환합니다.
미니포트 드라이버가 HwScsiWmiSetDataBlock 을 구현하는 경우 데이터 블록의 인스턴스를 버퍼의 새 값으로 변경해야 합니다.
데이터 블록의 모든 항목이 읽기 전용인 경우 미니포트 드라이버는 SRB_STATUS_ERROR 반환해야 합니다. 그렇지 않으면 미니포트 드라이버가 할 수 있는 항목을 변경하고 SRB_STATUS_SUCCESS 반환합니다.
미니포트 드라이버는 요청이 완료되면 적절한 SrbStatus 값으로 ScsiPortWmiPostProcess를 호출해야 합니다. 요청이 보류되지 않으면 HwScsiWmiSetDataBlock 콜백에서 ScsiPortWmiPostProcess를 호출해야 합니다. 그렇지 않으면 요청이 실제로 완료될 때 ScsiPortWmiPostProcess 를 호출해야 합니다.
요구 사항
| 대상 플랫폼 | 데스크톱 |
| 헤더 | scsiwmi.h(Scsiwmi.h 포함) |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기