Dimensione massima del USB trasferisce su vari sistemi operativi

Riepilogo

In questo articolo descrive la dimensione massima di trasferimenti USB su vari sistemi operativi Microsoft Windows.

Microsoft Windows 2000

In Microsoft Windows 2000, la dimensione massima di un trasferimento USB è determinata dal driver di periferica che viene caricato per la periferica USB. La dimensione massima di trasferimenti USB viene determinata secondo uno dei seguenti modi:
  • Quando il driver di periferica seleziona la configurazione del dispositivo tramite il
    Funzione URB_FUNCTION_SELECT_CONFIGURATION .
  • Quando il driver di periferica seleziona un'interfaccia alternativa per il dispositivo tramite la funzione URB_FUNCTION_SELECT_INTERFACE .
Nella maggior parte dei casi, un trasferimento USB in Windows 2000 non dispone di alcun limite di dimensione hardcoded tranne il limite definito dal driver client.

Microsoft Windows XP e Microsoft Windows Server 2003

In Microsoft Windows XP e Microsoft Windows Server 2003, la dimensione massima di un trasferimento USB viene definita dal driver miniport del controller host USB o dal driver di porta USB (usbport). (La dimensione massima di un trasferimento USB non è definito dal driver della periferica client.) Se si utilizza più grande della dimensione massima di un trasferimento USB, potrebbe non riuscire la richiesta di trasferimento o un errore di interruzione possono essere visualizzati della schermata blu.

In Windows XP e Windows Server 2003, quando la dimensione massima di un trasferimento per un endpoint di massa è una minore di 4 kilobyte (KB) o uguale a 4 KB, il driver di porta divide la transazione in più trasferimenti. In teoria, questo comportamento rende la dimensione massima di un trasferimento USB illimitato per questi endpoint. Tuttavia, Microsoft non ha testato i trasferimenti di grandi e Microsoft non consiglia trasferimenti molto grandi.

Nota: In Windows XP e Windows Server 2003, la dimensione massima di trasferimenti USB non viene propagata attualmente per il driver client. Questo comportamento può cambiare nelle future versioni di Windows.

Ulteriori informazioni

Dimensione massima di trasferimenti USB

Windows 2000

Tipo di trasferimentoMaximumTransferSizeErrore segnalato
Endpoint di controllo 04 KBUSBD_STATUS_INVALID_PARAMETER
Controllo (altri endpoint)64 KBIndeterminato
InterruptIndeterminatoNessuno
Massa UHCIIndeterminatoNessuno
Massa OHCIIndeterminato (vedere nota)Nessuno
Tenere presente quanto segue sui trasferimenti in Windows 2000:
  • Se si utilizza più il limite di 255 pacchetti al blocco richiesta USB (URB) sugli endpoint isocrono a velocità massima, è che venga visualizzato il seguente messaggio di errore:
    USBD_STATUS_INVALID_PARAMETER
  • Quando si scrive un driver, essere consapevoli di prestazioni e risorse compromessi quando si utilizzano trasferimenti di grandi dimensioni.
  • Microsoft non consiglia di trasferimenti di massa di dimensioni molto grandi o trasferimenti di interrupt a causa delle limitazioni di risorse che vengono esposti dal driver Host Controller Interface OHCI (Open).
  • Le richieste per l'endpoint di controllo predefinito sono limitate a 4 KB per la compatibilità con versioni precedenti dei driver. La specifica USB limita altri trasferimenti di controllo a 64 KB. Tuttavia, non vi è alcun limite specifico nello stack di driver USB per gli endpoint di controllo non. I risultati della specifica di un trasferimento di più di 64 KB su un endpoint di controllo non sono definiti.
  • Dispositivi compositi in Windows 2000 hanno una dimensione di trasferimento massima di 4 KB quando si utilizza la funzione URB_FUNCTION_SELECT_CONFIGURATION per impostare la dimensione massima di trasferimento. Per aggirare questa limitazione, i driver devono utilizzare la funzione URB_FUNCTION_SELECT_INTERFACE . Per ulteriori informazioni, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:

    200977 non è possibile impostare MaximumTransferSize per un dispositivo composito USB

Windows XP e Windows Server 2003

Nella tabella seguente rappresenta limiti teorici; in questa tabella non rappresenta i limiti pratici.

Nota: Microsoft sconsiglia di trasferimenti di dimensioni molto grandi.
Tipo di trasferimentoMaximumTransferSizeErrore segnalato
Endpoint di controllo 04 KBUSBD_STATUS_INVALID_PARAMETER
Controllo (altri endpoint)64 KBControllo errori 0xFE
InterruptUn numero illimitatoNessuno
Massa UHCIUn numero illimitatoNessuno
Massa OHCI256KControllo errori 0xFE
Massa EHCI3344K
Controllo errori 0xFE
A velocità massima isocroni endpoint sono limitati a 255 pacchetti per URB. Endpoint isocrone ad alta velocità sono limitati a 1024 pacchetti per URB. Se si utilizza più di questi limiti, viene visualizzato il seguente errore USBD:
USBD_STATUS_INVALID_PARAMETER
Proprietà

ID articolo: 832430 - Ultima revisione: 30 gen 2017 - Revisione: 1

Feedback