Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
USB passa i dati in transito sotto forma di pacchetti USB, che non devono essere confusi con NDIS o pacchetti di rete. La lunghezza massima di un pacchetto USB da o verso un endpoint USB è limitata al valore del campo wMaxPacketSize del descrittore dell'endpoint. Per le pipe bulk la dimensione massima del pacchetto è di 64 byte. A causa di vincoli di determinati controller host USB, esiste una penalità associata all'uso di pacchetti USB brevi (ad esempio, quelli di meno di 64 byte, durante lo streaming dei dati).
Per ovviare a questa limitazione, i dispositivi USB NDIS remoti possono aggiungere spaziatura interna a byte zero ai messaggi di dati in modo che non si verifichi un pacchetto breve (entro i vincoli del campo MaxTransferSize di REMOTE_NDIS_INITIALIZE_MSG). Il campo MessageLength del REMOTE_NDIS_PACKET_MSG finale non include questi byte di riempimento accodati.
Se il dispositivo ha trasmesso l'ultima REMOTE_NDIS_PACKET_MSG disponibile (quindi non ne rimangono più nella coda del dispositivo), è accettabile inviare un pacchetto USB breve.
Se l'ultima REMOTE_NDIS_PACKET_MSG di un messaggio di dati NDIS remoto inviato dal dispositivo (senza alcun riempimento a zero byte) termina con un pacchetto USB la cui lunghezza è esattamente la wMaxPacketSize per tale endpoint, il dispositivo può inviare un ulteriore pacchetto a zero byte come parte aggiuntiva del trasferimento. Alcune implementazioni del dispositivo sono semplificate da questa indennità.
Analogamente, alcuni chipset USB sul lato dispositivo non rilevano la fine di un trasferimento USB ricevuto che termina con un pacchetto USB la cui lunghezza è la wMaxPacketSize per tale endpoint. Per questo motivo, l'host deve aggiungere un pacchetto zero di un byte a un trasferimento di dati che altrimenti avrebbe una lunghezza multipla di wMaxPacketSize dell'endpoint ricevente. I dispositivi NDIS remoti USB devono tollerare il byte aggiunto. Il campo MessageLength del REMOTE_NDIS_PACKET_MSG finale non include questo byte aggiunto.