estrutura NDIS_MINIPORT_DRIVER_CHARACTERISTICS (ndis.h)

Um driver NDIS inicializa uma estrutura de NDIS_MINIPORT_DRIVER_CHARACTERISTICS para definir suas características de driver de miniporto, incluindo os pontos de entrada para suas funções MiniportXxx .

Sintaxe

typedef struct _NDIS_MINIPORT_DRIVER_CHARACTERISTICS {
  NDIS_OBJECT_HEADER                         Header;
  UCHAR                                      MajorNdisVersion;
  UCHAR                                      MinorNdisVersion;
  UCHAR                                      MajorDriverVersion;
  UCHAR                                      MinorDriverVersion;
  ULONG                                      Flags;
  SET_OPTIONS_HANDLER                        SetOptionsHandler;
  MINIPORT_INITIALIZE_HANDLER                InitializeHandlerEx;
  MINIPORT_HALT_HANDLER                      HaltHandlerEx;
  MINIPORT_DRIVER_UNLOAD                     UnloadHandler;
  MINIPORT_PAUSE_HANDLER                     PauseHandler;
  MINIPORT_RESTART_HANDLER                   RestartHandler;
  MINIPORT_OID_REQUEST_HANDLER               OidRequestHandler;
  MINIPORT_SEND_NET_BUFFER_LISTS_HANDLER     SendNetBufferListsHandler;
  MINIPORT_RETURN_NET_BUFFER_LISTS_HANDLER   ReturnNetBufferListsHandler;
  MINIPORT_CANCEL_SEND_HANDLER               CancelSendHandler;
  MINIPORT_CHECK_FOR_HANG_HANDLER            CheckForHangHandlerEx;
  MINIPORT_RESET_HANDLER                     ResetHandlerEx;
  MINIPORT_DEVICE_PNP_EVENT_NOTIFY_HANDLER   DevicePnPEventNotifyHandler;
  MINIPORT_SHUTDOWN_HANDLER                  ShutdownHandlerEx;
  MINIPORT_CANCEL_OID_REQUEST_HANDLER        CancelOidRequestHandler;
  MINIPORT_DIRECT_OID_REQUEST_HANDLER        DirectOidRequestHandler;
  MINIPORT_CANCEL_DIRECT_OID_REQUEST_HANDLER CancelDirectOidRequestHandler;
  MINIPORT_SYNCHRONOUS_OID_REQUEST_HANDLER   SynchronousOidRequestHandler;
} NDIS_MINIPORT_DRIVER_CHARACTERISTICS, *PNDIS_MINIPORT_DRIVER_CHARACTERISTICS;

Membros

Header

A estrutura NDIS_OBJECT_HEADER para a estrutura de NDIS_MINIPORT_DRIVER_CHARACTERISTICS . Defina o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS.

Para indicar a versão da estrutura NDIS_MINIPORT_DRIVER_CHARACTERISTICS , defina o membro Revision como um dos seguintes valores:

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3

Adicionado o membro SynchronousOidRequestHandler para NDIS 6.80.

Defina o membro Size como NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3.

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2

Foram adicionados os membros DirectOidRequestHandler e CancelDirectOidRequestHandler para o NDIS 6.1.

Defina o membro Size como NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2.

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1

Versão original do NDIS 6.0.

Defina o membro Size como NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1.

MajorNdisVersion

A versão principal da biblioteca NDIS que o driver está usando. O valor atual é 0x06.

MinorNdisVersion

A versão secundária do NDIS. Veja a seguir as configurações de valor de versão secundária disponíveis.

Valor Significado
0 NDIS 6
20 NDIS 6.20
30 NDIS 6.30
40 NDIS 6.40
50 NDIS 6.50
51 NDIS 6.51
60 NDIS 6.60
70 NDIS 6.70
80 NDIS 6.80
81 NDIS 6.81
82 NDIS 6.82
83 NDIS 6.83
84 NDIS 6.84
85 NDIS 6.85
86 NDIS 6.86

MajorDriverVersion

Reservado para o número de versão principal do driver. Os drivers de miniport podem especificar qualquer valor necessário.

MinorDriverVersion

Reservado para o número de versão secundária do driver. Os drivers de miniport podem especificar qualquer valor necessário.

Flags

Uma máscara de bits que pode ser definida como zero ou qualquer um dos seguintes sinalizadores, combinado com OR bit a bit:

NDIS_INTERMEDIATE_DRIVER

Defina se o chamador for um driver intermediário NDIS.

NDIS_WDM_DRIVER

Defina se o chamador for um driver de miniporto NDIS-WDM.

SetOptionsHandler

O ponto de entrada para a função MiniportSetOptions do chamador.

Necessário para o Co-NDIS. Sugerido para drivers de miniporte Ethernet que dão suporte ao RSS usando MSI-C por PCI.

