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 プロバイダーは、 の pProviderChannelContext パラメーターで指定された場所で、このハンドルを NetDMA に返しました 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 記述子のリンクされた一覧です。 DescriptorVirtualAddress パラメーターのNET_DMA_DESCRIPTOR構造体の NextDescriptor メンバーには、リンク リスト内の次の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 ドライバーでサポートされます。 |
対象プラットフォーム | Windows |
ヘッダー | netdma.h (Netdma.h を含む) |
IRQL | <= DISPATCH_LEVEL |