Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejsy urządzeń są dostępne zarówno dla składników trybu jądra, jak i aplikacji trybu użytkownika. Kod trybu użytkownika może używać funkcji CfgMgr32 (na przykład CM_Get_Device_Interface_List) lub funkcji SetupDiXxx (zobacz Funkcje interfejsu urządzenia SetupDi), aby dowiedzieć się więcej o zarejestrowanych, włączonych interfejsach urządzeń. Aplikacja działająca w trybie użytkownika może następnie używać interfejsów API operacji wejścia/wyjścia, takich jak CreateFile, aby uzyskać uchwyt do urządzenia w celu wysyłania do niego operacji wejścia/wyjścia. Aby otrzymywać powiadomienia dotyczące włączania i wyłączania interfejsów urządzeń oraz sposobu reagowania na te akcje, zobacz Rejestrowanie w celu powiadomienia o nadejściu interfejsu urządzenia i usunięciu urządzenia.
Aby składnik trybu jądra mógł używać określonego urządzenia lub obiektu pliku, musi wykonać następujące czynności:
Ustal, czy wymagana klasa interfejsu urządzenia jest zarejestrowana i włączona.
Sterownik może zarejestrować się w menedżerze PnP, aby otrzymywać powiadomienia, gdy instancja interfejsu urządzenia zostaje włączona lub wyłączona. Aby się zarejestrować, składnik wywołuje IoRegisterPlugPlayNotification. Ta procedura przechowuje adres wywołania zwrotnego dostarczonego przez sterownik, które jest uruchamiane za każdym razem, gdy interfejs urządzenia jest włączony lub wyłączony dla określonej klasy urządzenia. Procedury wywołania zwrotnego otrzymują strukturę DEVICE_INTERFACE_CHANGE_NOTIFICATION , która zawiera ciąg Unicode reprezentujący link symboliczny wystąpienia interfejsu. Aby uzyskać więcej informacji, zobacz Używanie powiadomienia o zmianie interfejsu urządzenia PnP .
Sterownik lub inny składnik trybu jądra może również użyć IoGetDeviceInterfaces, aby uzyskać listę wszystkich zarejestrowanych i włączonych wystąpień interfejsów urządzeń w ramach określonej klasy interfejsu urządzenia. Zwrócona lista zawiera wskaźniki do symbolicznych łączy tekstowych Unicode, które identyfikują instancje interfejsu urządzenia.
Pobierz wskaźnik do urządzenia lub obiektu pliku, który odpowiada wystąpieniu interfejsu.
Aby uzyskać dostęp do określonego obiektu urządzenia, sterownik musi wywołać metodę IoGetDeviceObjectPointer, przekazując ciąg Unicode dla wymaganego interfejsu w parametrze ObjectName . Aby uzyskać dostęp do obiektu pliku, sterownik musi wywołać metodę InitializeObjectAttributes, przekazując ciąg Unicode w parametrze ObjectName , a następnie przekazać pomyślnie zainicjowaną strukturę atrybutów w wywołaniu metody ZwCreateFile.