Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La plataforma PacketDirect (PD) llama a la función pdFlushQue ue del controlador de miniporte compatible con PD para vaciar una cola especificada, lo que garantiza que los elementos que aún no estén en un estado completo en la cola se completarán de forma inminente.
Sintaxis
NDIS_PD_FLUSH_QUEUE NdisPdFlushQueue;
VOID() NdisPdFlushQueue(
[in, out] NDIS_PD_QUEUE *Queue
)
{...}
Parámetros
[in, out] Queue
Cola que se va a vaciar. Para obtener más información, consulte la estructura de NDIS_PD_QUEUE.
Valor devuelto
Esta función de devolución de llamada no devuelve un valor.
Observaciones
El autor de la llamada es responsable de esperar y purgar todas las solicitudes publicadas anteriormente antes de cerrar la cola. El autor de la llamada no debe publicar más estructuras PD_BUFFER en la cola después de esta llamada. El caso de uso principal de esta rutina es vaciar las colas de recepción; si no hay tráfico entrante, los búferes publicados se sentarán en la cola de recepción indefinidamente y estos deben purgarse al vaciarse antes de que se pueda cerrar la cola. El mismo problema no existe para las colas de transmisión en la práctica porque las solicitudes de transmisión no se pendrán indefinidamente. Sin embargo, los proveedores deben respetar la llamada de vaciado para las colas de transmisión (esto puede ser una operación sin operación si el proveedor sabe que la solicitud de transmisión pendiente se completará muy pronto, que es el caso típico excepto para el control de flujo L2).
Ejemplos de
Para definir una función PDFlushQueue, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.Por ejemplo, para definir una función de PDFlushQueue denominada "MyPDFlushQueue", use el tipo NDIS_PD_FLUSH_QUEUE tal como se muestra en este ejemplo de código:
NDIS_PD_FLUSH_QUEUE MyPDFlushQueue;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
VOID
MyPDFlushQueue(
NDIS_PD_QUEUE* NdisPDQueue
)
{...}
El tipo de función NDIS_PD_FLUSH_QUEUE se define en el archivo de encabezado Ntddndis.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 NDIS_PD_FLUSH_QUEUE en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.
Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 10 |
servidor mínimo admitido | Windows Server 2016 |
de la plataforma de destino de | Windows |
encabezado de | ndis.h |
irQL | <= DISPATCH_LEVEL |