Community Translation - XferData Fails when Large Amount of Data is Requested - KBA215067

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi,               

I would like to translate KBA215067 into Japanese.

Please confirm to my work.

Thanks,

Kenshow

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi, Kenshow-san

Confirm to work this KBA.

Thanks,

Jenna

Jenna Jo
0 Likes
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi Jenna-san,

                                

Japanese translation was over.
Please check below.

Original KBA:

XferData Fails when Large Amount of Data is Requested - KBA215067

Thanks.

Kenshow

==============================

タイトル: 大量のデータが要求されるとXferDataが失敗する - KBA215067

バージョン:*A

質問:

XferData(またはBeginDataXfer)呼び出しを使用すると、大量のデータが要求され、転送が失敗する可能性があります。なぜこれが発生し、どうすれば修正できますでしょうか?

回答:

XferDataは、指定された量のデータを直接要求するか、ホストコントローラードライバーに送信します。ホストドライバーは、転送タイプ(BulkIsocInterrupt、またはControl)とOSバージョンに応じて、特定の最大サイズのみをキューに入れることができます。最大転送サイズの詳細については、 https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-bandwidth-allocationにあるMSDNの記事をご参照願います。

この問題を解決するには、大きなリクエストを小さなサイズの複数のリクエストに分割します(サイズは、指定されたOSで許可されている最大転送サイズと同じです)。

また、packetMode(ブール値)と呼ばれるXferData3番目のパラメータを使用して、wMaxPacketSizeの倍数で要求をキューに入れることもできます。

したがって、たとえば、C#のバルクエンドポイントの場合、これは次のようになります。

bool isPacketMode = true;

bool transferResult = BulkEndpoint.XferData(ref xferBufferref xferLengthisPacketMode);

==============================

9-July-2020

Kenshow

0 Likes