Поделиться через


Функция ScsiPortWmiPostProcess (scsiwmi.h)

Подпрограмма ScsiPortWmiPostProcess обновляет контекст запроса для WMI SRB.

Примечание Модели драйверов портов SCSI и драйверов мини-портов SCSI могут быть изменены или недоступны в будущем. Вместо этого рекомендуется использовать модели драйверов Storport и драйверов для мини-портов Storport .
 

Синтаксис

void ScsiPortWmiPostProcess(
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] UCHAR                    SrbStatus,
  [in] ULONG                    BufferUsed
);

Параметры

[in] RequestContext

Указатель на контекст запроса для этого SRB.

[in] SrbStatus

Указывает любое допустимое состояние SRB. Если выходной буфер, переданный драйверу мини-порта, был слишком мал, чтобы содержать все данные из запроса, драйвер мини-порта устанавливает для SrbStatus значение SRB_STATUS_DATA_OVERRUN.

[in] BufferUsed

Если SrbStatus указывает на успешное выполнение, драйвер мини-порта устанавливает для BufferUsed количество байтов данных, записанных в буфер. Если SrbStatus SRB_STATUS_DATA_OVERRUN, драйвер мини-порта устанавливает для BufferUsed количество байтов, необходимое для успешного завершения SRB.

Возвращаемое значение

None

Remarks

Драйвер мини-порта должен вызывать ScsiPortWmiPostProcess после обработки запроса WMI SRB и готовности к выполнению.

Для синхронных SDB в подпрограмме обратного вызова вызывается ScsiPortWmiPostProcess .

Для ожидающих SRB ScsiPortWmiPostProcess вызывается после обработки SRB и до ее завершения.

Если драйвер мини-порта устанавливает для SrbStatus значение SRB_STATUS_DATA_OVERRUN и задает BufferUsed, должны быть выполнены последовательные идентичные SSPB WMI с выделенным буфером, равным или превышающим BufferUsed байтов. Это должно быть достигнуто, если драйвер задает точное значение bufferUsed , необходимое для выполнения запроса при вызове ScsiPortWmiPostProcess с SrbStatus , равным SRB_STATUS_DATA_OVERRUN. Для выходной структуры переменного размера буфер входных данных SRB должен иметь достаточно сведений, чтобы определить точное значение BufferUsed . Если буфер входных данных не содержит достаточно информации, драйвер никогда не должен два раза завершать одно и то же SRB с SRB_STATUS_DATA_OVERRUN. Вместо этого драйвер должен задать SRB_STATUS_DATA_OVERRUN и запросить минимальный размер, необходимый для выходного буфера, а затем задать SRB_STATUS_SUCCESS и указать сбой в содержимом выходного буфера.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть scsiwmi.h (включая Miniport.h, Scsi.h)

См. также раздел

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus