SRB_GET_STREAM_INFO

Le pilote de classe envoie cette demande pour obtenir une description de l’appareil et des flux qu’il prend en charge.

Valeur de retour

Le minidriver doit définir l’un des éléments suivants comme status dans le SRB :

STATUS_SUCCESS
Indique la réussite de la commande.

STATUS_IO_DEVICE_ERROR
Indique qu’une défaillance matérielle s’est produite.

Commentaires

Le pilote de classe transmet une mémoire tampon dans pSrb-CommandData.StreamBuffer > de la taille spécifiée par le minidriver en réponse à la demande de SRB_INITIALIZE_DEVICE du pilote de classe. Le pointeur pSrb pointe vers une structure HW_STREAM_REQUEST_BLOCK . Consultez également PORT_CONFIGURATION_INFORMATION.

Le minidriver remplit CommandData.StreamBuffer avec un HW_STREAM_DESCRIPTOR qui décrit l’appareil et les flux qu’il prend en charge. La taille de cette mémoire tampon est indiquée par le minidriver dans le champ StreamDescriptorSize de la structure PORT_CONFIGURATION_INFORMATION .

Le pilote de classe émet normalement cette requête une seule fois. Le minidriver peut forcer le pilote de classe à rééditer cette demande, pour mettre à jour sa description des flux pris en charge, en appelant StreamClassReenumerateStreams.

Lorsque la commande SRB_GET_STREAM_INFO est reçue par le minidriver, le minidriver doit :

  1. Récupérez les pointeurs pour l’en-tête de flux et les structures de données d’informations de flux. Par exemple :

     PHW_STREAM_HEADER pstrhdr =
      (PHW_STREAM_HEADER)&(pSrb->CommandData.StreamBuffer->StreamHeader);
     PHW_STREAM_INFORMATION pstrinfo =
      (PHW_STREAM_INFORMATION)&(pSrb->CommandData.StreamBuffer->StreamInfo);
    
    
  2. Vérifiez que la mémoire tampon est suffisamment grande pour contenir les données retournées.

  3. Écrivez les informations dans la mémoire tampon.