Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
USB pasa datos a través de la conexión en forma de paquetes USB, que no deben confundirse con los paquetes NDIS o de red. La longitud máxima de un paquete USB hacia o desde un punto de conexión USB se limita al valor del campo wMaxPacketSize del descriptor del punto de conexión. En el caso de las canalizaciones masivas, el tamaño máximo del paquete es de 64 bytes. Debido a restricciones de determinados controladores de host USB, hay una penalización asociada al uso de paquetes USB cortos (por ejemplo, los de menos de 64 bytes, cuando se transmiten datos).
Para solucionar esta limitación, los dispositivos USB NDIS remotos pueden anexar relleno de cero bytes a los mensajes de datos para que no se produzca un paquete corto (dentro de las restricciones del campo MaxTransferSize de REMOTE_NDIS_INITIALIZE_MSG). El campo MessageLength del REMOTE_NDIS_PACKET_MSG final no incluye estos bytes de relleno anexados.
Si el dispositivo ha transmitido su última REMOTE_NDIS_PACKET_MSG disponible (por lo que no queda más en la cola del dispositivo), es aceptable enviar un paquete USB corto.
Si el último REMOTE_NDIS_PACKET_MSG de un mensaje de datos NDIS remoto de envío de dispositivo (sin relleno de cero bytes) termina con un paquete USB cuya longitud es exactamente wMaxPacketSize para ese punto de conexión, el dispositivo puede enviar un paquete cero de un byte adicional como parte anexada de la transferencia. Algunas implementaciones de dispositivos se simplifican mediante esta concesión.
Del mismo modo, algunos conjuntos de chips USB del lado del dispositivo no detectan el final de una transferencia USB recibida que termina con un paquete USB cuya longitud es wMaxPacketSize para ese punto de conexión. Por este motivo, el host debe anexar un paquete cero de un byte a una transferencia de datos que, de lo contrario, tendría una longitud que es un múltiplo del wMaxPacketSize del punto de conexión receptor. Los dispositivos NDIS remotos USB deben tolerar el byte anexado. El campo MessageLength del REMOTE_NDIS_PACKET_MSG final no incluye este byte anexado.