Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby zminimalizować zmiany sterowników opracowanych przed systemem Windows Vista, sterowniki nie muszą implementować żadnych nowych interfejsów do obsługi transferu danych IStream . Zamiast tego nowy interfejs został udostępniony za pośrednictwem interfejsu IWiaMiniDrvCallBack. Sterowniki mogą wywołać IWiaMiniDrvCallBack::QueryInterface dla nowej funkcji zwrotnej IWiaTransfer, co zapewni im dostęp do strumieni danych oraz powiadomień dotyczących stanu. Interfejs IWiaTransfer został opisany w dokumentacji zestawu Microsoft Windows SDK.
Kod transferu danych wewnątrz sterownika jest teraz prostszy, ponieważ wszystkie transfery są obsługiwane w taki sam sposób, bez logiki gałęzi transferu plików ani pamięci.
Sterowniki, które nie obsługują modelu transferu IStream , zazwyczaj wykonują następujące czynności:
Sprawdź flagi, aby określić, czy żądanie dotyczy przekazania, czy pobrania.
Uzyskaj interfejs IWiaMiniDrvCallBack .
Odbierz strumień docelowy z funkcji wywołania zwrotnego.
Wykonaj pętlę transferu danych:
- Odbieranie danych z urządzenia.
- Zapisz dane do strumienia.
Jednak w przypadku sterowników implementujących nowy model transferu IStream usługa WIA nie będzie wywoływać IWiaMiniDrv::drvWriteItemProperties, ponieważ aktywacja folderów jest obsługiwana.
W przypadku pozyskiwania folderu pojedyncze żądanie przeniesienia znajduje się w elemencie nadrzędnym, ale rzeczywiste właściwości elementu znajdują się na każdym z elementów podrzędnych, które są przenoszone. Metoda IWiaMiniDrv::d rvWriteItemProperties nie jest wywoływana dla każdego elementu podrzędnego, więc tej metody nie można użyć do programowania ustawień urządzenia. W przypadku sterowników obsługujących transfery danych IStream usługa WIA zamiast tego wywołuje IWiaMiniDrv::drvAcquireItemData.
Nuta Ta zmiana dotyczy tylko sterowników obsługujących nowe transfery danych. Nie ma to wpływu na starsze sterowniki, które nie obsługują transferów danych IStream; usługa WIA będzie nadal wywoływać metodę IWiaMiniDrv::drvWriteItemProperties.
W przypadku pozyskiwania folderów, w których sterownik wykonuje wiele wywołań do IWiaTransferCallback::GetNextStream (opisanych w dokumentacji zestawu SDK systemu Microsoft Windows), sterownik może mieć tylko jeden aktywny strumień naraz.
Sterownik podczas operacji pobierania musi wywoływać tylko metody IStream::Write, IStream::Seek i IStream::SetSize (opisane w dokumentacji Windows SDK). To ograniczenie ułatwia pisanie filtru. Sterownik nie powinien oczekiwać, że strumień docelowy będzie implementować inne metody.
Gdy właściwość WIA_DPS_PAGE_SIZE jest ustawiona na WIA_PAGE_AUTO (czyli automatyczne wykrywanie rozmiaru strony jest włączone), sterownik powinien podać dokładne informacje o wymiarze obrazu dopiero po zakończeniu transferu danych obrazu. W przypadku transferów opartych na strumieniu sterownik powinien zaktualizować wymiary obrazu w nagłówku obrazu na końcu transferu. Na początku nowej sesji wartość właściwości WIA_DPS_PAGE_SIZE powinna być zawsze ustawiona na wartość inną niż WIA_PAGE_AUTO.