Udostępnij za pośrednictwem


Wyliczanie portów wirtualnych na karcie sieciowej

Nadrzędny sterownik lub aplikacja użytkownika może uzyskać listę wszystkich portów wirtualnych (VPorts) na przełączniku karty sieciowej adaptera sieciowego obsługującego wirtualizację I/O z jednym rdzeniem (SR-IOV). Sterownik lub aplikacja wystawia żądanie metody identyfikatora obiektu (OID) o numerze OID_NIC_SWITCH_ENUM_VPORTS, aby uzyskać tę listę.

Po pomyślnym zakończeniu tego żądania zapytania OID, członek InformationBuffer w strukturze NDIS_OID_REQUEST zawiera wskaźnik do bufora, który zawiera następujące elementy:

  • Struktura NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, która definiuje liczbę elementów w tablicy.

  • Jest tablica struktur NDIS_NIC_SWITCH_VPORT_INFO. Każda z tych struktur zawiera informacje o VPort na przełączniku NIC karty sieciowej.

    Uwaga Jeśli na karcie sieciowej nie utworzono żadnych wirtualnych portów, sterownik ustawia składową NumElements struktury NDIS_NIC_SWITCH_VPORT_INFO_ARRAY na zero i nie są zwracane żadne struktury NDIS_NIC_SWITCH_VPORT_INFO.

Zanim leżący nad sterownik lub aplikacja użytkownika złoży żądanie OID_NIC_SWITCH_ENUM_VPORTS, musi zainicjować strukturę NDIS_NIC_SWITCH_VPORT_INFO_ARRAY, która jest przekazywana wraz z żądaniem. Sterownik lub aplikacja musi przestrzegać tych wytycznych podczas inicjowania struktury NDIS_NIC_SWITCH_VPORT_INFO_ARRAY:

  • Jeśli flaga NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH jest ustawiona w członie Flags, informacje są zwracane dla wszystkich VPortów utworzonych na określonym przełączniku karty sieciowej. Przełącznik karty sieciowej jest określony przez człon SwitchId struktury oznaczonej jako .

    Uwaga Począwszy od systemu Windows Server 2012, interfejs SR-IOV obsługuje tylko jeden przełącznik sieciowy na karcie sieciowej. Ten przełącznik jest znany jako domyślny przełącznik karty sieciowej i jest odwoływany przez identyfikator NDIS_DEFAULT_SWITCH_ID. Niezależnie od flag ustawionych w członku Flags, członek SwitchId musi być ustawiony na NDIS_DEFAULT_SWITCH_ID.

  • Jeśli flaga NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION jest ustawiona w elemencie Flags, informacje są zwracane dla wszystkich wirtualnych portów dołączonych do określonej fizycznej funkcji PCI Express (PCIe) (PF) lub wirtualnej funkcji (VF) na karcie sieciowej. PF lub VF jest określony przez element AttachedFunctionId tej struktury.

    Jeśli element członkowski AttachedFunctionId jest ustawiony na NDIS_PF_FUNCTION_ID, informacje są zwracane dla wszystkich portów VPorts. Obejmuje to domyślny VPort dołączony do PF. Jeśli element członkowski AttachedFunctionId jest ustawiony na prawidłowy identyfikator VF, informacje są zwracane dla wszystkich wirtualnych portów dołączonych do określonego VF.

    Uwaga Począwszy od systemu Windows Server 2012, tylko jeden niezdefault VPort może być dołączony do VF. Do PF można jednak dołączyć wiele VPortów (w tym domyślny VPort).

  • Jeśli element członkowski Flagi jest ustawiony na zero, informacje są zwracane dla wszystkich portów wirtualnych dołączonych do PF lub VF w karcie sieciowej. W tym przypadku wartości SwitchId i AttachedFunctionId są ignorowane.

Usługa NDIS obsługuje żądanie OID_NIC_SWITCH_ENUM_VPORTS dla sterowników miniportu. NDIS zwraca informacje z wewnętrznej pamięci podręcznej danych, którą utrzymuje poprzez inspekcję następujących źródeł: