NdisMSetupDmaTransfer マクロ (ndis.h)
NdisMSetupDmaTransfer 関数は、DMA 転送用のホスト DMA コントローラーを設定します。
構文
void NdisMSetupDmaTransfer(
_S,
_H,
_B,
_O,
_L,
_M_
);
パラメーター
_S
この関数が要求の状態を返す呼び出し元が指定した変数へのポインター。次のいずれかになります。
NDIS_STATUS_SUCCESS
DMA コントローラーは、指定されたデータを転送するように設定されています。このデータは、データの整合性を維持するためにデバイス間でフラッシュされます。
NDIS_STATUS_RESOURCES
ミニポートDmaHandle によって指定されたチャネルが現在データの転送中であるか、指定された 長 が無効であるため、転送用の DMA コントローラーを設定できませんでした。
_H
初期化中に NdisMRegisterDmaChannel 関数によって返される DMA ハンドル。
_B
データの転送元または転送先となるホスト メモリの範囲をマッピングするバッファー記述子へのポインター。
_O
転送を開始するマップされたバッファー内のバイト オフセット。 0 は、バッファー で指定された範囲の初期バイト 転送を開始する必要があることを示します。
_L
転送されるデータのバイト数。 Offset および Length で指定する範囲は、バッファー で指定 適切なサブ範囲である必要があります。
_M_
NIC を介したシステムからの送信転送に対して TRUE されるブール値。 それ以外の場合は、FALSE 。
戻り値
何一つ
備考
下位 DMA NIC のドライバーは、受信送信要求に応答して NdisMSetupDmaTransfer を呼び出します。この要求に対して、ドライバーは writeToDevice TRUE 設定します。 NIC から受信したデータをホスト メモリに転送するときに、WriteToDevice FALSE を するように設定します。
NdisMSetupDmaTransfer の呼び出し元は、転送のターゲットであるホスト メモリ範囲、またはホストから NIC へのダウンロード操作のデータを含むホスト メモリ範囲をマッピングするバッファー記述子を提供します。 NIC の DMA 制約に合わせてサイズ変更を指定するために、呼び出し元は、必要に応じて、Offset パラメーターと Length パラメーターを使用して転送するサブ範囲を設定できます。
呼び出し元は、WriteToDevice が FALSE 場合に、受信したデータを NIC から転送するホスト範囲を指定するバッファー記述子 指定する必要があります。 それ以外の場合、バッファー のバッファー記述子は、ミニポート ドライバーへのパケット記述子の入力にチェーンされました。 ミニポートSendNetBufferLists 関数です。
長さが 256 バイト未満の送信要求など、小さな送信要求のパフォーマンスを向上させるために、ミニポート ドライバーは、パケット データを内部ステージング バッファーにコピーし、ドライバーによって割り当てられたバッファー記述子マッピングを NdisMSetupDmaTransfer 渡すことができます。
NdisMSetupDmaTransfer から返されると、転送用にホスト DMA コントローラーがプログラムされています。 ミニポート ドライバーは、転送操作の NIC をプログラムします。
転送が完了すると、ミニポート ドライバーは、次を呼び出す必要があります。NdisMCompleteDmaTransfer 関数を します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisMSetupDmaTransfer (NDIS 5.1) を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (NdisMSetupDmaTransfer (NDIS 5.1) を参照) でサポートされています。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ndis.h (Ndis.h を含む) |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 を する | Irql_Miniport_Driver_Function(ndis) |
関連項目
NdisMCompleteDmaTransfer の
NdisMRegisterDmaChannel の