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.
Ovladač zařízení může použít následující žádosti o řízení zařízení k synchronnímu vyhodnocení kontrolních metod definovaných v oboru názvů ACPI zařízení:
-
Tento požadavek vyhodnocuje řídicí metodu, která je okamžitým podřízeným objektem v oboru názvů ACPI zařízení, do kterého se požadavek odešle.
-
Tento požadavek synchronně vyhodnocuje řídicí metodu podporovanou zařízením nebo podřízeným objektem zařízení, do kterého se požadavek odešle.
Ovladač ACPI systému Windows, Acpi.sys, zpracovává tyto požadavky jménem zařízení, která jsou uvedena v tabulkách popisu systému v systému ACPI BIOS. Tyto požadavky můžou používat ovladače zařízení v režimu jádra, které splňují požadavky rozhraníKernel-Mode Driver Framework (KMDF) nebo Modelu ovladačů systému Windows (WDM). Od systému Windows 8 můžou tyto požadavky používat ovladače zařízení v uživatelském režimu, které splňují požadavky rozhraní UMDF (User-Mode Driver Framework).
Například ovladač WDM provádí následující posloupnost operací pro použití jedné z těchto vstupně-výstupních adres (IOCTLS):
Volá IoBuildDeviceIoControlRequest pro sestavení požadavku.
Zavolá IoCallDriver k odeslání požadavku směrem dolů do zásobníku zařízení.
Čeká na to, aby V/V manažer signalizoval ovladač, že ovladače nižší úrovně dokončily požadavek.
Zkontroluje stav požadavku.
Zkontroluje platnost výstupních argumentů.
Zpracuje výstupní argumenty, které jsou vráceny ovladači.
Dokončí požadavek.
K sestavení požadavku ovladač volá IoBuildDeviceIoControlRequest a poskytuje následující parametry:
IoControlCode je nastaven na IOCTL_ACPI_EVAL_METHOD nebo IOCTL_ACPI_EVAL_METHOD_EX.
DeviceObject je nastavený na ukazatel na objekt fyzického zařízení (PDO) zařízení.
InputBuffer je nastaven na ukazatel na vstupní vyrovnávací paměť struktury, která závisí na typu vstupních argumentů, které mají být předány do metody řízení. Ovladač ACPI podporuje metody, které neobsahují vstupní argumenty, které přebírají jedno celé číslo, které přebírají řetězec ASCII nebo přebírají vlastní pole vstupních argumentů. Další informace o podporovaných strukturách vstupní vyrovnávací paměti naleznete v tématu Řídicí metoda vstupní vyrovnávací paměti struktury.
InputBufferLength je nastavena na velikost, v bajtech, vstupního bufferu, který je poskytnut InputBuffer.
OutputBufferLength poskytuje velikost výstupní vyrovnávací paměti poskytované outputBufferem v bajtech.
Vlastnost InternalDeviceIoControl je nastavená na HODNOTU FALSE.
Událost je nastavena na ukazatel na objekt události, který byl přidělen a inicializován volajícím. Ovladač počká, až V/V manažer signalizuje tuto událost, což značí, že ovladače nižší úrovně dokončily požadavek.
OutputBuffer poskytuje ukazatel na ACPI_EVAL_OUTPUT_BUFFER strukturu, která obsahuje výstupní argumenty z řídicí metody. Výstupní argumenty jsou specifické pro danou řídicí metodu. Aby ovladač vrátil jakýkoli výstup, musí přidělit vyrovnávací paměť, která je dostatečně velká pro uložení všech výstupních argumentů.
IoStatusBlock je nastavena na IO_STATUS_BLOCK strukturu. Tím se vrátí stav požadavku nastaveného ovladači nižší úrovně.
Příklad kódu, jak vyhodnotit řídicí metodu, která nepřebírají vstupní argumenty, naleznete v tématu Vyhodnocení metody řízení bez vstupních argumentů.
Příklad kódu, jak vyhodnotit metodu ovládacího prvku, která přebírá vstupní argumenty, naleznete v tématu Vyhodnocení metody řízení, která přebírá vstupní argumenty.