estrutura NDIS_STATUS_INDICATION (ndis.h)
O NDIS e os drivers subjacentes usam a estrutura NDIS_STATUS_INDICATION para fornecer status indicações para drivers de protocolo sobressociá-los.
Sintaxe
typedef struct _NDIS_STATUS_INDICATION {
NDIS_OBJECT_HEADER Header;
NDIS_HANDLE SourceHandle;
NDIS_PORT_NUMBER PortNumber;
NDIS_STATUS StatusCode;
ULONG Flags;
NDIS_HANDLE DestinationHandle;
PVOID RequestId;
PVOID StatusBuffer;
ULONG StatusBufferSize;
GUID Guid;
PVOID NdisReserved[4];
} NDIS_STATUS_INDICATION, *PNDIS_STATUS_INDICATION;
Membros
Header
A estrutura NDIS_OBJECT_HEADER para a estrutura NDIS_STATUS_INDICATION. Defina o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_STATUS_INDICATION, o membro Revision como NDIS_STATUS_INDICATION_REVISION_1 e o membro Size como NDIS_SIZEOF_STATUS_INDICATION_REVISION_1.
SourceHandle
A origem da indicação status. Se a origem for um adaptador de miniporto, deverá ser o identificador que o NDIS passou para o parâmetro MiniportAdapterHandle da função MiniportInitializeEx . Se a origem for um módulo de filtro, deverá ser o identificador que o NDIS passou para o parâmetro NdisFilterHandle da função FilterAttach .
PortNumber
A porta de origem da indicação de status. Se a indicação status não for específica para uma porta, defina PortNumber como zero.
StatusCode
O código status, fornecido pelo NDIS ou propagado dos drivers subjacentes. O valor é um código NDIS_STATUS_XXX . Para obter mais informações sobre códigos NDIS_STATUS_XXX , consulte Indicações de status.
Flags
O tipo de informações no buffer status em StatusBuffer. Os drivers de miniporte definem esse membro como zero. Esse membro é reservado para o NDIS.
DestinationHandle
Um identificador que identifica o driver overlying que deve receber a indicação status. Se NULL, o NDIS indicará a status para cada driver de protocolo associado ao adaptador de miniporte. Se não for NULL, o NDIS indicará o status somente para o driver que DestinationHandle identifica. Nesse caso, o driver também deve definir o membro RequestId . Para obter mais informações sobre solicitações de OID, consulte a seção Comentários.
RequestId
A solicitação OID associada à indicação de status. Se não houver nenhuma solicitação OID associada à indicação de status, RequestId será NULL. Os drivers de miniport devem definir o membro RequestId se a indicação de status estiver associada a uma solicitação OID que o driver de miniporte concluiu com um status retornado de NDIS_STATUS_INDICATION_REQUIRED. Nesse caso, o driver também deve definir o membro DestinationHandle .
Para obter mais informações sobre solicitações de OID, consulte a seção Comentários a seguir.
StatusBuffer
Um ponteiro para um buffer que contém dados específicos médios que dependem do valor em StatusCode .
Por exemplo, se StatusCode for NDIS_STATUS_LINK_STATE, esse parâmetro apontará para uma estrutura NDIS_LINK_STATE e StatusBufferSize será sizeof(NDIS_LINK_STATE).
Para alguns valores NDIS_STATUS_XXX , esse ponteiro é NULL e StatusBufferSize é definido como zero.
StatusBufferSize
O comprimento, em bytes, do buffer de informações status em StatusBuffer.
Guid
Um GUID privado que o NDIS usa para gerar uma notificação WMI. Para obter mais informações sobre GUIDs privados, consulte OID_GEN_SUPPORTED_GUIDS.
NdisReserved[4]
Reservado para NDIS.
Comentários
Os drivers de miniport indicam status chamando a função NdisMIndicateStatusEx. Os drivers de filtro chamam a função NdisFIndicateStatus .
Algumas solicitações de OID permitem que um driver de miniporte forneça uma status de conclusão de OID com uma indicação de status. Nesse caso, o driver de miniporto retorna NDIS_STATUS_INDICATION_REQUIRED para o status de conclusão da solicitação OID. Um driver de miniporte não pode retornar esse status, a menos que o OID específico o permita. Para determinar se esse status é permitido, consulte a página de referência OID.
Se uma indicação de status estiver associada a uma solicitação OID em que o driver de miniporto retornou NDIS_STATUS_INDICATION_REQUIRED, o driver que está fazendo a indicação status deverá definir os membros DestinationHandle e RequestId na estrutura NDIS_STATUS_INDICATION.
Nesse caso, o driver define os membros DestinationHandle e RequestId para os valores dos membros RequestHandle e RequestId na estrutura NDIS_OID_REQUEST , respectivamente.
Por exemplo, na rede sem fio, o processamento de uma solicitação OID pode levar muito tempo para ser concluído. Nesse caso, o driver de miniporto pode concluir a solicitação OID imediatamente e fornecer uma indicação status posteriormente para fornecer o resultado final para a solicitação OID.
Os drivers de protocolo recebem status indicações na função ProtocolStatusEx. Os drivers de filtro recebem status indicações na função FilterStatus.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.0 e posterior. |
Cabeçalho | ndis.h (inclua Ndis.h) |