NdisCancelSendNetBufferLists 関数 (ndis.h)
プロトコル ドライバーは NdisCancelSendNetBufferLists 関数を呼び出して、ネットワーク データの送信を取り消します。
構文
void NdisCancelSendNetBufferLists(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PVOID CancelId
);
パラメーター
[in] NdisBindingHandle
取り消しが適用されるミニポート ドライバーまたは仮想ミニポートを識別する NdisOpenAdapterEx 関数によって返されるハンドル。
[in] CancelId
キャンセル識別子。 この識別子は、転送が取り消されるネットワーク データを指定します。
戻り値
なし
解説
プロトコル ドライバーは、高レベルのソフトウェアから受信した IRP を NDIS ネットワーク データにマップします。 NET_BUFFER_LIST構造体の一覧では、プロトコル ドライバーが転送のために下位レベルのドライバーに送信するネットワーク データについて説明します。 IRP が取り消された場合、プロトコル ドライバーは NdisCancelSendNetBufferLists 関数を呼び出して、対応する NDIS ネットワーク データの保留中の送信を取り消すことができます。
を呼び出す NDIS_SET_NET_BUFFER_LIST_CANCEL_ID 転送のために下位レベルのドライバーに渡される各NET_BUFFER_LIST構造体のマクロです。 NDIS_SET_NET_BUFFER_LIST_CANCEL_ID マクロは、指定されたパケットにキャンセル識別子をマークします。
NdisCancelSendNetBufferLists は、指定したキャンセル識別子でマークされ、指定されたミニポート ドライバーに関連付けられているすべてのデータの転送を取り消します。 NdisBindingHandle パラメーターで指定されたバインディング ハンドルは、ミニポート ドライバーを識別します。
NdisCancelSendNetBufferLists 関数は、1 つのバインディングでネットワーク データ転送を取り消します。 複数のバインディングでネットワーク データ転送を取り消すには、プロトコル ドライバーは、バインドごとに NdisCancelSendNetBufferLists 関数を 1 回呼び出す必要があります。
プロトコル ドライバーは、 NdisBindingHandle パラメーターが指定するハンドルが、 NdisCancelSendNetBufferLists の呼び出し中も有効なままであることを確認する必要があります。 つまり、プロトコル ドライバーは、NdisCancelSendNetBufferLists が返される前にバインドを閉じるには、NdisCloseAdapterEx 関数を呼び出す必要があります。
NdisCancelSendNetBufferLists を呼び出すと、指定したキャンセル識別子を持つすべてのネットワーク データの保留中の送信が取り消される保証はありません。 たとえば、プロトコル ドライバーがバインドされている次の下位ドライバーが MiniportCancelSend 関数を提供しない場合、 NdisCancelSendNetBufferLists の呼び出しでは何も行われません。
いずれの場合も、NDIS は、送信元プロトコル ドライバーに送信するために送信されたネットワーク データを返します。 ProtocolSendNetBufferListsComplete 関数。 NDIS は、完了状態が NDIS_STATUS_SEND_ABORTED のキャンセルされた送信データを返します。 NdisCancelSendNetBufferLists の呼び出しと取り消されたNET_BUFFER_LIST構造体の戻りまでの遅延は異なる可能性があるため、正確に指定することはできません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | ndis.h (Ndis.h を含む) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | Irql_SendRcv_Function(ndis) |