Función NdisClDropParty (ndis.h)
NdisClDropParty quita una entidad de la vc multipoint del cliente.
Sintaxis
NDIS_STATUS NdisClDropParty(
[in] NDIS_HANDLE NdisPartyHandle,
[in, optional] PVOID Buffer,
[in, optional] UINT Size
);
Parámetros
[in] NdisPartyHandle
Especifica el identificador que identifica la entidad que se va a quitar en la conexión de varios puntos. El cliente obtuvo este identificador de una llamada anterior a NdisClAddParty o NdisClMakeCall.
[in, optional] Buffer
Puntero a un búfer asignado por el autor de la llamada que contiene los datos que se van a transmitir para cerrar la conexión multipunto de la entidad en el nodo remoto. Dependiendo del medio subyacente, este puntero puede ser NULL.
[in, optional] Size
Especifica el tamaño en bytes en Búfer, cero si de búfer de es NULL.
Valor devuelto
Cuando NdisClDropParty devuelve algo distinto de NDIS_STATUS_PENDING, el cliente debe realizar una llamada interna a su función protocolClDropPartyComplete. De lo contrario, NDIS llama a la función protocolClDropPartyComplete del cliente cuando se completa esta operación.
Observaciones
Los clientes suelen llamar a NdisClDropParty en cualquiera de las siguientes circunstancias:
-
Del
función ProtocolClIncomingDropParty para quitar la entidad especificada de una conexión de varios puntos.
Esto ocurre cuando una entidad de un nodo remoto cierra su conexión con NdisClCloseCall. Cuando NDIS llama a la función ProtocolClDropPartyComplete del cliente local, puede liberar o reutilizar el área de contexto en ProtocolPartyContext en la que el cliente estaba manteniendo el estado sobre esta entidad.
-
Antes de que el cliente llame a NdisClCloseCall con la última entidad en una conexión multipunto que el cliente configuró originalmente con NdisClMakeCall.
Para este tipo de cierre iniciado por el cliente de su propia llamada multipunto, el cliente debe llamar a NdisClDropParty una o varias veces para quitar todas las demás partes restantes en la vc de varios puntos.
Como norma general, un cliente debe llamar a NdisClDropParty tantas veces como llamó a NdisClAddParty con un NdisVcHandle obtenido de NdisClMakeCall antes de cerrar su conexión multipoint con NdisClCloseCall. Dado que las partes remotas pueden iniciar cierres de sus conexiones, lo que provoca llamadas al cliente local. función protocolClIncomingDropParty, el cliente local debe realizar un seguimiento del número de entidades activas en sus máquinas virtuales de varios puntos para saber cuántas llamadas debe realizar para NdisClDropParty para poder llamar a NdisClCloseCall.
Sin embargo, no es necesario que el cliente pase NdisClCloseCall la misma NdisPartyHandle devuelto por NdisClMakeCall cuando el cliente configuró originalmente su conexión multipunto. El cliente puede liberar partes en su VC de varios puntos en cualquier orden, siempre y cuando libere cada NdisPartyHandle devuelto por NdisClAddParty o NdisClMakeCall en sus llamadas a NdisClDropParty, seguido de una llamada final con el identificador de última entidad para NdisClCloseCall para el mismo VC de varios puntos. Una vez que el cliente ha cerrado su llamada a varios puntos, puede liberar el VC que creó originalmente con NdisCoDeleteVc.
El autor de la llamada de NdisClDropParty debe tener en cuenta la entrada NdisPartyHandle no válida en cuanto realiza esta llamada. Si almacenó este identificador en el área de contexto de entidad que asignó, el cliente función ProtocolClDropPartyComplete debe restablecer la variable handle a NULL si reinicializa su área de contexto por parte para reutilizarla cuando se ha quitado la entidad.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte NdisClDropParty (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte NdisClDropParty (NDIS 5.1)) en Windows XP. |
de la plataforma de destino de | Escritorio |
encabezado de | ndis.h (incluya Ndis.h) |
biblioteca de | Ndis.lib |
irQL | <= DISPATCH_LEVEL |
reglas de cumplimiento de DDI | Irql_Protocol_Driver_Function(ndis) |