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.
Sterownik monolityczny musi utworzyć obiekt urządzenia dla każdego fizycznego, logicznego lub wirtualnego urządzenia, dla którego obsługuje żądania we/wy. Sterownik, który nie tworzy obiektu urządzenia, nie odbiera żadnych pakietów IRP dla tego urządzenia.
W niektórych obszarach technologicznych minidriver skojarzony ze sterownikiem klasy lub sterownikiem portu nie musi tworzyć własnych obiektów urządzenia. Zamiast tego sterownik klasy lub portu tworzy obiekt urządzenia i odbiera wszystkie IRP dla urządzenia. Następnie klasa lub sterownik portu używa metody specyficznej dla sterownika, aby przekazać żądanie we/wy do minidriver. Zapoznaj się z dokumentacją konkretnego obszaru technologii, aby określić, czy firma Microsoft dostarcza klasę lub sterownik portu, który tworzy obiekty urządzeń w imieniu sterownika.
Sterowniki wywołują IoCreateDevice lub IoCreateDeviceSecure, aby utworzyć obiekty urządzeń. Aby uzyskać więcej informacji na temat procedury do użycia, zobacz następujące sekcje.
Tworzenie obiektów urządzeń dla funkcji i sterowników filtrów WDM
Tworzenie obiektów urządzeń dla sterowników magistrali WDM
Tworzenie obiektów urządzeń dla sterowników innych niż WDM
Gdy sterownik tworzy obiekt urządzenia, dostarcza następujące informacje do IoCreateDevice lub IoCreateDeviceSecure:
Rozmiar rozszerzenia urządzenia. Rozszerzenie urządzenia to przydzielony przez system obszar magazynu, którego sterownik może używać do przechowywania określonego urządzenia. Aby uzyskać więcej informacji, zobacz Device Extensions (Rozszerzenia urządzeń).
Stała zdefiniowana przez system wskazująca typ urządzenia reprezentowany przez obiekt urządzenia. Aby uzyskać więcej informacji, zobacz Określanie typów urządzeń.
Co najmniej jedna stała zdefiniowana przez system, która wskazuje charakterystykę urządzenia dla urządzenia. Aby uzyskać więcej informacji, zobacz Określanie cech urządzenia.
Wartość logiczna, o nazwie Exclusive, określająca, czy bit w flagach obiektu urządzenia powinien być ustawiony z DO_EXCLUSIVE, wskazując usługi sterowników na wyłączność urządzenia, takie jak wideo, szeregowe, równoległe lub urządzenie dźwiękowe. Sterowniki WDM muszą ustawić wartość Wyłączność na FAŁSZ. Aby uzyskać więcej informacji, zobacz Określanie wyłącznego dostępu do obiektów urządzeń.
Wskaźnik do obiektu sterownika dla sterownika. Funkcja lub sterownik filtru WDM odbiera wskaźnik do jego obiektu sterownika jako parametr do procedury AddDevice . Wszyscy kierowcy otrzymują wskaźnik do obiektu sterownika w swojej procedurze DriverEntry . System używa tego wskaźnika do skojarzenia sterownika z jego obiektem urządzenia.
Opcjonalny wskaźnik do ciągu Unicode zakończonego wartością null (DeviceName) nazewnictwa urządzenia. Sterowniki WDM, inne niż sterowniki magistrali, nie podają nazwy urządzenia; co powoduje pominięcie funkcji zabezpieczających zarządzania PnP. Aby uzyskać więcej informacji, zobacz Nazwane obiekty urządzeń.
Jeśli wywołanie metody IoCreateDevice lub IoCreateDeviceSecure powiedzie się, menedżer we/wy zapewnia magazyn dla samego obiektu urządzenia i dla wszystkich innych struktur danych skojarzonych z obiektem urządzenia, w tym rozszerzenia urządzenia, które inicjuje zerami.
Tworzenie obiektów urządzeń dla funkcji i sterowników filtrów WDM
Sterowniki WDM, inne niż sterowniki magistrali, wywołują IoCreateDevice, aby utworzyć obiekty urządzeń. Większość sterowników WDM tworzy obiekty urządzeń z poziomu procedur AddDevice . Niektóre sterowniki, takie jak sterowniki dysków, które muszą reagować na układy sterowania dyskiem IOCTLs, wywołują IoCreateDevice z rutyny dyspozytorskiej.
O ile sekcje dokumentacji zestawu sterowników systemu Windows (WDK) specyficzne dla typu urządzenia nie stanowią inaczej, sterownik powinien utworzyć swoje obiekty urządzeń w procedurze AddDevice. Aby uzyskać więcej informacji, zobacz Pisanie procedury AddDevice.
Tworzenie obiektów urządzeń dla sterowników magistrali WDM
Sterownik magistrali WDM tworzy PDO podczas wyliczania nowego urządzenia w odpowiedzi na komunikat IRP_MN_QUERY_DEVICE_RELATIONS, jeśli typ relacji to BusRelations.
Następujące reguły określają, czy sterownik magistrali wywołuje metodę IoCreateDevice lub IoCreateDeviceSecure aby utworzyć obiekt urządzenia.
Jeśli urządzenie może być używane w trybie nieprzetworzonym, należy wywołać metodę IoCreateDeviceSecure.
Jeśli urządzenie nie obsługuje trybu surowego, sterownik magistrali może użyć funkcji IoCreateDevice lub IoCreateDeviceSecure. Funkcja IoCreateDevice może być używana, gdy domyślne zabezpieczenia systemu dla urządzeń w magistrali są odpowiednie; Za pomocą funkcji IoCreateDeviceSecure można określić bardziej rygorystyczny deskryptor zabezpieczeń. Aby uzyskać więcej informacji, zobacz Kontrolowanie dostępu do urządzeń.
Tworzenie obiektów urządzeń dla sterowników innych niż WDM
Sterownik inny niż WDM używa funkcji IoCreateDevice do tworzenia nienazwanych obiektów urządzeń i IoCreateDeviceSecure w celu utworzenia nazwanych obiektów urządzeń. Zwróć uwagę, że nienazwane obiekty urządzenia sterownika innego niż WDM nie są dostępne w trybie użytkownika, dlatego sterownik zwykle musi utworzyć co najmniej jeden nazwany obiekt.