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

Un controlador de miniporte o controlador de filtro que el autor de la llamada obtuvo llamando al controlador 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 en 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 a la que llama posteriormente el controlador.

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 en el intento del controlador de registrar el dispositivo. Normalmente, este estado de error se propaga desde una función NdisXxx o una rutina de compatibilidad con modo kernel.

Comentarios

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

Nota Los controladores NDIS no deben modificar el miembro DeviceExtension de la estructura de DEVICE_OBJECT que creó NdisRegisterDeviceEx .
 
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 . 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.

Posteriormente, el controlador debe llamar a la función NdisDeregisterDeviceEx cuando el dispositivo ya no sea necesario. Si NdisRegisterDeviceEx ha asignado una extensión, NdisDeregisterDeviceEx libera la extensión.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library 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