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:

  1. 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);
    
    
  2. Verificare che il buffer sia sufficientemente grande da contenere i dati restituiti.

  3. Scrivere le informazioni nel buffer.