共用方式為


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

指定 NdisOpenAdapter 所傳回的句柄, 識別取消套用的 NIC 或虛擬適配卡。

[in] CancelId

取消標識碼的指標。 此標識子會指定正在取消傳輸的封包或封包群組。

傳回值

沒有

言論

傳輸通訊協定會將從較高層級軟體收到的 IRP 對應至 NDIS 封包,然後通訊協定會傳送至較低層級的驅動程式以進行傳輸。 如果取消 IRP,傳輸通訊協定可以呼叫 NdisCancelSendPackets 函式,以取消對應 NDIS 封包的暫止傳輸。

NdisCancelSendPackets 函式會取消單一系結上的封包傳輸。 若要取消多個系結上的封包傳輸,通訊協定或中繼驅動程式必須針對每個系結呼叫 NdisCancelSendPackets 函式一次。

通訊協定或中繼驅動程式必須確保 NdisBindingHandle,代表驅動程式系結至配接器,在呼叫 NdisCancelSendPackets期間仍然有效。 也就是說,通訊協定或中繼驅動程式不得呼叫 NdisCloseAdapter 函式,在傳回 NdisCancelSendPack ets 之前關閉系結。

不保證呼叫 NdisCancelSendPackets 會取消所有具有指定取消標識符之封包的暫止傳輸。 例如,如果通訊協定或中繼驅動程式系結的下一個較低驅動程式不提供 MiniportCancelSendPackets 函式,則呼叫 NdisCancelSendPackets 不會執行任何動作。

在所有情況下,提交傳輸的封包會透過呼叫驅動程式的 ProtocolSendCompleteProtocolCoSendComplete 函式,傳回至原始通訊協定或中繼驅動程式。 已取消的傳送封包會以完成狀態傳回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

另請參閱