Udostępnij przez


Porady i wymagania dotyczące implementacji dla usługi WDM Lower Edge

W tym temacie opisano porady i wymagania dotyczące implementowania sterownika miniportu NDIS-WDM. Sterownik miniportu NDIS-WDM może wywoływać zarówno funkcje NDIS, jak i inne niż NDIS. Te funkcje inne niż NDIS obejmują na przykład procedury obsługi trybu jądra WDM oraz funkcje dla określonego interfejsu sterownika magistrali.

Podczas implementowania sterownika NDIS-WDM miniportu należy pamiętać o następujących kwestiach:

  • Utworzenie sterownika miniportu NDIS-WDM wymaga, aby flaga NDIS_WDM została zdefiniowana przed dołączeniem pliku nagłówka Ndis.h. Zdefiniowanie flagi NDIS_WDM gwarantuje, że Ndis.h automatycznie zawiera odpowiedni plik nagłówka WDM. Flaga NDIS_WDM powinna być osadzona na początku kodu źródłowego sterownika miniportu lub ustawiona w pliku Sources sterownika miniportu. Sterownik NDIS-WDM miniport wymaga pliku nagłówka WDM w celu wywołania procedur trybu jądra, takich jak IoCallDriver i IoAllocateIrp.

  • Wywołania funkcji dla określonego interfejsu magistrali wymagają plików nagłówkowych dla tego interfejsu magistrali.

  • Nie zaleca się dołączania nagłówków NDIS oraz innych nagłówków niż NDIS w jednym pliku źródłowym, ponieważ mogą być ze sobą niezgodne. Oznacza to, że należy utworzyć oddzielne pliki źródłowe dla kodu, który wywołuje funkcje NDIS i dla kodu, który wywołuje funkcje inne niż NDIS.

  • Sterownik miniportu NDIS-WDM powinien wywoływać odpowiednie funkcje NDIS w celu przydzielenia i zwolnienia zasobów, chyba że sterownik miniportu NDIS-WDM robi to w jednym z poniższych scenariuszy:

    • Zasób, zazwyczaj zasób pamięci, jest przydzielany przez sterownik NDIS-WDM miniportu i jest później udostępniany przez jednostkę inną niż NDIS, taką jak interfejs sterownika magistrali,
    • Zasób, zazwyczaj zasób pamięci, jest przydzielany przez jednostkę inną niż NDIS, a następnie jest zwalniany przez sterownik NDIS-WDM miniportu.

    W poprzednich scenariuszach sterownik miniportu NDIS-WDM powinien wywołać odpowiednie procedury WDM, aby przydzielić lub zwolnić zasoby dla jednostki innej niż NDIS.