Sdílet prostřednictvím


Použití sdružování zařízení v ovladačích UMDF

User-Mode Driver Framework (UMDF) Verze 1.11 a 2.0

Pokud byl ovladač User-Mode Driver Framework (UMDF) sestavený s verzí 1.11 nebo 2.0 a používá se ve Windows 8 nebo novějším, vytvoří architektura jednu instanci Wudfhost, která může hostovat více zásobníků zařízení. Tato technika se nazývá sdružování zařízení . Hlavní výhodou sdružování zařízení je snížení spotřeby paměti v prostředí s několika zařízeními UMDF.

Pokud selže zařízení ve fondu, systém ukončí instanci Wudfhost a pokusí se restartovat všechna zařízení, která byla dříve ve fondu. Pokud se zařízení při sdružování znovu nezdaří, vytvoří rozhraní pro zařízení samostatný proces Wudfhost a pokusí se zařízení znovu spustit.

Pokud zařízení selže v samostatném hostitelském procesu, architektura se pokusí ho restartovat až pětkrát. Rozhraní resetuje počet chyb zařízení na jeden, když uplynulo třicet minut od posledního selhání.

Pokud se systém restartuje, architektura znovu zařazuje zařízení s výjimkou těch, které selhaly při spuštění v samostatném procesu.

Pokud chcete zakázat sdružování zařízení pro konkrétní zařízení, použijte direktivu UmdfHostProcessSharing ve WDF-specifické části INF DDInstall. Informace o UmdfHostProcessSharingnaleznete v tématu Určení direktiv WDF v souborech INF.

Pokud ovladač používá přímé vstupně-výstupní, musíte nastavit UmdfHostProcessSharing na ProcessSharingDisabled. Jinak se váš ovladač nemusí spustit. Pokud je vybrán WdfDeviceIoBufferedOrDirect a zařízení je ve fondu, framework změní metodu přístupu k vyrovnávací paměti na vyrovnávací I/O. Pokud je vybrán WdfDeviceIoBufferedOrDirect a zařízení není ve fondu, architektura změní metodu přístupu k vyrovnávací paměti na přímé vstupně-výstupní operace.

Chcete-li vybrat metodu přístupu k vyrovnávací paměti, musí váš ovladač zavolat metodu IWDFDeviceInitialize2::SetIoTypePreference ve své zpětné volací funkci IDriverEntry::OnDeviceAdd. Pro informace o metodách přístupu nahlédněte do Přístup k datovým bufferům v UMDF-Based Ovladače.

UmDF verze 1.9 a starší

Pokud byl váš ovladač sestaven s verzí UMDF 1.9 nebo starší, architektura vytvoří samostatnou instanci hostitelského procesu (Wudfhost) pro každý zásobník zařízení.

Pokud se zařízení nepodaří spustit, architektura se pokusí ho restartovat až pětkrát. Rozhraní resetuje počet chyb zařízení na jeden, když uplynulo třicet minut od posledního selhání.

Pokud více zásobníků zařízení sdílí stejný ovladač UMDF v nefondujícím prostředí:

Pokud ve sdíleném prostředí sdílí více zásobníků zařízení stejný ovladač uživatelského režimu:

Vzhledem k tomu, že ve fondu konfigurace existuje pouze jeden objekt ovladače, nesmí ovladač ukládat žádný kontext pro každé zařízení v globálních proměnných ani v objektech, které jsou sdíleny na zařízeních, jako je například objekt zpětného volání ovladače. Místo toho musí ovladač ukládat kontext jednotlivých zařízení do objektu, který není sdílen mezi zásobníky zařízení, jako je například objekt zpětného volání zařízení ovladače.