Compartir a través de


Función NdisMFreeSharedMemory (ndis.h)

NdisMFreeSharedMemory libera memoria asignada anteriormente por NdisMAllocateSharedMemory o NdisMAllocateSharedMemoryAsyncEx por el controlador de una NIC DMA.

Sintaxis

void NdisMFreeSharedMemory(
  [in] NDIS_HANDLE           MiniportAdapterHandle,
  [in] ULONG                 Length,
  [in] BOOLEAN               Cached,
  [in] PVOID                 VirtualAddress,
  [in] NDIS_PHYSICAL_ADDRESS PhysicalAddress
);

Parámetros

[in] MiniportAdapterHandle

Especifica el identificador de entrada original en MiniportInitializeEx.

[in] Length

Especifica el número de bytes asignados originalmente.

[in] Cached

Especifica TRUE si la asignación original se puede almacenar en caché.

[in] VirtualAddress

Especifica la dirección virtual base devuelta por NdisMAllocateSharedMemory o NdisMAllocateSharedMemoryAsyncEx.

[in] PhysicalAddress

Especifica la dirección física correspondiente devuelta por NdisMAllocateSharedMemory o NdisMAllocateSharedMemoryAsyncEx.

Valor devuelto

None

Observaciones

Si ya ha realizado una llamada correcta a NdisMAllocateSharedMemory o NdisMAllocateSharedMemoryAsyncEx, el controlador de miniporte de un dispositivo DMA llama a NdisMFreeSharedMemory si se produce alguna de las siguientes acciones:

  • Su función MiniportInitializeEx no puede inicializar la NIC, por lo que esta función debe liberar todas las notificaciones existentes en los recursos de hardware de esa NIC antes de devolver el control.
  • NIC para la que el controlador de minipuerto asignó la memoria se va a quitar.
  • El controlador se está descargando, ya sea porque el sistema se apaga o porque el usuario ha reconfigurado los componentes de red usados en la máquina.
  • El controlador asignó memoria compartida adicional con NdisMAllocateSharedMemoryAsyncEx cuando la demanda de E/S en una NIC era alta, pero el tráfico de red ahora ha disminuido a un nivel medio.
Un controlador de minipuerto no puede llamar a NdisMFreeSharedMemory para liberar un subrango dentro de un intervalo de memoria compartido asignado. Los parámetros pasados a NdisMFreeSharedMemory deben coincidir exactamente con los que se pasaron a NdisMAllocateSharedMemory o NdisMAllocateSharedMemoryAsyncEx.

No se puede llamar a NdisMFreeSharedMemory desde una función MiniportShutdownEx.

Microsoft Windows Server 2003, Windows XP Service Pack 1 y versiones posteriores de Windows permiten que las NIC DMA maestras de bus y las NIC DMA subordinadas llamen a NdisMFreeSharedMemory. Las versiones anteriores solo permiten que las NIC DMA de bus-master llamen a NdisMFreeSharedMemory.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte NdisMFreeSharedMemory (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte NdisMFreeSharedMemory (NDIS 5.1)) en Windows XP.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_Miniport_Driver_Function(ndis), NdisMFreeSharedMemory(ndis)

Consulte también

MiniportHaltEx

MiniportInitializeEx

MiniportSharedMemoryAllocateComplete

MiniportShutdownEx

NdisMAllocateSharedMemory

NdisMAllocateSharedMemoryAsyncEx