Compartir a través de


NDIS_PD_ALLOCATE_COUNTER función de devolución de llamada (ndis.h)

La plataforma PacketDirect (PD) llama a la función NdisPDAllocateCount er del controlador de miniporte compatible con PD para asignar un objeto de contador. Hay tres tipos de contadores:

  • Los contadores de cola de recepción se usan para realizar el seguimiento de la actividad de la cola de recepción.
  • Los contadores de cola de transmisión se usan para realizar el seguimiento de la actividad de la cola de transmisión.
  • Los contadores de filtro se usan para realizar el seguimiento de la actividad de coincidencia de filtros.
Nota Debe declarar la función mediante el tipo NDIS_PD_ALLOCATE_COUNTER. Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

NDIS_PD_ALLOCATE_COUNTER NdisPdAllocateCounter;

NTSTATUS() NdisPdAllocateCounter(
  [in]  NDIS_PD_PROVIDER_HANDLE ProviderHandle,
  [in]  const NDIS_PD_COUNTER_PARAMETERS *CounterParameters,
  [out] NDIS_PD_COUNTER_HANDLE *CounterHandle
)
{...}

Parámetros

[in] ProviderHandle

Identificador de proveedor que identifica el objeto de proveedor del controlador de miniport compatible con PD.

[in] CounterParameters

Estructura NDIS_PD_COUNTER_PARAMETERS que especifica información como el tipo de contador.

[out] CounterHandle

Puntero a una variable de identificador de contador asignada por el controlador. Si la asignación del contador se realiza correctamente, el controlador de miniporte devuelve un identificador al contador recién asignado en esta variable.

Valor devuelto

NdisPDAllocateCounter puede devolver uno de los siguientes valores de estado:

Código devuelto Descripción
STATUS_SUCCESS
El controlador de miniporte asignó correctamente el contador y devolvió un identificador en el parámetro counterHandle.
STATUS_INSUFFICIENT_RESOURCES
Error en la asignación debido a recursos insuficientes.

Observaciones

El mismo objeto de contador se puede asociar a varios objetos de cola o filtro del mismo tipo que el contador. Por ejemplo, si hay 5 colas de recepción (RQ1 a RQ5) y 2 contadores de recepción (RC1 y RC2), el contador de recepción RC1 podría asociarse con las colas de recepción RQ1, RQ2, RQ3 y el contador de recepción RC2 podrían asociarse con las colas de recepción RQ4 y RQ5.

Ejemplos de

Para definir un función NdisPDAllocateCounter, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función NdisPDAllocateCounter denominada "MyPDAllocateCounter", use el tipo NDIS_PD_ALLOCATE_COUNTER tal como se muestra en este ejemplo de código:

NDIS_PD_ALLOCATE_COUNTER MyPDAllocateCounter;

A continuación, implemente la función de la siguiente manera:

_Use_decl_annotations_
NTSTATUS
 MyPDAllocateCounter(
    NDIS_PD_PROVIDER_HANDLE  ProviderHandle,
    CONST NDIS_PD_COUNTER_PARAMETERS*  CounterParameters,
    NDIS_PD_COUNTER_HANDLE*  CounterHandle
    )
  {...}

El tipo de función NDIS_PD_ALLOCATE_COUNTER se define en el archivo de encabezado Ntddndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función NDIS_PD_ALLOCATE_COUNTER en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.

Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
servidor mínimo admitido Windows Server 2016
de la plataforma de destino de Windows
encabezado de ndis.h
irQL PASSIVE_LEVEL

Consulte también

NDIS_PD_COUNTER_PARAMETERS

NdisPDFreeCounter