estrutura NDIS_MINIPORT_DRIVER_CHARACTERISTICS (ndis.h)
Um driver NDIS inicializa uma estrutura 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 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
Os membros DirectOidRequestHandler e CancelDirectOidRequestHandler foram adicionados ao 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 |
87 | NDIS 6.87 |
88 | NDIS 6.88 |
89 | NDIS 6.89 |
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 do NDIS.
NDIS_WDM_DRIVER
Defina se o chamador for um driver de miniporta NDIS-WDM.
SetOptionsHandler
O ponto de entrada para a função MiniportSetOptions do chamador.
Necessário para Co-NDIS. Sugerido para drivers de miniporta 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 miniporta sem conexão, incluindo todos os drivers Ethernet, WLAN e IM. Opcional para alguns drivers de miniporta 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.
O MiniportCheckForHangEx é desencorajado para drivers de miniporta destinados a serem instalados em dispositivos não AOAC movidos a 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 miniporta que se destinam a serem instalados em dispositivos de linha (alimentados por mains). 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) |