Sdílet prostřednictvím


Nastavení rozšíření zařízení ovladače třídy úložiště

V rozšíření zařízení každého objektu zařízení vytvořeného ovladačem třídy úložiště tento ovladač poskytuje úložiště pro libovolná data určená ovladačem, která používá ke správě vstupně-výstupních požadavků zařízení, jako je ukazatel na PDO předaný do AddDevice, ukazatel na objekt zařízení vrácený IoAttachDeviceToDeviceStack, zpětný ukazatel na vlastní objekt zařízení a tak dále.

Většina ovladačů třídy úložiště také poskytuje úložiště pro následující informace:

  • Hodnota časového limitu specifického typu zařízení

    Ovladač třídy může předat hodnotu časového limitu v SRB, které odesílá ovladači portu, což určuje načasování SRB_FUNCTION_EXECUTE_SCSI požadavků (viz SCSI_REQUEST_BLOCK) jménem každého ovladače třídy. Ovladač portu vrátí SRB se svým členem SrbStatus nastaveným na SRB_STATUS_TIMEOUT, pokud interval mezi tím, kdy ovladač portu odešle požadavek podkladovému ovladači a po dokončení požadavku překročí zadanou hodnotu časového limitu.

  • Ukazatel na rutinu zpracování chyb ovladače třídy

    Najdete další informace o zpracování chyb v ovladačích úložné třídy v části IoCompletion rutiny ovladače úložné třídy.

  • Počet chyb protokolu sběrnice, které ovladač udržuje na zařízení

  • Ukazatel na vyrovnávací paměť přidělenou ovladačem pro smyslová data

    Ovladač třídy musí přidělit paměť pro vrácená smyslová data z nestránkového fondu zarovnaného do mezipaměti. Další informace o přidělování paměti pro vyrovnávací paměti ovladače naleznete v tématu Přidělování paměti System-Space.

  • Výchozí hodnota určená ovladačem pro SrbFlags, kterou ovladač třídy nastaví v SRB.

  • Ukazatel na záhlaví seznamu vyhledávání, pokud ovladač nastaví vyhledávací seznam pro databáze, které přidělí

    Další informace naleznete v části Využití seznamů lookaside.

  • Ukazatele na IRP a SRB, které jsou přiděleny a uchovány v rezervě pro požadavky, jež musí být vyřízeny úspěšně i za podmínek nedostatku paměti, a to jak pro operace stránkování, tak pro operace obnovy chyb (například operace, které provádí rutina ReleaseQueue ovladače úložného systému).

  • Ukazatel na STORAGE_ADAPTER_DESCRIPTOR a STORAGE_DEVICE_DESCRIPTOR data, která ovladač portu shromáždil z adaptéru HBA

    Informace o tom, jak ovladače třídy získávají a používají tato data, naleznete v tématu Rutina GetDescriptor ovladače třídy úložiště.

  • Příznaky označující předchozí a aktuální stav PnP pro správu přechodů mezi stavy na zařízení

  • Příznak, který označuje aktuální stav napájení zařízení, aby se zabránilo nadbytečné práci při zpracování redundantních požadavků na napájení

  • Počet systémových stránkovacích souborů (pokud existují) na zařízení na základě požadavků na oznámení o stránkování přijatých ovladačem (IRP_MJ_PNP s IRP_MN_DEVICE_USAGE_NOTIFICATION)

Ovladač třídy úložiště nemůže odesílat požadavky na své zařízení prostřednictvím ovladače portu úložiště bez použití ukazatele objektu zařízení, který vrátil IoAttachDeviceToDeviceStack a uložen v rozšíření zařízení rutinou AddDevice ovladače.