Compartir a través de


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

NDIS llama a la función miniportSharedMemoryAllocateComplete de un controlador de miniporte para completar una solicitud de asignación de memoria compartida que inició el controlador de miniportar llamando al función NdisMAllocateSharedMemoryAsyncEx.

Nota Debe declarar la función mediante el tipo MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE. Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MiniportAllocateSharedMemComplete;

void MiniportAllocateSharedMemComplete(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PVOID VirtualAddress,
  [in] PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
  [in] ULONG Length,
  [in] PVOID Context
)
{...}

Parámetros

[in] MiniportAdapterContext

Identificador de un área de contexto asignada por el controlador de miniport en el que el controlador mantiene la información de estado de una NIC. El controlador asigna este área de contexto en . función miniportInitializeEx.

[in] VirtualAddress

Dirección virtual base de la memoria compartida que asignó el controlador de miniport mediante una llamada a NdisMAllocateSharedMemoryAsyncEx. virtualAddress es NULL si se produjo un error en el intento de asignación.

[in] PhysicalAddress

Dirección física base de la NIC que se va a usar que se asigna a la dirección que especifica el parámetro virtualAddress .

[in] Length

Número de bytes que NdisMAllocateSharedMemoryAsyncEx asignado.

[in] Context

Puntero a un área de contexto que especificó el controlador de miniport en la llamada anterior a NdisMAllocateSharedMemoryAsyncEx.

Valor devuelto

Ninguno

Observaciones

miniportAllocateSharedMemoryComplete es una función opcional para controladores de miniport. Un controlador de miniport registra una función MiniportAllocateSharedMemoryComplete en la estructura NDIS_SG_DMA_DESCRIPTION que el controlador pasó al función NdisMRegisterScatterGatherDma.

Llamada a controladores de miniport NdisMAllocateSharedMemoryAsyncEx para asignar memoria compartida. Si NdisMAllocateSharedMemoryAsyncEx devuelve NDIS_STATUS_PENDING, NDIS llama a MiniportAllocateSharedMemoryComplete para pasar la memoria al controlador de miniport.

NDIS llama a miniportSharedMemoryAllocateComplete en irQL PASSIVE_LEVEL.

Ejemplos de

Para definir una función MiniportSharedMemoryAllocateComplete, 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 un MiniportSharedMemoryAllocateComplete función denominada "MySharedMemoryAllocateComplete", use el tipo MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE tal como se muestra en este ejemplo de código:

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MySharedMemoryAllocateComplete;

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

_Use_decl_annotations_
VOID
 MySharedMemoryAllocateComplete(
    NDIS_HANDLE  MiniportAdapterContext,
    PVOID  VirtualAddress,
    PNDIS_PHYSICAL_ADDRESS  PhysicalAddress,
    ULONG  Length,
    PVOID  Context
    )
  {...}

El tipo de función MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE se define en el archivo de encabezado Ndis.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 MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE 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 Se admite en NDIS 6.0 y versiones posteriores.
de la plataforma de destino de Windows
encabezado de ndis.h (incluya Ndis.h)
irQL PASSIVE_LEVEL

Consulte también

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma