Compartir a través de


Función NdisRegisterDeviceEx (ndis.h)

La función NdisRegisterDeviceEx crea un objeto de dispositivo basado en los atributos especificados.

Sintaxis

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

Controlador de miniporte o controlador de filtro que obtuvo el autor de la llamada llamando al función NdisMRegisterMiniportDriver o función NdisFRegisterFilterDriver, respectivamente.

[in] DeviceObjectAttributes

Puntero a un NDIS_DEVICE_OBJECT_ATTRIBUTES estructura que contiene los atributos del nuevo dispositivo.

[out] pDeviceObject

Puntero que apunta a un puntero a una estructura de DEVICE_OBJECT recién creada, si la llamada se realiza correctamente. Si se produce un error en la llamada, pDeviceObject se establece para que apunte a NULL.

[out] NdisDeviceHandle

Puntero a una variable proporcionada por el autor de la llamada en la que esta función, si se ejecuta correctamente, devuelve un identificador al objeto de dispositivo. Este identificador es un parámetro necesario para la función NdisDeregisterDeviceEx que el controlador llama posteriormente.

Valor devuelto

NdisRegisterDeviceEx devuelve uno de los siguientes valores de estado:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
NdisRegisterDeviceEx registró correctamente el dispositivo.
NDIS_STATUS_NOT_SUPPORTED
El autor de la llamada no es un controlador NDIS.
NDIS_STATUS_XXX o NTSTATUS_XXX
Error al intentar registrar el dispositivo. Normalmente, este estado de error se propaga desde una función de Ndisfunción xxx o una rutina de compatibilidad en modo kernel.

Observaciones

Los controladores de miniport y los controladores de filtro pueden llamar a NdisRegisterDeviceEx para registrar un dispositivo virtual.

Nota controladores NDIS no deben modificar el miembro DeviceExtension de la estructura de DEVICE_OBJECT que NdisRegisterDeviceEx creado.
 
Si un controlador NDIS requiere espacio para la información de contexto en el objeto de dispositivo, el controlador puede pasar un valor distinto de cero para el miembro ExtensionSize en el NDIS_DEVICE_OBJECT_ATTRIBUTES estructura en el parámetro DeviceObjectAttributes. En este caso, NDIS asigna la extensión para el controlador y el controlador puede llamar al función NdisGetDeviceReservedExtension para obtener un puntero a la extensión.

El controlador debe llamar posteriormente a la función NdisDeregisterDeviceEx cuando el dispositivo ya no sea necesario. Si NdisRegisterDeviceEx asigna una extensión, NdisDeregisterDeviceEx libera la extensión.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite en NDIS 6.0 y versiones posteriores.
de la plataforma de destino de Universal
encabezado de ndis.h (incluya Ndis.h)
biblioteca de Ndis.lib
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI Irql_Miscellaneous_Function(ndis)

Consulte también

DEVICE_OBJECT

NDIS_DEVICE_OBJECT_ATTRIBUTES

NdisDeregisterDeviceEx

NdisFRegisterFilterDriver

NdisGetDeviceReservedExtension

NdisMRegisterMiniportDriver