Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Všechny ovladače NDIS 6.0 a novější jsou deserializované.
Ovladač miniportu NDIS deserializovaný serializuje operaci vlastního miniportXxx funkcí a fronty interně všechny požadavky odesílají, a nespoléhat se na NDIS k provedení těchto funkcí. V důsledku toho může deserializovaný ovladač miniportu dosáhnout výrazně lepšího plně duplexního výkonu než serializovaný ovladač miniportu.
Deserializovaný model ovladače je výchozím modelem pro ovladače miniportu NDIS. Ovladače miniportů orientované na připojení a miniportové ovladače se spodním rozhraním WDM musí být deserializované ovladače. Při psaní nového ovladače miniportu NDIS byste měli napsat deserializovaný ovladač. Pokud je to možné, měli byste také přenést starší ovladače do NDIS 6.0 nebo novější. Další informace o portování ovladačů najdete tady:
- Portování ovladačů NDIS 5.x do NDIS 6.0
- Přenesení ovladačů NDIS 6.x do NDIS 6.20
- portování ovladačů NDIS 6.x do NDIS 6.30
Deserializovaný ovladač miniportu musí při rozhraní s rozhraním NDIS splňovat následující požadavky:
Deserializovaný ovladač miniportu se musí během inicializace identifikovat jako takový pro NDIS.
Deserializovaný ovladač miniportu musí dokončit všechny požadavky odesílání asynchronně. K dokončení požadavku na odeslání funkce volají ovladače miniportu NDIS 6.0 a novější bez připojení funkci NdisMSendNetBufferListsComplete. Ovladače NDIS miniportu orientované na připojení verze 6.0 a novější volají funkci NdisMCoSendNetBufferListsComplete.
Deserializovaný ovladač miniportu, který podporuje NDIS 6.0 nebo novější, nastaví Status člen struktury NET_BUFFER_LIST, kterou předá NdisMSendNetBufferListsComplete.
Pokud deserializovaný ovladač miniportu nemůže okamžitě dokončit zpracování požadavků na odeslání, nemůže vrátit tyto požadavky do NDIS ke znovuzařazení do fronty. Místo toho musí ovladač miniportu interně odesílat požadavky, dokud nebudou k dispozici dostatečné prostředky pro přenos dat.
Deserializovaný ovladač miniportu nesmí zkoumat struktury, které předává NDIS při příjmové indikaci, dokud je NDIS nevrátí. Systém NDIS vrací struktury NET_BUFFER_LIST do funkce MiniportReturnNetBufferLists ovladače miniportu.
Deserializovaný ovladač miniportu musí splňovat následující požadavky na interní ovladače:
Deserializovaný ovladač miniportu musí chránit fronty vyrovnávací paměti sítě pomocí spin zámků. Ovladač deserializovaného miniportu musí také chránit svůj sdílený stav před souběžným přístupem vlastními funkcemi MiniportXxx.
Deserializované miniportové funkce ovladače MiniportXxx můžou běžet na <IRQL <= DISPATCH_LEVEL. Proto zapisovač ovladačů nemůže předpokládat, že funkce MiniportXxx budou volána v pořadí, ve kterém zpracovávají požadavky. Jedna funkce MiniportXxx může přerušit jinou funkci MiniportXxx, která běží na nižší úrovni IRQL.
Deserializovaný ovladač miniportu zodpovídá za správu front vyrovnávací paměti sítě. Když u ovladače miniportu dojde k problému s prostředkem, nemůže vrátit požadavky na odeslání do NDIS za účelem opětovného vytvoření fronty. Místo toho musí ovladač miniportu interně zařaďovat všechny požadavky, dokud nebudou k dispozici dostatečné prostředky pro odesílání dat.
Deserializovaný ovladač miniportu by měl dokončit odesílání požadavků v pořadí určeném protokolem.
Další informace o požadavcích na odesílání a přijímání pro ovladače NDIS najdete v tématu Operace odesílání a příjmu.
Všimněte si, že deserializovaný ovladač miniportu obvykle dokončí odesílání požadavků v pořadí určeném protokolem. Ovladač miniportu, který podporuje prioritu paketů (například IEEE 802.1p), ale může změnit pořadí odesílání požadavků na základě informací o prioritě.