Compartilhar via


NDIS_PACKET

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Essa estrutura contém descritores encadeado reserva para o qual os ponteiros são passados para muitos NDISXXX, MiniportaXXX, e ProtocoloXXX funções.

Syntax

typedef struct _NDIS_PACKET {
  NDIS_PACKET_PRIVATE Private;
  union {
    struct {
      UCHAR MiniportReserved[2*sizeof(PVOID)];
      UCHAR WrapperReserved[2*sizeof(PVOID)];
    };
    struct {
      UCHAR MiniportReservedEx[3*sizeof(PVOID)];
      UCHAR WrapperReservedEx[sizeof(PVOID)];
    };
    struct {
      UCHAR MacReserved[4*sizeof(PVOID)];
    };
  };
  ULONG_PTR Reserved[2];
  UCHAR ProtocolReserved[1];
} NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET;

Os membros

  • Particular
    Reservado para uso exclusivamente por NDIS. Drivers devem chamar o apropriado NDISXXX funções ou macros NDIS-fornecido para afetar o conteúdo desta área.
  • MiniportReserved
    Serializado drivers de miniporta e intermediário NDIS drivers podem usar esta área para suas próprias finalidades.
  • WrapperReserved
    Reservado para uso exclusivamente por NDIS.
  • MiniportReservedEx
    Drivers de miniporta desserializado e orientada a conexão podem usar esta área para suas próprias finalidades.
  • WrapperReservedEx
    Reservado para uso exclusivamente por NDIS.
  • MacReserved
    Reservado para uso pelo herdado drivers.
  • Reservado
    Reservado para uso com Microsoft ® Windows ® 95 e 98 ® Windows Microsoft ®.
  • ProtocolReserved
    Os drivers mais alto nível de protocolo e intermediário NDIS drivers podem usar esta área variable-sized para suas próprias finalidades, desde que cada tal driver é fornecido um atualizado descritor pacote.

Remarks

Drivers NDIS devem chamar NdisAllocatePacket Para alocar todos os descritores pacote usarem para indicar recebe para drivers de nível superior com NdisMIndicateReceivePacket. Drivers NDIS devem chamar NdisAllocatePacket Para alocar todos os descritores pacote usarem para envia para subjacente drivers com NdisSendPackets Ou NdisSend, bem como pacote descritores eles transmitir para NdisTransferData.

Encadeadas para cada descritor pacote são um ou mais descritores reserva buffers mapeamento que contêm dados pacote rede, ou recebidos ou para serem transmitidos. Drivers NIC e intermediário drivers alocar descritores pelo menos 16 bytes do pacote ProtocolReservedespaço a ser usado por protocolos para receber indicações.

Os buffers alocados pelo inferior-nível drivers NDIS devem ser mapeados por descritores reserva que foram alocadas do pool de reserva com NdisAllocateBuffer. Apenas protocolos de nível mais alto Microsoft ® Windows ® 2000 podem usar listas descritor memória (MDLs) configuradas por drivers de nível mais alto ainda como substitui para NDIS_BUFFER descritores.

Use geralmente drivers NDIS seus respectivos XXXReservado Áreas para manter por-estado pacote sobre pendente transferências. De exemplo, um protocolo pode armazenar um ponteiro para uma reserva Protocol-allocated contendo dados visão antecipada, qual seu ProtocolReceive função já copiou, in a ProtocolReserved área de um descritor pacote que o protocolo aloca para um chamar para NdisTransferData.

Um único driver pode usar o MiniportReserved(Ex) área e um único driver podem usar o ProtocolReserved área enquanto um descritor determinado pacote está sendo usada em uma operação transferir. Conseqüentemente, intermediário NDIS drivers, que têm ambas MiniportaXXX e ProtocoloXXX funções, não é possível usar essas áreas em de entrada descritores pacote para suas próprias finalidades.

Em vez disso, intermediário NDIS drivers devem remontar cada de entrada pacote em um atualizado descritor pacote antes de transmiti-la a solicitação transferir Down to um subjacente driver ou up to um driver de nível superior.

Essa estratégia assegura que o NDIS intermediário driver e o subjacente driver ter cada um MiniportReserved(Ex) área para usar, que o intermediário driver e overlying protocolo cada têm um ProtocolReserved área para usar e que o intermediário driver tem uma maneira conveniente e econômica para manter por-informações do estado pacote sobre atual todas as transferências. Isso também garante que NDIS terá informações corretas na parte particular do descritor cada pacote.

Drivers que fornecer e consumir out - de - dados banda em rede transferências e drivers que recebe suporte multipacket e / ou envia deve usar o Member-specific NDIS_GET/SET_XXX As macros ou a NDIS_OOB_DATA_FROM_PACKET macro para acessar o NDIS_PACKET_OOB_DATA bloco associado com cada descritor pacote.

Quando um driver protocolo chamadas NdisSendPackets Ou NdisSend Com um descritor pacote, ele abandona a propriedade do seguinte até que descritor pacote será retornado ao seu ProtocolSendComplete função:

  • Descritores de pacote Protocol-allocated
  • Todos os buffers dados mapeados pelo descritores reserva encadeadas para descritores de pacote
  • Todos os NDIS_PACKET_OOB_DATA Blocos associado com cada descritor pacote Protocol-allocated
  • Qualquer out - of - buffer de dados banda especificado em um NDIS_PACKET_OOB_DATA bloco para um associado descritor reserva

Requirements

Header ndis.h
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

NdisAllocatePacket
NdisMIndicateReceivePacket
NdisSendPackets
NdisSend
NdisTransferData
NdisAllocateBuffer
NDIS_BUFFER
ProtocolReceive
NDIS_OOB_DATA_FROM_PACKET
NDIS_PACKET_OOB_DATA
ProtocolSendComplete