Función NdisMInvalidateConfigBlock (ndis.h)

Un controlador de minipuerto llama a la función NdisMInvalidateConfigBlock para notificar a NDIS que se han cambiado los datos de uno o varios bloques de configuración de función virtual (VF).

NotaNdisMInvalidateConfigBlock solo debe ser llamado por el controlador de minipuerto para la función física PCIe (PF) del adaptador de red.
 

Sintaxis

void NdisMInvalidateConfigBlock(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] ULONGLONG              BlockMask
);

Parámetros

[in] NdisMiniportHandle

Identificador del adaptador de red que NDIS pasó al parámetro MiniportAdapterHandle de MiniportInitializeEx.

[in] VFId

Identificador del VF para el que se devuelve la ubicación del dispositivo.

[in] BlockMask

Valor de ULONGLONG que especifica una máscara de bits para los primeros bloques de configuración de VF de 64. Cada bit de la máscara de bits corresponde a un bloque de configuración de VF. Si el bit se establece en uno, los datos asociados al bloque de configuración de VF correspondiente han cambiado.

Valor devuelto

None

Observaciones

Se usa un bloque de configuración de VF para la comunicación backchannel entre los controladores de miniporte PF y VF. El IHV puede definir uno o varios bloques de configuración de VF para el dispositivo. Cada bloque de configuración de VF tiene un formato, longitud y identificador de bloque definido por IHV.

Nota Los datos de cada bloque de configuración de VF solo los usan los controladores de miniporte PF y VF.
 
Los datos de configuración de VF se intercambian entre los siguientes controladores:
  • Controlador VF, que se ejecuta en el sistema operativo invitado. Este sistema operativo se ejecuta dentro de una partición secundaria de Hyper-V.
  • El controlador PF, que se ejecuta en el sistema operativo de administración.

    Este sistema operativo se ejecuta dentro de la partición primaria de Hyper-V.

Para controlar las notificaciones de datos de configuración de VF no válidos, NDIS y los controladores de miniporte realizan los pasos siguientes:
  1. En el sistema operativo invitado, NDIS emite una solicitud de control de E/S de IOCTL_VPCI_INVALIDATE_BLOCK solicitud. Cuando se completa este IOCTL, se notifica a NDIS que los datos de configuración de VF han cambiado.
  2. En el sistema operativo de administración, se producen los pasos siguientes:
    1. El controlador de miniporte PF llama a la función NdisMInvalidateConfigBlock para notificar a NDIS que los datos de configuración de VF han cambiado y ya no son válidos.
    2. NDIS señala la pila de virtualización, que se ejecuta en el sistema operativo de administración, sobre el cambio a los datos del bloque de configuración de VF. La pila de virtualización almacena en caché los datos del parámetro BlockMask .
      Nota Cada vez que el controlador de miniporte PF llama a NdisMInvalidateConfigBlock, la pila de virtualización reemplaza los datos del parámetro BlockMask con el valor actual en su memoria caché.
       
    3. La pila de virtualización notifica al controlador PCI virtual (VPCI), que se ejecuta en el sistema operativo invitado, sobre la invalidación de los datos de configuración de VF. La pila de virtualización envía los datos del parámetro BlockMask almacenados en caché al controlador VPCI.
  3. En el sistema operativo invitado, se producen los pasos siguientes:
    1. El controlador VPCI guarda los datos de parámetros BlockMask almacenados en caché en el miembro BlockMask de la estructura de VPCI_INVALIDATE_BLOCK_OUTPUT asociada a la solicitud de IOCTL_VPCI_INVALIDATE_BLOCK .
    2. El controlador VPCI completa correctamente la solicitud de IOCTL_VPCI_INVALIDATE_BLOCK . Cuando esto sucede, NDIS emite una solicitud de método OID de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK al controlador de minipuerto de VF. Se pasa una solicitud NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO en la solicitud de OID. Esta estructura contiene los datos de parámetro BlockMask almacenados en caché.

      NDIS también emite otra solicitud de IOCTL_VPCI_INVALIDATE_BLOCK para controlar las notificaciones sucesivas de cambios en los datos de configuración de VF.

    3. Cuando el controlador VF controla la solicitud de OID_SRIOV_VF_INVALIDATE_CONFIG_BLOCK , lee los datos de los bloques de configuración de VF especificados.
Para obtener más información sobre la comunicación backchannel dentro de la interfaz de virtualización de E/S raíz única (SR-IOV), consulte SR-IOV PF/VF Backchannel Communication.

Para obtener más información sobre la interfaz SR-IOV, vea Información general sobre la virtualización de E/S raíz única (SR-IOV).

Requisitos

Requisito Value
Cliente mínimo compatible Ninguno compatible, compatible con NDIS 6.30 y versiones posteriores.
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL

Consulte también

IOCTL_VPCI_INVALIDATE_BLOCK

NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO

OID_SRIOV_READ_VF_CONFIG_SPACE

VPCI_INVALIDATE_BLOCK_OUTPUT