Compartilhar via


Função NdisRegisterDeviceEx (ndis.h)

A função NdisRegisterDeviceEx cria um objeto de dispositivo baseado nos atributos especificados.

Sintaxe

NDIS_STATUS NdisRegisterDeviceEx(
  [in]  NDIS_HANDLE                    NdisHandle,
  [in]  PNDIS_DEVICE_OBJECT_ATTRIBUTES DeviceObjectAttributes,
  [out] PDEVICE_OBJECT                 *pDeviceObject,
  [out] PNDIS_HANDLE                   NdisDeviceHandle
);

Parâmetros

[in] NdisHandle

Um identificador de driver de miniporta ou identificador de driver de filtro que o chamador obteve chamando o Função NdisMRegisterMiniportDriver ou a Função NdisFRegisterFilterDriver , respectivamente.

[in] DeviceObjectAttributes

Um ponteiro para um NDIS_DEVICE_OBJECT_ATTRIBUTES estrutura que contém os atributos do novo dispositivo.

[out] pDeviceObject

Um ponteiro que aponta para um ponteiro para uma estrutura de DEVICE_OBJECT recém-criada, se a chamada for bem-sucedida. Se a chamada falhar, pDeviceObject será definido para apontar para NULL.

[out] NdisDeviceHandle

Um ponteiro para uma variável fornecida pelo chamador na qual essa função, se for bem-sucedida, retornará um identificador para o objeto do dispositivo. Esse identificador é um parâmetro necessário para a função NdisDeregisterDeviceEx que o driver chama posteriormente.

Retornar valor

NdisRegisterDeviceEx retorna um dos seguintes valores de status:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
NdisRegisterDeviceEx registrou com êxito o dispositivo.
NDIS_STATUS_NOT_SUPPORTED
O chamador não é um driver NDIS.
NDIS_STATUS_XXX ou NTSTATUS_XXX
Falha na tentativa do driver de registrar o dispositivo. Normalmente, esse erro status é propagado de uma função NdisXxx ou de uma rotina de suporte no modo kernel.

Comentários

Drivers de miniport e drivers de filtro podem chamar NdisRegisterDeviceEx para registrar um dispositivo virtual.

Nota Os drivers NDIS não devem modificar o membro DeviceExtension da estrutura DEVICE_OBJECT que NdisRegisterDeviceEx criou.
 
Se um driver NDIS exigir espaço para informações de contexto no objeto do dispositivo, o driver poderá passar um valor diferente de zero para o membro ExtensionSize no NDIS_DEVICE_OBJECT_ATTRIBUTES estrutura no parâmetro DeviceObjectAttributes . Nesse caso, o NDIS aloca a extensão para o driver e o driver pode chamar o Função NdisGetDeviceReservedExtension para obter um ponteiro para a extensão.

O driver deve chamar posteriormente a função NdisDeregisterDeviceEx quando o dispositivo não for mais necessário. Se NdisRegisterDeviceEx tiver alocado uma extensão, NdisDeregisterDeviceEx liberará a extensão.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI Irql_Miscellaneous_Function(ndis)

Confira também

DEVICE_OBJECT

NDIS_DEVICE_OBJECT_ATTRIBUTES

NdisDeregisterDeviceEx

NdisFRegisterFilterDriver

NdisGetDeviceReservedExtension

NdisMRegisterMiniportDriver