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.
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 |
---|---|
|
El controlador de miniporte asignó correctamente el contador y devolvió un identificador en el parámetro counterHandle. |
|
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 |