DMA_START_HANDLER コールバック関数 (netdma.h)
Windows 8 以降で使用できます。
ProviderStartDma 関数は、指定された DMA チャネルで DMA 転送を開始します。
構文
DMA_START_HANDLER DmaStartHandler;
NTSTATUS DmaStartHandler(
[in] PVOID ProviderChannelContext,
[in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
[in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
[in] ULONG DescriptorCount
)
{...}
パラメーター
[in] ProviderChannelContext
DMA チャネルのコンテキスト領域を識別するポインター。 DMA プロバイダーは、このハンドルを NetDMA の pProviderChannelContext パラメーターで指定された場所に返しました。ProviderAllocateDmaChannel 関数を します。
[in] DescriptorVirtualAddress
DMA 記述子のリンクされたリスト内の最初の NET_DMA_DESCRIPTOR 構造体の仮想アドレスへのポインター。 対応する物理アドレスは、DescriptorPhysicalAddress パラメーターで指定されます。
[in] DescriptorPhysicalAddress
DMA 記述子のリンクされたリスト内の最初の DMA 記述子の物理アドレスへのポインター。 対応する仮想アドレスは、DescriptorVirtualAddress パラメーターで指定されます。
[in] DescriptorCount
DescriptorVirtualAddress の DMA 記述子 数。
戻り値
ProviderStartDma は、次のいずれかの状態値を返します。
リターン コード | 形容 |
---|---|
|
操作が正常に完了しました。 |
|
リソースが不足しているため、操作に失敗しました。 |
|
指定されていない理由で操作が失敗しました。 |
備考
NetDMA インターフェイスは、DMA プロバイダー ドライバーの ProviderStartDma 関数を呼び出して、DMA 転送を開始します。 NetDMA インターフェイスは、DMA チャネル 割り当てられた後、いつでも ProviderStartDma を呼び出すことができます。 NetDMA インターフェイスは 、ProviderAbortDma、ProviderResetChannel、または ProviderStartDma を呼び出す必要があります。DMA チャネルの ProviderAllocateDmaChannel 関数を します。
DMA 転送のソースは、DMA 記述子のリンクされた一覧です。 NextDescriptorDescriptorVirtualAddress パラメーターの NET_DMA_DESCRIPTOR 構造体のメンバーには、リンクリスト内の次のNET_DMA_DESCRIPTOR構造体の物理アドレスが含まれています。
ProviderStartDma 最初の DMA 転送を開始した後、NetDMA インターフェイスは、ProviderAppendDma 関数を呼び出して、転送に追加のデータを追加できます。
NetDMA は、IRQL <= DISPATCH_LEVEL で ProviderStartDma 呼び出します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Server 2008 の NetDMA 2.0 ドライバーでサポートされています。 Windows Server 2008 の NetDMA 1.1 ドライバーでサポートされています。 Windows Server 2008 および Windows Vista の NetDMA 1.0 ドライバーでサポートされます。 |
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | netdma.h (Netdma.h を含む) |
IRQL | <= DISPATCH_LEVEL |