Condividi tramite


PHW_RECEIVE_DEVICE_SRB funzione di callback (strmini.h)

La routine fornita dal minidriver gestisce le richieste del driver di classe che si applicano al driver nel suo complesso, ad esempio l'inizializzazione del dispositivo o l'apertura di un flusso all'interno del dispositivo.

Sintassi

PHW_RECEIVE_DEVICE_SRB PhwReceiveDeviceSrb;

void PhwReceiveDeviceSrb(
  [in] IN PHW_STREAM_REQUEST_BLOCK SRB
)
{...}

Parametri

[in] SRB

Puntatore al blocco di richiesta del flusso.

Valore restituito

nessuno

Osservazioni

Il minidriver specifica questa routine nel membro HwReceivePacket della relativa struttura HW_INITIALIZATION_DATA . Il minidriver passa questa struttura al driver di classe quando si registra chiamando StreamClassRegisterMinidriver.

StrMiniReceiveDevicePacket deve gestire le richieste del driver di classe che si applicano al driver nel suo complesso, ad esempio l'inizializzazione del dispositivo o l'apertura di un flusso all'interno del dispositivo. Il driver di classe passa le informazioni sotto forma di puntatore a un blocco di richiesta di flusso. Il driver di classe compila alcune delle voci nel blocco di richiesta del flusso. Il minidriver, al termine della routine, deve inserire informazioni aggiuntive che il driver di classe userà per continuare l'elaborazione.

Al termine della gestione della richiesta, il minidriver passa nuovamente la struttura al driver di classe chiamando StreamClassDeviceNotification(DeviceRequestComplete, pSRB-HwDeviceExtension>, pSRB).

Vedere informazioni sui codici SRB pertinenti in riferimento a SRB per la classe Stream.

Quando il minidriver termina l'elaborazione della richiesta, immette lo stato restituito dell'operazione in pSrb-Status>. Il minidriver deve immettere STATUS_SUCCESS per eseguire correttamente l'elaborazione. Se il minidriver non supporta tale valore di Command, deve impostare pSrb-Status> su STATUS_NOT_IMPLEMENTED. Se si verifica un errore hardware del dispositivo che impedisce al minidriver di completare la richiesta, impostare pSrb-Status> su STATUS_IO_DEVICE_ERROR. Altri codici di errore usati dalla routine in circostanze specifiche sono elencati in precedenza con il codice di comando specifico.

Si noti che il driver di classe passa le richieste di lettura e scrittura alla routine StrMiniReceiveStreamDataPacket .

Il minidriver registra la routine StrMiniReceiveStreamControlPacket come segue: quando il driver di classe apre il flusso, passa un blocco di richiesta SRB_OPEN_STREAM alla routine StrMiniReceiveDevicePacket del minidriver. Il membro StreamObject del pacchetto della richiesta punta a un HW_STREAM_OBJECT. Il minidriver imposta il membro ReceiveControlPacket della struttura a cui punta StreamObject sulla routine StrMiniReceiveControlPacket del minidriver.

Al termine della gestione della richiesta, il minidriver passa nuovamente la struttura al driver di classe chiamando StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB).

Vedere informazioni sui codici SRB pertinenti in riferimento a SRB per la classe Stream.

Quando il minidriver termina l'elaborazione della richiesta, immette lo stato restituito dell'operazione in pSrb-Status>. Il minidriver deve immettere STATUS_SUCCESS per eseguire correttamente l'elaborazione. Se il minidriver non supporta tale valore di Command, deve impostare pSrb-Status> su STATUS_NOT_IMPLEMENTED. Se si verifica un errore hardware del dispositivo che impedisce al minidriver di completare la richiesta, impostare pSrb-Status> su STATUS_IO_DEVICE_ERROR. Altri codici di errore usati dalla routine in circostanze specifiche sono elencati in precedenza con il codice di comando specifico.

Il driver della classe di flusso chiama la routine StrMiniReceiveStreamDataPacket del minidriver per gestire le richieste di lettura e scrittura per un flusso specifico.

Il minidriver registra la routine StrMiniReceiveStreamDataPacket come indicato di seguito: quando il driver di classe apre il flusso, passa un blocco di richiesta SRB_OPEN_STREAM alla routine StrMiniReceiveDevicePacket del minidriver. StreamObject del pacchetto della richiesta punta a un HW_STREAM_OBJECT. Il minidriver imposta il membro ReceiveDataPacket della struttura a cui punta pSrb-StreamObject> sulla routine StrMiniReceiveDataPacket del minidriver.

Al termine della gestione della richiesta, il minidriver passa nuovamente la struttura al driver di classe chiamando StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB).

Vedere informazioni sui codici SRB pertinenti in riferimento a SRB per la classe Stream.

Quando il minidriver termina l'elaborazione della richiesta, immette lo stato restituito dell'operazione in pSrb-Status>. Il minidriver deve immettere STATUS_SUCCESS per eseguire correttamente l'elaborazione. Se il minidriver non supporta tale valore di Command, deve impostare pSrb-Status> su STATUS_NOT_IMPLEMENTED. Se si verifica un errore hardware del dispositivo che impedisce al minidriver di completare la richiesta, impostare pSrb-Status> su STATUS_IO_DEVICE_ERROR. Altri codici di errore usati dalla routine in circostanze specifiche sono elencati in precedenza con il codice di comando specifico.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione strmini.h (include Strmini.h)