<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://satyria.de/arm/index.php?action=history&amp;feed=atom&amp;title=USB_%28PI4%29</id>
	<title>USB (PI4) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://satyria.de/arm/index.php?action=history&amp;feed=atom&amp;title=USB_%28PI4%29"/>
	<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=USB_(PI4)&amp;action=history"/>
	<updated>2026-08-24T17:58:18Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in C und Assembler mit Raspberry</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://satyria.de/arm/index.php?title=USB_(PI4)&amp;diff=1327&amp;oldid=prev</id>
		<title>Satyria: Die Seite wurde neu angelegt: „Informationen:  usbconfigparser.c: Wichtig hier zu wissen: Warum wird hier &quot;Audio&quot; erwähnt? Bei Audio-Geräten, wie USB-Headset gibt es im USB-Standard eine Besonderheit: Ein normaler Endpoint-Deskriptor (DESCRIPTOR_ENDPOINT) hat eine feste Länge von 9 Bytes (sizeof(TUSBEndpointDescriptor)). Bei USB Audio Class 1.0 Geräten enthält der Endpoint-Deskriptor jedoch zusätzliche Audiodaten (z.B. für Synchronisation oder Refresh-Raten) und ist daher 11 Byt…“</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=USB_(PI4)&amp;diff=1327&amp;oldid=prev"/>
		<updated>2026-07-17T05:36:41Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Informationen:  usbconfigparser.c: Wichtig hier zu wissen: Warum wird hier &amp;quot;Audio&amp;quot; erwähnt? Bei Audio-Geräten, wie USB-Headset gibt es im USB-Standard eine Besonderheit: Ein normaler Endpoint-Deskriptor (DESCRIPTOR_ENDPOINT) hat eine feste Länge von 9 Bytes (sizeof(TUSBEndpointDescriptor)). Bei USB Audio Class 1.0 Geräten enthält der Endpoint-Deskriptor jedoch zusätzliche Audiodaten (z.B. für Synchronisation oder Refresh-Raten) und ist daher 11 Byt…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Informationen:&lt;br /&gt;
&lt;br /&gt;
usbconfigparser.c:&lt;br /&gt;
Wichtig hier zu wissen:&lt;br /&gt;
Warum wird hier &amp;quot;Audio&amp;quot; erwähnt?&lt;br /&gt;
Bei Audio-Geräten, wie USB-Headset gibt es im USB-Standard eine Besonderheit:&lt;br /&gt;
Ein normaler Endpoint-Deskriptor (DESCRIPTOR_ENDPOINT) hat eine feste Länge von 9 Bytes (sizeof(TUSBEndpointDescriptor)).&lt;br /&gt;
Bei USB Audio Class 1.0 Geräten enthält der Endpoint-Deskriptor jedoch zusätzliche Audiodaten (z.B. für Synchronisation&lt;br /&gt;
oder Refresh-Raten) und ist daher 11 Bytes groß.&lt;br /&gt;
&lt;br /&gt;
Wenn der Parser auf ein Interface stößt, das zur USB-Audioklasse gehört:&lt;br /&gt;
&lt;br /&gt;
  bInAudio10Interface = pCurrentPosition-&amp;gt;Interface.bInterfaceClass == 0x01&lt;br /&gt;
                      &amp;amp;&amp;amp; pCurrentPosition-&amp;gt;Interface.bInterfaceProtocol != 0x20;&lt;br /&gt;
&lt;br /&gt;
...merkt er sich das über die Flag bInAudio10Interface.&lt;br /&gt;
Sobald er danach den dazugehörigen Endpoint-Deskriptor analysiert:&lt;br /&gt;
&lt;br /&gt;
  if (bInAudio10Interface)&lt;br /&gt;
  {&lt;br /&gt;
    // Audio class 1.0 EP descriptors have additional fields.&lt;br /&gt;
    ucAlternateLen = sizeof (TUSBAudioEndpointDescriptor);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
...erlaubt er als alternative, gültige Länge auch die 11 Bytes der Audio-Spezifikation. Ohne diese Unterscheidung&lt;br /&gt;
würde der Parser den Deskriptor fälschlicherweise als fehlerhaft (beschädigt) einstufen und das Gerät ablehnen.&lt;br /&gt;
&lt;br /&gt;
Warum ist das hier wichtig:&lt;br /&gt;
Sicherheit vor Abstürzen: Sollte ein Benutzer jemals versehentlich ein USB-Headset oder ein USB-Mikrofon in den&lt;br /&gt;
Raspberry Pi stecken, sorgt dieser Code dafür, dass der USB-Stack das Gerät sauber als „nicht unterstützt“ ignoriert.&lt;br /&gt;
Sollte dies fehlen, würde der Parser bei einem solchen Gerät einen Invalid Configuration Descriptor-Fehler werfen und&lt;br /&gt;
den gesamten USB-Port oder -Stack blockieren.&lt;/div&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
</feed>