InitializeHandlerEx

Obrigatórios. O ponto de entrada para o Função MiniportInitializeEx .

HaltHandlerEx

Obrigatórios. O ponto de entrada para a função MiniportHaltEx .

UnloadHandler

Obrigatórios. O ponto de entrada para o Função MiniportDriverUnload .

PauseHandler

Obrigatórios. O ponto de entrada para a função MiniportPause .

RestartHandler

Obrigatórios. O ponto de entrada para a função MiniportRestart .

OidRequestHandler

O ponto de entrada para a função MiniportOidRequest . Necessário para todos os drivers de miniporte sem conexão, incluindo todos os drivers Ethernet, WLAN e IM. Opcional para alguns drivers de miniporto CoNDIS.

SendNetBufferListsHandler

Obrigatórios. O ponto de entrada para o Função MiniportSendNetBufferLists .

ReturnNetBufferListsHandler

Obrigatórios. O ponto de entrada para o Função MiniportReturnNetBufferLists .

CancelSendHandler

Obrigatórios. O ponto de entrada para a função MiniportCancelSend .

CheckForHangHandlerEx

Opcional. O ponto de entrada para o Função MiniportCheckForHangEx .

MiniportCheckForHangEx não é necessário para drivers intermediários ou miniportos virtuais porque eles não são dispositivos físicos que podem travar, portanto, eles devem definir esse ponto de entrada como NULL.

MiniportCheckForHangEx é proibido em qualquer dispositivo AOAC devido ao impacto na duração da bateria, portanto, os drivers de miniport para esses dispositivos devem definir esse ponto de entrada como NULL.

MiniportCheckForHangEx é desencorajado para drivers de miniporto destinados a serem instalados em dispositivos não AOAC, alimentados por bateria devido ao impacto na duração da bateria, portanto, eles devem definir esse ponto de entrada como NULL.

MiniportCheckForHangEx é permitido, mas não é necessário para drivers de miniporto que se destinam a serem instalados em dispositivos com alimentação de linha (mains-powered). Para drivers direcionados ao NDIS 6.30 e posterior, considere usar NdisMResetMiniport .

ResetHandlerEx

Opcional (obrigatório se você fornecer CheckForHangHandlerEx). O ponto de entrada para a função MiniportResetEx . MiniportResetEx não é necessário para drivers intermediários, portanto, eles devem definir esse ponto de entrada como NULL.

DevicePnPEventNotifyHandler

Obrigatórios. O ponto de entrada para o Função MiniportDevicePnPEventNotify .

ShutdownHandlerEx

Obrigatórios. O ponto de entrada para a função MiniportShutdownEx .

CancelOidRequestHandler

Obrigatórios. O ponto de entrada para o Função MiniportCancelOidRequest .

DirectOidRequestHandler

O ponto de entrada para o Função MiniportDirectOidRequest . Esse é um ponto de entrada opcional. Defina esse membro como NULL se o driver de miniporto não manipular solicitações OID diretas.

Opcional para Ethernet; no entanto, se um for fornecido, ambos deverão ser fornecidos.

Necessário para miniportos WLAN e Ethernet que implementam o descarregamento RDMA ou IPSec.

CancelDirectOidRequestHandler

O ponto de entrada para o Função MiniportCancelDirectOidRequest . Esse é um ponto de entrada opcional. Defina esse membro como NULL se o driver de miniporto não manipular solicitações OID diretas.

Opcional para Ethernet; no entanto, se um for fornecido, ambos deverão ser fornecidos.

Necessário para miniportos WLAN e Ethernet que implementam o descarregamento RDMA ou IPSec.

SynchronousOidRequestHandler

O ponto de entrada para o Função MiniportSynchronousOidRequest . Esse é um ponto de entrada opcional. Defina esse membro como NULL se o driver de miniporto não manipular solicitações OID síncronas.

Necessário para miniportos WLAN e Ethernet que implementam RSSv2.

Comentários

Um driver NDIS passa um ponteiro para sua estrutura NDIS_MINIPORT_DRIVER_CHARACTERISTICS no parâmetro MiniportDriverCharacteristics do Função NdisMRegisterMiniportDriver . Um driver de miniporto chama NdisMRegisterMiniportDriver de sua rotina DriverEntry (consulte também DriverEntry of NDIS Miniport Drivers).

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Cabeçalho ndis.h (inclua Ndis.h)

Confira também

DriverEntry

MiniportCancelDirectOidRequest

MiniportCancelOidRequest

MiniportCancelSend

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportDirectOidRequest

MiniportDriverUnload

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportPause

MiniportResetEx

MiniportRestart

MiniportReturnNetBufferLists

MiniportSendNetBufferLists

MiniportSetOptions

MiniportShutdownEx

NdisMRegisterMiniportDriver