функция обратного вызова PHW_RECEIVE_DEVICE_SRB (strmini.h)
Подпрограмма, предоставляемая мини-накопителем, обрабатывает запросы драйвера класса, которые применяются к драйверу в целом, например инициализацию устройства или открытие потока на устройстве.
Синтаксис
PHW_RECEIVE_DEVICE_SRB PhwReceiveDeviceSrb;
void PhwReceiveDeviceSrb(
[in] IN PHW_STREAM_REQUEST_BLOCK SRB
)
{...}
Параметры
[in] SRB
Указатель на блок запроса потока.
Возвращаемое значение
None
Remarks
Minidriver указывает эту подпрограмму в элементе HwReceivePacket своей структуры HW_INITIALIZATION_DATA . Мини-диск передает эту структуру драйверу класса, когда он регистрирует себя путем вызова StreamClassRegisterMinidriver.
StrMiniReceiveDevicePacket должен обрабатывать запросы драйвера класса, которые применяются к драйверу в целом, например инициализацию устройства или открытие потока на устройстве. Драйвер класса передает свои сведения в виде указателя на блок запросов потока. Драйвер класса заполняет некоторые записи в блоке запросов потока. По завершении процедуры мини-диск должен заполнить дополнительные сведения, которые драйвер класса будет использовать для продолжения обработки.
После завершения обработки запроса мини-драйвер передает структуру обратно драйверу класса, вызвав StreamClassDeviceNotification(DeviceRequestComplete, pSRB-HwDeviceExtension>, pSRB).
Сведения о соответствующих кодах SRB см. в справочнике по классу SRB Stream.
Когда мини-диск завершает обработку запроса, он вводит состояние возврата операции в pSrb-Status>. Мини-диск должен ввести STATUS_SUCCESS для нормальной успешной обработки. Если мини-диск не поддерживает это значение Command, необходимо задать для параметра pSrb-Status> значение STATUS_NOT_IMPLEMENTED. Если возникла ошибка оборудования устройства, которая не позволяет мини-driver выполнить запрос, необходимо задать для pSrb-Status> значение STATUS_IO_DEVICE_ERROR. Другие коды ошибок, которые подпрограмма использует в определенных обстоятельствах, перечислены выше с конкретным кодом command.
Обратите внимание, что драйвер класса передает запросы на чтение и запись в подпрограмму StrMiniReceiveStreamDataPacket .
Minidriver регистрирует свою подпрограмму StrMiniReceiveStreamControlPacket следующим образом: когда драйвер класса открывает поток, он передает блок запроса SRB_OPEN_STREAM в подпрограмму StrMiniReceiveDevicePacket мини-диска. Элемент StreamObject пакета запроса указывает на HW_STREAM_OBJECT. Мини-диск задает элемент ReceiveControlPacket структуры, на которую указывает StreamObject , в подпрограмму StrMiniReceiveControlPacket мини-драйвера.
После завершения обработки запроса мини-драйвер передает структуру обратно в драйвер класса, вызвав StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB, pSRB).
Сведения о соответствующих кодах SRB см. в справочнике по классу SRB Stream.
Когда мини-диск завершает обработку запроса, он вводит состояние возврата операции в pSrb-Status>. Мини-диск должен ввести STATUS_SUCCESS для нормальной успешной обработки. Если мини-диск не поддерживает это значение Command, необходимо задать для параметра pSrb-Status> значение STATUS_NOT_IMPLEMENTED. Если возникла ошибка оборудования устройства, которая не позволяет мини-driver выполнить запрос, необходимо задать для pSrb-Status> значение STATUS_IO_DEVICE_ERROR. Другие коды ошибок, которые подпрограмма использует в определенных обстоятельствах, перечислены выше с конкретным кодом command.
Драйвер класса потока вызывает подпрограмму StrMiniReceiveStreamDataPacket мини-драйвера для обработки запросов на чтение и запись для определенного потока.
Minidriver регистрирует свою подпрограмму StrMiniReceiveStreamDataPacket следующим образом: Когда драйвер класса открывает поток, он передает блок запроса SRB_OPEN_STREAM в подпрограмму StrMiniReceiveDevicePacket мини-драйвера. Объект StreamObject пакета запроса указывает на HW_STREAM_OBJECT. Мини-диск устанавливает элемент ReceiveDataPacket структуры, на который указывает pSrb-StreamObject>, в подпрограмму StrMiniReceiveDataPacket мини-драйвера.
После завершения обработки запроса мини-драйвер передает структуру обратно в драйвер класса, вызвав StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB, pSRB).
Сведения о соответствующих кодах SRB см. в справочнике по классу SRB Stream.
Когда мини-диск завершает обработку запроса, он вводит состояние возврата операции в pSrb-Status>. Мини-диск должен ввести STATUS_SUCCESS для нормальной успешной обработки. Если мини-диск не поддерживает это значение Command, необходимо задать для параметра pSrb-Status> значение STATUS_NOT_IMPLEMENTED. Если возникла ошибка оборудования устройства, которая не позволяет мини-driver выполнить запрос, необходимо задать для pSrb-Status> значение STATUS_IO_DEVICE_ERROR. Другие коды ошибок, которые подпрограмма использует в определенных обстоятельствах, перечислены выше с конкретным кодом command.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | strmini.h (включая Strmini.h) |