NdisCopyFromPacketToPacketSafe 関数 (ndis.h)
メモ NDIS 5。 x は非推奨となり、NDIS 6 に置き換えられます。 x があります。 新しい NDIS ドライバーの開発については、「 Windows Vista 以降のネットワーク ドライバー」を参照してください。 NDIS 5 の移植に関する情報。 x ドライバーから NDIS 6 へ。 x については、「 NDIS 5.x ドライバーを NDIS 6.0 に移植する」を参照してください。
NdisCopyFromPacketToPacket は、指定された範囲のデータをあるパケットから別のパケットにコピーします。
構文
void NdisCopyFromPacketToPacketSafe(
[in] IN PNDIS_PACKET Destination,
[in] IN UINT DestinationOffset,
[in] IN UINT BytesToCopy,
[in] IN PNDIS_PACKET Source,
[in] IN UINT SourceOffset,
[out] OUT PUINT BytesCopied,
IN MM_PAGE_PRIORITY Priority
);
パラメーター
[in] Destination
宛先パケット記述子へのポインター。
[in] DestinationOffset
コピーされたデータの書き込みを開始する宛先パケット内のバイト オフセットを指定します。
[in] BytesToCopy
コピーするバイト数を指定します。
[in] Source
ソース パケット記述子へのポインター。
[in] SourceOffset
データのコピーを開始するソース パケット内のバイト オフセットを指定します。
[out] BytesCopied
この関数が実際にコピーしたバイト数を返す呼び出し元から指定された変数へのポインター。 ソース パケットがデータを使い切ったり、宛先パケットが領域を使い切ったりした場合、この数は BytesToCopy の値より小さくすることができます。
Priority
戻り値
なし
解説
戻り値: なし
ドライバーは 、NdisCopyFromPacketToPacket ではなく NdisCopyFromPacketToPacketSafe を呼び出す必要があります。 NDIS 5.1 ミニポート ドライバーは 、NdisCopyFromPacketToPacket ではなく NdisCopyFromPacketToPacketSafe を呼び出す必要があります。 NdisCopyFromPacketToPacket とは異なり、NdisCopyFromPacketToPacketSafe では、システム リソースが不足しているか不足している場合にバグ チェックは発生しません。
NdisCopyFromPacketToPacket の呼び出し元は、送信元パケットでない場合も宛先パケットを割り当てます。 宛先パケットのパケット記述子には、データを受信するのに十分なチェーンバッファー記述子が必要です。
指定したバイト数がコピーされる前にソース パケットのデータが不足しているか、宛先パケットが領域を使い切った場合、コピー操作は停止します。 どちらの場合も、 NdisCopyFromPacketToPacket は、ソースから宛先パケットに正常にコピーされたバイト数を返します。
NdisCopyFromPacketToPacket は、指定された ソース に関連付けられている帯域外の情報を 宛先にコピーしません。 この情報をコピーするには、ドライバーは 、NDIS_OOB_DATA_FROM_PACKET によって返されるポインターを使用し、 NdisMoveMemory を呼び出します。
ドライバーは、 NdisCopyFromPacketToPacket を呼び出す前に、保持しているスピン ロックを解放する必要があります。
- ターゲット プラットフォーム: ユニバーサル
- バージョン: Windows Vista の NDIS 6.0 ドライバーではサポートされていません。 代わりに NdisCopyFromNetBufferToNetBufferを使用してください。 Windows Vista および Windows XP の NDIS 5.1 ドライバーでサポートされていますが、代わりに NdisCopyFromPacketToPacketSafe を使用してください。
要件
要件 | 値 |
---|---|
Header | ndis.h (Ndis.h を含む) |
Library | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |