次の方法で共有


NdisCancelSendPackets 関数 (ndis.h)

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

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

構文

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

パラメーター

[in] NdisBindingHandle

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

[in] CancelId

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

戻り値

なし

解説

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

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

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

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

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

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

要件

要件
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

こちらもご覧ください