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가 취소된 경우 전송 프로토콜은 NdisCancelSendPackets 함수를 호출하여 해당 NDIS 패킷의 보류 중인 전송을 취소할 수 있습니다.

NdisCancelSendPackets 함수는 단일 바인딩에서 패킷 전송을 취소합니다. 둘 이상의 바인딩에서 패킷 전송을 취소하려면 프로토콜 또는 중간 드라이버가 각 바인딩에 대해 NdisCancelSendPackets 함수를 한 번 호출해야 합니다.

프로토콜 또는 중간 드라이버는 어댑터에 대한 드라이버의 바인딩을 나타내는 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 드라이버에 대해 지원됩니다.

요구 사항

요구 사항
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

추가 정보