SRB_GET_STREAM_INFO
Il driver di classe invia questa richiesta per ottenere una descrizione del dispositivo e dei flussi supportati.
Valore restituito
Il minidriver deve impostare uno dei seguenti come stato in SRB:
STATUS_SUCCESS
Indica il completamento corretto del comando.
STATUS_IO_DEVICE_ERROR
Indica che si è verificato un errore hardware.
Commenti
Il driver di classe passa un buffer in pSrb-CommandData.StreamBuffer > delle dimensioni specificate dal minidriver in risposta alla richiesta di SRB_INITIALIZE_DEVICE del driver di classe. Il puntatore pSrb punta a una struttura HW_STREAM_REQUEST_BLOCK . Vedere anche PORT_CONFIGURATION_INFORMATION.
Il minidriver riempie CommandData.StreamBuffer con un HW_STREAM_DESCRIPTOR che descrive il dispositivo e i flussi supportati. Le dimensioni di questo buffer sono indicate dal minidriver nel campo StreamDescriptorSize nella struttura PORT_CONFIGURATION_INFORMATION .
Il driver di classe invia normalmente questa richiesta una sola volta. Il minidriver può forzare il driver di classe a eseguire nuovamente questa richiesta, per aggiornare la descrizione dei flussi supportati chiamando StreamClassReenumerateStreams.
Quando il comando SRB_GET_STREAM_INFO viene ricevuto dal minidriver, il minidriver deve:
Recuperare i puntatori per l'intestazione del flusso e le strutture dei dati delle informazioni sul flusso. Ad esempio:
PHW_STREAM_HEADER pstrhdr = (PHW_STREAM_HEADER)&(pSrb->CommandData.StreamBuffer->StreamHeader); PHW_STREAM_INFORMATION pstrinfo = (PHW_STREAM_INFORMATION)&(pSrb->CommandData.StreamBuffer->StreamInfo);
Verificare che il buffer sia sufficientemente grande da contenere i dati restituiti.
Scrivere le informazioni nel buffer.