다음을 통해 공유


ScsiPortWmiSetInstanceCount 함수(scsiwmi.h)

ScsiPortWmiSetInstanceCount 요청 컨텍스트의 WNODE_ALL_DATA 구조 내에서 데이터 버퍼를 따로 설정해야 하는 인스턴스 수를 지정합니다.

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

통사론

BOOLEAN ScsiPortWmiSetInstanceCount(
  [in]  PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in]  ULONG                    InstanceCount,
  [out] PULONG                   BufferAvail,
  [out] PULONG                   SizeNeeded
);

매개 변수

[in] RequestContext

WMI SRB에 대한 요청 컨텍스트를 포함하는 형식 SCSIWMI_REQUEST_CONTEXT 구조체에 대한 포인터입니다.

[in] InstanceCount

미니 드라이버에서 데이터를 제공할 인스턴스 수를 포함합니다.

[out] BufferAvail

반환 시 인스턴스 이름 및 데이터를 설명하는 데 사용할 수 있는 버퍼 공간의 바이트 수를 포함합니다. 이 멤버에 반환되는 값은 해당 루틴의 BufferAvail 매개 변수에서 ScsiPortWmiSetData ScsiPortWmiSetInstanceName 루틴에 전달될 수 있습니다.

ScsiPortWmiSetInstanceCount 루틴은 각 인스턴스에 대해 하나의 배열 요소를 사용하여 데이터 버퍼에 대한 포인터 배열을 초기화합니다. WNODE에서 사용할 수 있는 메모리가 부족하여 InstanceCount 크기 배열을 초기화할 수 없는 경우 이 멤버에 0이 반환됩니다.

[out] SizeNeeded

입력 시 WNODE에서 내부 배열을 구성하기 전에 전체 WNODE 설명하는 데 필요한 바이트 수를 나타냅니다. 반환 시 이 멤버는 WNODE 내에서 새로 초기화된 배열을 포함하여 전체 WNODE의 크기를 포함합니다.

반환 값

작업이 성공하면 ScsiPortWmiSetInstanceCount 루틴은 TRUE 반환하고 요청 컨텍스트 내에 포함된 WNODE가 WNODE_ALL_DATA형식이 아닌 경우 FALSE .

발언

ScsiPortWmiSetData 또는 ScsiPortWmiSetInstanceName호출하기 전에 미니 드라이버는 ScsiPortWmiSetInstanceCount 호출해야 합니다. 미니 드라이버는 ScsiPortWmiSetInstanceCount 한 번만 호출해야 합니다.

RequestContext 매개 변수는 WMI(Windows Management Instrumentation) SRB(SCSI 요청 블록)와 연결된 정보를 포함하는 요청 컨텍스트 구조(SCSIWMI_REQUEST_CONTEXT)를 가리킵니다. 요청 컨텍스트 구조는 WMI 시스템에서 사용자 모드 데이터 소비자와 커널 모드 데이터 공급자(예: 드라이버) 간에 데이터를 전달하는 데 사용하는 WMI WNODE_XXX 구조 중 하나를 포함합니다.

ScsiPortWmiSetInstanceCount 루틴에는 요청 컨텍스트 내에 정의된 WNODE 구조체가 WNODE_ALL_DATA형식이어야 합니다. 이는 ScsiPortWmiSetInstanceCount WMI 데이터 블록과 연결된 여러 인스턴스에 대한 정보를 보관할 데이터 영역을 따로 설정하기 때문입니다. 단일 인스턴스에 대한 정보를 포함하는 WNODE_SINGLE_INSTANCE 구조와 달리 WNODE_ALL_DATA 구조체에는 여러 인스턴스의 버퍼 영역에 대한 포인터 배열이 포함되어 있으며, ScsiPortWmiSetInstanceCount 인스턴스 인덱스를 사용하여 인스턴스 데이터의 각 버퍼에 개별적으로 액세스할 수 있도록 이 배열을 초기화합니다.

요청 컨텍스트에 할당된 메모리는 미니포트 드라이버가 ScsiPortWmiPostProcess호출하고 ScsiPortWmiPostProcess 최종 SRB 상태 및 버퍼 크기를 반환할 때까지 유효해야 합니다. SRB가 보류될 수 있는 경우 요청 컨텍스트에 대한 메모리는 SRB 확장에서 할당되어야 합니다. SRB가 보류할 수 없는 경우 범위를 벗어나지 않는 스택 프레임에서 메모리를 할당할 수 있습니다.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 scsiwmi.h(Miniport.h, Scsi.h 포함)

참고 항목

SCSIWMI_REQUEST_CONTEXT

WNODE_ALL_DATA

WNODE_SINGLE_INSTANCE