estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST (ndischimney.h)
[La característica de descarga de chimenea TCP está en desuso y no debe usarse].
Estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST.
Sintaxis
typedef struct _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST {
IN NDIS_OBJECT_HEADER Header;
IN _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST *NextBlock;
#if ...
struct _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST;
IN _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST *DependentBlockList;
#else
struct _NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST;
#endif
OUT NDIS_STATUS Status;
IN PVOID NdisReserved[3];
IN OUT PNDIS_OFFLOAD_HANDLE OffloadHandle;
IN PVOID ProtocolReserved[2];
IN PVOID MiniportReserved[2];
IN PVOID ImReserved[2];
IN PVOID Scratch[2];
IN PVOID SourceHandle;
IN NDIS_PORT_NUMBER PortNumber;
IN OUT PNET_BUFFER_LIST NetBufferListChain;
} NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST, *PNDIS_PROTOCOL_OFFLOAD_BLOCK_LIST;
Miembros
Header
Encabezado de la estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST. El encabezado tiene el formato de estructura NDIS_OBJECT_HEADER. La estructura NDIS_OBJECT_HEADER contiene el número de revisión de la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST, el tipo de estado de descarga que sigue inmediatamente la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en memoria y el tamaño de la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST, incluido el encabezado, en bytes.
El tipo miembro de la estructura de NDIS_OBJECT_HEADER indica el tipo de estado de descarga e implicación, la estructura de estado de descarga específica (o estructuras) que sigue inmediatamente la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en memoria.
Se admiten los siguientes valores de OFFLOAD_STATE_TYPE:
NeighborOffloadConstState
Especifica el estado de vecino constante. Este estado tiene el formato estructura NEIGHBOR_OFFLOAD_STATE_CONST.
NeighborOffloadCachedState
Especifica el estado vecino almacenado en caché. Este estado tiene el formato NEIGHBOR_OFFLOAD_STATE_CACHED estructura.
NeighborOffloadDelegatedState
Especifica el estado vecino delegado. Este estado tiene el formato NEIGHBOR_OFFLOAD_STATE_DELEGATED estructura.
NeighborOffloadState
Especifica todo el estado vecino, incluido el estado constante, almacenado en caché y vecino delegado. Este estado tiene el formato de una estructura NEIGHBOR_OFFLOAD_STATE_CONST, seguida de una estructura NEIGHBOR_OFFLOAD_STATE_CACHED, seguida de una estructura de NEIGHBOR_OFFLOAD_STATE_DELEGATED.
Ip4OffloadConstState
Especifica el estado de ruta de acceso constante (IPv4). Este estado tiene el formato PATH_OFFLOAD_STATE_CONST estructura.
Ip4OffloadCachedState
Especifica el estado de la ruta de acceso almacenada en caché (IPv4). Este estado tiene el formato PATH_OFFLOAD_STATE_CACHED estructura.
Ip4OffloadDelegatedState
Especifica el estado de ruta de acceso delegada (IPv4). Este estado tiene el formato estructura PATH_OFFLOAD_STATE_DELEGATED. Actualmente no hay ningún estado de ruta de acceso delegado. La estructura PATH_OFFLOAD_STATE_DELEGATED no contiene ninguna variable.
Ip4OffloadState
Especifica todo el estado de la ruta de acceso (IPv4), incluido el estado constante, almacenado en caché y ruta de acceso delegada. Este estado tiene el formato de una estructura PATH_OFFLOAD_STATE_CONST, seguida de una estructura PATH_OFFLOAD_STATE_CACHED, seguida de una estructura PATH_OFFLOAD_STATE_DELEGATED.
Ip6OffloadConstState
Especifica el estado de la ruta de acceso constante (IPv6). Este estado tiene el formato de estructura PATH_OFFLOAD_STATE_CONST.
Ip6OffloadCachedState
Especifica el estado de la ruta de acceso almacenada en caché (IPv6). Este estado tiene el formato de estructura PATH_OFFLOAD_STATE_CACHED.
Ip6OffloadDelegatedState
Especifica el estado de ruta de acceso delegada (IPv6). Este estado tiene el formato de estructura PATH_OFFLOAD_STATE_DELEGATED. Actualmente, no hay ningún estado de ruta de acceso delegado. La estructura PATH_OFFLOAD_STATE_DELEGATED no contiene ninguna variable.
Ip6OffloadState
Especifica todo el estado de la ruta de acceso (IPv6), incluido el estado constante, almacenado en caché y ruta de acceso delegada. Este estado tiene el formato de una estructura PATH_OFFLOAD_STATE_CONST, seguida de una estructura PATH_OFFLOAD_STATE_CACHED, seguida de una estructura PATH_OFFLOAD_STATE_DELEGATED.
TcpOffloadConstState
Especifica el estado TCP constante. Este estado tiene el formato estructura TCP_OFFLOAD_STATE_CONST.
TcpOffloadCachedState
Especifica el estado TCP almacenado en caché. Este estado tiene el formato TCP_OFFLOAD_STATE_CACHED estructura.
TcpOffloadDelegatedState
Especifica el estado TCP delegado. Este estado tiene el formato TCP_OFFLOAD_STATE_DELEGATED estructura.
TcpOffloadResourceState
Reservado. Este valor OFFLOAD_STATE_TYPE, así como la estructura TCP_OFFLOAD_RESOURCE_STATE, no se usan actualmente.
TcpOffloadState
Especifica todo el estado TCP, incluida la constante, la caché y el estado TCP delegado. Este estado tiene el formato de estructura TCP_OFFLOAD_STATE_CONST, seguido de una estructura de TCP_OFFLOAD_STATE_CACHED, seguida de una estructura de TCP_OFFLOAD_STATE_DELEGATED.
FilterReservedOffloadState
Reservado para controladores de filtro.
NextBlock
Puntero a la siguiente estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en la capa de estado de descarga (vecino, ruta de acceso o TCP) indicada por el miembro Type del miembro Header. NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST estructuras vinculadas a través de punteros de NextBlock siempre están en la misma capa del estado de descarga. Un valor NextBlock de NULL indica que no hay ninguna estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST siguiente adicional en este nivel.
_NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST
DependentBlockList
Puntero a una estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST que se encuentra en una capa dependiente del estado de descarga (una capa superior en el árbol de estado de descarga).
Para la descarga de chimenea TCP:
El miembro DependentBlockList de una estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en la capa vecina solo puede apuntar a una estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en la capa de ruta de acceso. El miembro DependentBlockList de una estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en la capa de ruta de acceso solo puede apuntar a una estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en la capa TCP. El miembro DependentBlockList de una estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en la capa TCP siempre es NULL.
Un DependentBlockList valor de null indica que no hay ninguna estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST dependiente.
Status
Estado de finalización de una operación de descarga de inicio, descarga de consulta, descarga de actualización, invalidar la descarga o finalizar la operación de descarga que el destino de descarga realizó en el estado asociado o al que hace referencia la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST. En función de la operación, NDIS escribe uno de los siguientes valores de NDIS_STATUS en el miembro Status:
NDIS_STATUS_SUCCESS
Iniciar descarga: el destino de descarga subyacente descargó correctamente el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST y el estado asociado a todas las estructuras de PROTOCOL_MINIPORT_OFFLOAD_BLOCK_LIST dependientes inmediatamente.
Consulta, actualización, invalidar o finalizar la descarga: el destino de descarga realizó correctamente la operación en el estado asociado o al que hace referencia la estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST.
NDIS_STATUS_OFFLOAD_PARTIAL_SUCCESS
Iniciar descarga: el destino de descarga subyacente descargó correctamente el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST, pero no pudo descargar el estado asociado a una o varias de las estructuras de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST dependientes inmediatamente.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_FAILURE
Iniciar descarga: el destino de descarga subyacente no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST. No se puede clasificar la causa del error.
Consulta, actualización, invalidar o finalizar la descarga: el destino de descarga no pudo realizar la operación en el estado asociado o al que hace referencia la estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST.
NDIS_STATUS_RESOURCES
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque el destino de descarga no pudo asignar suficiente memoria del host.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_TCP_ENTRIES
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque el destino de descarga no pudo asignar un objeto de estado de conexión TCP.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_PATH_ENTRIES
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque el destino de descarga no pudo asignar un objeto de estado de ruta de acceso.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_NEIGHBOR_ENTRIES
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque el destino de descarga no pudo asignar un objeto de estado vecino.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_HW_ADDRESS_ENTRIES
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque la pila de hosts especificó un miembro que no es deNULLDlSourceAddress miembro en . NEIGHBOR_OFFLOAD_STATE_CONST estructura y el destino de descarga no admite direcciones MAC de origen configurables o no puede aceptar direcciones MAC de origen adicionales.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_IP_ADDRESS_ENTRIES
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque el destino de descarga no pudo asignar una estructura de datos para la dirección IP de origen a la que hace referencia el puntero SourceAddress en . PATH_OFFLOAD_STATE_CONST estructura.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_TCP_XMIT_BUFFER
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque el destino de descarga no pudo asignar suficientes búferes de transmisión TCP.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_TCP_RCV_BUFFER
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque el destino de descarga no pudo asignar suficientes búferes de recepción TCP.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_TCP_RCV_WINDOW
Iniciar descarga: el destino de descarga no pudo descargar el estado asociado a la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST porque el miembro InitialRcvWnd especificado en TCP_OFFLOAD_STATE_CACHED estructura es mayor que el destino de descarga puede admitir.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_VLAN_ENTRIES
Iniciar descarga: el destino de descarga se ha quedado sin recursos para realizar el seguimiento de identificadores de VLAN adicionales.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_VLAN_MISMATCH
Iniciar descarga: el VlanId vecino es distinto de cero y no coincide con uno de los identificadores VLAN de la interfaz.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NDIS_STATUS_OFFLOAD_PATH_MTU
Iniciar descarga: la MTU de ruta de acceso para la conexión TCP es mayor que la compatibilidad con el destino de descarga.
Consulta, actualización, invalidar o finalizar la descarga: no es un valor de estado permitido.
NdisReserved[3]
Reservado para su uso por NDIS.
OffloadHandle
Puntero a una estructura NDIS_OFFLOAD_HANDLE. La estructura NDIS_OFFLOAD_HANDLE representa un protocolo o el contexto del controlador intermedio para un objeto de estado descargado.
ProtocolReserved[2]
Reservado para su uso por los controladores de protocolo, que pueden usar esta área para sus propios propósitos.
MiniportReserved[2]
Reservado para su uso por destinos de descarga o la parte de miniporte de un controlador intermedio.
ImReserved[2]
Reservado para su uso por conductores intermedios, que pueden usar esta área para sus propios fines.
Scratch[2]
El controlador de protocolo o el controlador intermedio pueden usar esta área para el seguimiento interno. La información de esta área solo es válida mientras el controlador tiene la propiedad de . NDIS_PROTOCOL_OFFLOAD_BLOCK_LIS T.
SourceHandle
Este miembro no es significativo para un protocolo o un controlador intermedio. Un protocolo o controlador intermedio no debe modificar este miembro.
Al propagar la finalización de una operación de manipulación de estado, un controlador intermedio copia el
sourceHandle que almacenó en su entrada de llamada de MI al miembro SourceHandle del
NDIS_MINIPORT_OFFLOAD_BLOCK_LIST estructura que pasa a la función NdisMXxxComplete.
PortNumber
Número de puerto que identifica un puerto de adaptador de miniporte. Para asignar un número de puerto del adaptador de miniporte, llame a la función NdisMAllocatePort. Un valor cero identifica el puerto predeterminado de un adaptador de miniport. Use el puerto predeterminado si el controlador de miniporte no ha asignado puertos para el adaptador especificado.
NetBufferListChain
Cuando el protocolo o el controlador intermedio especifican un valor de NULL, NetBufferListChain no es significativo y el controlador subyacente o el destino de descarga pueden omitirse.
Cuando un protocolo o controlador intermedio especifica un valor deNULL que no es, NetBufferListChain apunta a una estructura de NET_BUFFER_LIST que puede ser una estructura independiente o la primera estructura de una lista vinculada de estas estructuras. Cada estructura NET_BUFFER_LIST de la lista vinculada describe una estructura NET_BUFFER. La estructura NET_BUFFER se asigna a una cadena de listas de descriptores de memoria (MDL). La NET_BUFFER_LIST y las estructuras asociadas están bloqueadas para que permanezcan residentes en la memoria física. Sin embargo, no se asignan a la memoria del sistema.
Las MDL asociadas a las estructuras de NET_BUFFER contienen datos que se transmiten como parte de una operación de manipulación de estado o la finalización de dicha operación. En la actualidad, la lista vinculada puede contener solo un tipo de datos: datos de envío pendientes. Para obtener más información sobre el envío de datos, vea control de datos de envío pendientes durante y después de una operación de descarga.
Un destino de descarga o un controlador intermedio puede pasar datos de envío pendientes al controlador o pila de hosts sobresalida al finalizar la descarga de una conexión TCP. En este caso, el destino de descarga especifica un valor deque no es NULL para el NetBufferListChain miembro al llamar al función NdisMTerminateOffloadComplete. Si el destino de descarga no pasa datos de envío para una conexión TCP que se está finalizando, especifica un valor NULL para el miembro NetBufferListChain.
Observaciones
Un controlador intermedio crea una estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST a partir de NDIS_MINIPORT_OFFLOAD_BLOCK_LIST estructura cuando propagar una operación de manipulación de estado. Cuando propagar la finalización de dicha operación, un controlador intermedio usa una estructura NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST para construir una estructura de NDIS_MINIPORT_OFFLOAD_BLOCK_LIST.
Una estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST puede ir seguida inmediatamente en la memoria por una estructura de estado de descarga de que contiene el estado que se va a descargar (o que ha sido) descargado, consultado, actualizado, invalidado o terminado. El Tipo miembro del encabezado de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST estructura especifica el tipo de estado de descarga e implicación, la estructura de estado de descarga específica (o estructuras) que siguen la estructura de NDIS_PROTOCOL_OFFLOAD_BLOCK_LIST en memoria.
Requisitos
Requisito | Valor |
---|---|
encabezado de | ndischimney.h (incluya Ndischimney.h) |