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.
Ve WDM i frameworkových ovladačích je funkce DriverEntry primárním vstupním bodem. Prototyp funkce je stejný v obou modelech. V ovladači WDM systém volá DriverEntry při prvním načtení ovladače do paměti. DriverEntry nastaví ukazatel na rutinu AddDevice ovladače v poli DriverExtension->AddDevice struktury DRIVER_OBJECT, nastaví ukazatele na své vstupně-výstupní rutiny v poli MajorFunction struktury DRIVER_OBJECT, a poté se vrátí. V ovladači založeném na rozhraní systém volá interní funkci FxDriverEntry architektury při načítání ovladače. Tato interní funkce inicializuje architekturu a potom zavolá funkci DriverEntry ovladače. DriverEntry nastaví ukazatel na zpětné volání EvtDriverDeviceAdd ovladače a volá WdfDriverCreate pro vytvoření objektu WDFDRIVER, jak ukazuje následující příklad:
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject
IN PUNICODE_STRING RegistryPath
)
{
WDF_DRIVER_CONFIG config;
WDF_DRIVER_CONFIG_INIT( &config,
ToasterEvtDeviceAdd );
status = WdfDriverCreate(
DriverObject,
RegistryPath,
WDF_NO_OBJECT_ATTRIBUTES,
&config,
WDF_NO_HANDLE
);
return STATUS_SUCCESS;
}
DriverEntry také inicializuje všechna globální data nebo prostředky, které ovladač vyžaduje, například vytvoření vyhledávacího seznamu nebo inicializace trasování. Všimněte si, že ačkoli WdfDriverCreate vrací popisovač k objektu WDFDRIVER, ovladač si tento popisovač neuchovává, stejně jako ovladač WDM nemusí uchovávat ukazatel DRIVER_OBJECT, který mu byl předán v jeho rutině DriverEntry. Důvod je stejný: pouze několik ovladačů používá ukazatel na objekt ovladače.