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

NDIS llama a la función MiniportSharedMemoryAllocateComplete del controlador de miniporte para completar una solicitud de asignación de memoria compartida que el controlador de miniporte inició 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 minipuerto en el que el controlador mantiene la información de estado de una NIC. El controlador asigna este área de contexto en el Función MiniportInitializeEx .

[in] VirtualAddress

Dirección virtual base de la memoria compartida que el controlador de miniporte asignó llamando a NdisMAllocateSharedMemoryAsyncEx. VirtualAddress es NULL si se produjo un error en el intento de asignación.

[in] PhysicalAddress

La dirección física base para que la NIC use que se asigna a la dirección que especifica el parámetro VirtualAddress .

[in] Length

Número de bytes asignados por NdisMAllocateSharedMemoryAsyncEx .

[in] Context

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

Valor devuelto

None

Observaciones

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

Llamada a controladores de minipuerto 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

Para definir una función MiniportSharedMemoryAllocateComplete , primero debe proporcionar una declaración de función que identifique el tipo de función que está definiendo. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función MiniportSharedMemoryAllocateComplete denominada "MySharedMemoryAllocateComplete", use el tipo de MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE 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 Declarar funciones mediante tipos de roles de función para controladores NDIS.

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

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL PASSIVE_LEVEL

Consulte también

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma