SRB_GET_STREAM_INFO

Der Klassentreiber sendet diese Anforderung, um eine Beschreibung des Geräts und der unterstützten Streams abzurufen.

Rückgabewert

Der Minidriver sollte eine der folgenden Als status im SRB festlegen:

STATUS_SUCCESS
Gibt den erfolgreichen Abschluss des Befehls an.

STATUS_IO_DEVICE_ERROR
Gibt an, dass ein Hardwarefehler aufgetreten ist.

Kommentare

Der Klassentreiber übergibt einen Puffer in pSrb-CommandData.StreamBuffer > der Größe, die vom Minidriver als Reaktion auf die SRB_INITIALIZE_DEVICE Anforderung des Klassentreibers angegeben wurde. Der pSrb-Zeiger zeigt auf eine HW_STREAM_REQUEST_BLOCK-Struktur . Siehe auch PORT_CONFIGURATION_INFORMATION.

Der Minidriver füllt CommandData.StreamBuffer mit einer HW_STREAM_DESCRIPTOR , die das Gerät und die unterstützten Streams beschreibt. Die Größe dieses Puffers wird durch den Minidriver im Feld StreamDescriptorSize in der PORT_CONFIGURATION_INFORMATION-Struktur angegeben.

Der Klassentreiber stellt diese Anforderung normalerweise nur einmal aus. Der Minidriver erzwingt möglicherweise, dass der Klassentreiber diese Anforderung erneut ausgibt, um die Beschreibung der unterstützten Streams zu aktualisieren, indem StreamClassReenumerateStreams aufgerufen wird.

Wenn der SRB_GET_STREAM_INFO-Befehl vom Minidriver empfangen wird, sollte der Minidriver Folgendes ausführen:

  1. Rufen Sie die Zeiger für den Datenstromheader und die Datenstrukturen der Streaminformation ab. Beispiel:

     PHW_STREAM_HEADER pstrhdr =
      (PHW_STREAM_HEADER)&(pSrb->CommandData.StreamBuffer->StreamHeader);
     PHW_STREAM_INFORMATION pstrinfo =
      (PHW_STREAM_INFORMATION)&(pSrb->CommandData.StreamBuffer->StreamInfo);
    
    
  2. Stellen Sie sicher, dass der Puffer groß genug ist, um die zurückgegebenen Daten aufzunehmen.

  3. Schreiben Sie die Informationen in den Puffer.