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.
Rozhraní statického obrazu definují dva režimy přenosu – režim stavu a režim dat. Když klient rozhraní IStillImage COM volá IStillImage::CreateDevice pro získání přístupu k zařízení stálého obrazu, určuje jeden (nebo oba) režimy přenosu. V režimu stavu může zařízení otevřít více klientů, ale v datovém režimu může zařízení otevřít jenom jeden klient najednou.
Monitor událostí statického obrazu otevře zařízení v režimu sledování. Rozhraní API pro získávání obrázků obvykle otevírají zařízení v datovém režimu, ale ne vždy.
Jakmile klient otevře zařízení v datovém režimu, monitor událostí ukládá další události zařízení se statickými obrázky do interní fronty. Pokud klient volá IStiDevice::Subscribe, může číst události z fronty voláním IStiDevice::GetLastNotificationData. Jakmile klient zařízení zavře, následně přijaté události způsobí, že se monitorování událostí znovu pokusí spustit zaregistrovanou aplikaci.
Významy těchto dvou režimů přenosu jsou zcela závislé na minidriveru uživatelského režimu zařízení. Rozhraní IStillImage a IStiDevice umožňují volat všechny metody v obou režimech.
Minidriver může určit režim, ve kterém byl otevřen, zavoláním metody IStiDevice::GetLastNotificationData. Minidrivery by měly zakázat klientovi provádět přenosy dat, pokud klient požadoval pouze režim stavu při získání přístupu k zařízení.
Je důležité si uvědomit, že zařízení se obvykle otevírají v režimu stavu po relativně dlouhou dobu (například monitor událostí sleduje události zařízení), zatímco jsou otevřená v datovém režimu po relativně krátkou dobu (například ke čtení na obrázku). I když architektura statického obrazu umožňuje otevření zařízení v datovém režimu jenom jednomu klientovi, může být nutné, aby ovladač umístil další omezení přístupu k zařízení.
Pokud například píšete ovladač pro zařízení připojené k sériovému portu, můžete z vnitřku metody ovladače IStiUSD::LockDevice volat CreateFile, pokud bylo zařízení otevřeno ve stavovém režimu. Tím zakážete, aby ostatní aplikace používaly port (který může podporovat jiná zařízení) při získávání informací o stavu ze zařízení.
U zařízení připojených k vyhrazeným portům, jako jsou zařízení SCSI nebo USB bus, je obvykle možné volat CreateFile z IStiUSD::Initialize , pokud je zadaný stavový režim, protože zařízení a port budou vždy vyhrazené pro jednoho klienta.
Když je zařízení otevřeno v režimu dat, CreateFile se obvykle volá z IStiUSD:Initialize, nezávisle na typu sběrnice.