ScsiPortWmiSetInstanceCount 함수(scsiwmi.h)
ScsiPortWmiSetInstanceCount는 요청 컨텍스트의 WNODE_ALL_DATA 구조 내에서 데이터 버퍼를 따로 설정해야 하는 인스턴스 수를 지정합니다.
구문
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
반환 시 instance 이름 및 데이터를 설명하는 데 사용할 수 있는 버퍼 공간의 바이트 수를 포함합니다. 이 멤버에서 반환되는 값은 해당 루틴의 BufferAvail 매개 변수에 있는 루틴 ScsiPortWmiSetData 및 ScsiPortWmiSetInstanceName에 전달할 수 있습니다.
ScsiPortWmiSetInstanceCount 루틴은 각 instance 대해 하나의 배열 요소를 사용하여 데이터 버퍼에 대한 포인터 배열을 초기화합니다. 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 데이터 블록과 연결된 여러 인스턴스에 대한 정보를 보유할 데이터 영역을 따로 설정하기 때문입니다. 단일 instance 대한 정보를 포함하는 WNODE_SINGLE_INSTANCE 구조체와 달리 WNODE_ALL_DATA 구조에는 서로 다른 인스턴스의 버퍼 영역에 대한 포인터 배열이 포함되어 있으며 ScsiPortWmiSetInstanceCount는 이 배열을 초기화하여 instance 인덱스를 사용하여 instance 데이터의 각 버퍼에 개별적으로 액세스할 수 있도록 합니다.
요청 컨텍스트에 할당된 메모리는 미니포트 드라이버가 ScsiPortWmiPostProcess를 호출하고 ScsiPortWmiPostProcess가 최종 SRB 상태 및 버퍼 크기를 반환할 때까지 유효해야 합니다. SRB가 보류될 수 있는 경우 요청 컨텍스트에 대한 메모리는 SRB 확장에서 할당되어야 합니다. SRB가 보류할 수 없는 경우 scope 나가지 않는 스택 프레임에서 메모리를 할당할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | scsiwmi.h(Miniport.h, Scsi.h 포함) |