MINIPORT_CANCEL_SEND función de devolución de llamada (ndis.h)
NDIS llama a la función MiniportCancelSend del controlador de miniporte para cancelar la transmisión de todas las estructuras de NET_BUFFER_LIST marcadas con un identificador de cancelación especificado.
Sintaxis
MINIPORT_CANCEL_SEND MiniportCancelSend;
void MiniportCancelSend(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PVOID CancelId
)
{...}
Parámetros
[in] MiniportAdapterContext
Identificador de un área de contexto que el controlador de minipuerto asignó en su función MiniportInitializeEx . El controlador de minipuerto usa este área de contexto para mantener información de estado sobre un adaptador.
[in] CancelId
Identificador de cancelación. Este identificador especifica las estructuras de NET_BUFFER_LIST que se van a cancelar.
Valor devuelto
None
Observaciones
Los controladores de miniporte y los controladores intermedios que envían NET_BUFFER_LIST estructuras exportan una función MiniportCancelSend . La función MiniportCancelSend cancela la transmisión pendiente de las estructuras de NET_BUFFER_LIST especificadas.
Cuando un controlador NDIS sobreapoderado llama a La función NdisCancelSendNetBufferLists , NDIS llama a la función MiniportCancelSend del controlador de nivel inferior adecuado en el enlace. NDIS realiza esta llamada solo si el controlador de nivel inferior exporta una función MiniportCancelSend .
Una función MiniportCancelSend del controlador miniporte realiza las siguientes operaciones:
- Recorre su lista de estructuras de NET_BUFFER_LIST en cola para el adaptador especificado y llama a NDIS_GET_NET_BUFFER_LIST_CANCEL_ID macro para obtener el identificador de cancelación de cada estructura de NET_BUFFER_LIST en cola. El controlador de minipuerto compara el identificador de cancelación que NDIS_GET_NET_BUFFER_LIST_CANCEL_ID devuelve con el identificador de cancelación que NDIS pasó a MiniportCancelSend.
- Quita de la cola de envío (un-links) todas las estructuras de NET_BUFFER_LIST cuyos identificadores de cancelación coinciden con el identificador de cancelación especificado.
- Llama a Función NdisMSendNetBufferListsComplete para todas las estructuras de NET_BUFFER_LIST desvinculadas para devolver las estructuras . El controlador de minipuerto establece el campo de estado de las estructuras de NET_BUFFER_LIST en NDIS_STATUS_SEND_ABORTED.
- Realiza las operaciones de la lista anterior para la función MiniportCancelSend del controlador de miniport.
- Llama a Función NdisCancelSendNetBufferLists , especificando el enlace que se asigna al adaptador que NDIS especificó en la llamada a MiniportCancelSend.
Ejemplos
Para definir una función MiniportCancelSend , primero debe proporcionar una declaración de función que identifique el tipo de función que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.Por ejemplo, para definir una función MiniportCancelSend denominada "MyCancelSend", use el tipo de MINIPORT_CANCEL_SEND como se muestra en este ejemplo de código:
MINIPORT_CANCEL_SEND MyCancelSend;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
VOID
MyCancelSend(
NDIS_HANDLE MiniportAdapterContext,
PVOID CancelId
)
{...}
El tipo de función MINIPORT_CANCEL_SEND se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función MINIPORT_CANCEL_SEND en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declarar funciones mediante tipos de roles de función para controladores NDIS.
Para obtener información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con NDIS 6.0 y versiones posteriores. |
Plataforma de destino | Windows |
Encabezado | ndis.h (incluya Ndis.h) |
IRQL | <= DISPATCH_LEVEL |