次の方法で共有


NdisCancelSendPackets 関数 (ndis.h)

NDIS 5 です。 x は非推奨となり、NDIS 6 に置き換えられます。 x します。 新しい NDIS ドライバーの開発については、「Windows Vista 以降のネットワーク ドライバーを参照してください。 NDIS 5 の移植に関する情報。 NDIS 6 に x ドライバーを します。 x、NDIS 6.0 に NDIS 5.x ドライバーを移植するを参照してください。

NdisCancelSendPackets バインド ハンドルによって識別されるミニポート ドライバーで指定されたキャンセル識別子でマークされているすべてのパケットの送信を取り消します。

構文

void NdisCancelSendPackets(
  [in] NDIS_HANDLE NdisBindingHandle,
  [in] PVOID       CancelId
);

パラメーター

[in] NdisBindingHandle

取り消しが適用される NIC または仮想アダプター 識別する NdisOpenAdapter によって返されるハンドルを指定します。

[in] CancelId

キャンセル識別子へのポインター。 この識別子は、送信が取り消されるパケットまたはパケットのグループを指定します。

戻り値

何一つ

備考

トランスポート プロトコルは、上位レベルのソフトウェアから受信した IRP を NDIS パケットにマップし、プロトコルは転送のために下位レベルのドライバーに送信します。 IRP が取り消された場合、トランスポート プロトコルは、NdisCancelSendPackets 関数を呼び出して、対応する NDIS パケットの保留中の送信を取り消すことができます。

NdisCancelSendPackets 関数は、単一のバインディングでのパケット転送を取り消します。 複数のバインディングでパケット転送をキャンセルするには、プロトコルまたは中間ドライバーは、バインドごとに 1 回 NdisCancelSendPackets 関数を呼び出す必要があります。

プロトコルまたは中間ドライバーは、NdisBindingHandle(アダプターへのドライバーのバインドを表します) が、NdisCancelSendPacketsへの呼び出しの間有効なままであることを確認する必要があります。 つまり、プロトコルまたは中間ドライバーは、NdisCancelSendPackets が返 前にバインドを閉じるには、NdisCloseAdapter 関数を呼び出す必要があります。

NdisCancelSendPackets 呼び出すと、指定したキャンセル ID を持つすべてのパケットの保留中の送信が取り消される保証はありません。 たとえば、プロトコルまたは中間ドライバーがバインドされている次の下位ドライバーが、ミニポートCancelSendPackets 関数を提供しない場合、NdisCancelSendPackets への呼び出しは何も行いません。

いずれの場合も、転送用に送信されたパケットは、ドライバーの ProtocolSendComplete または ProtocolCoSendComplete関数の呼び出しを通じて、送信元のプロトコルまたは中間ドライバー返されます。 キャンセルされた送信パケットは、NDIS_STATUS_ABORTEDの完了状態で返されます。 呼び出し NdisCancelSendPackets とキャンセルされたパケットの戻り値の間の遅延は変化する可能性があるため、正確に指定することはできません。

  • ターゲット プラットフォーム: ユニバーサル
  • バージョン: Windows Vista の NDIS 6.0 ドライバーではサポートされていません。 代わりに NdisCancelSendNetBufferLists を使用してください。 Windows Vista および Windows XP の NDIS 5.1 ドライバーでサポートされています。

必要条件

要件 価値
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

関連項目