NFP-Geräteschnittstelle
Eine Client-Anwendung kommuniziert mit dem Gerät über einen festgelegten Code zur E/A-Steuerung, der an ein offenes Handle gesendet wird.
Handles für Veröffentlichungen und Abonnements
Jede Veröffentlichung und jedes Abonnement wird als ein offenes Handle für den Treiber dargestellt. Daher würden M Veröffentlichungen und N Abonnements M+N offenen Handles für den Treiber entsprechen. Der Windows I/O Manager erzwingt eine angemessene Begrenzung der Anzahl der Handles für Prozesse.
Generische NULL-Dateinamen-Handles
Ein generisches Dateihandle wird geöffnet, um Anfragen an den Treiber zu senden, die keine Veröffentlichungen und keine Abonnements betreffen. Diese Art von Handle muss akzeptiert werden. Der Client verwendet dieses Handle, um die maximale Größe der Nachricht und die Übertragungsrate des Treibers zu bestimmen.
IOCTL-Unterstützung
Die IOCTLs, die die Schnittstelle des Treibers für Proximity-Geräte unterstützen, sind in Nfpdev.h definiert. Die Steuercodes sind mit den folgenden Attributen definiert.
- METHOD_BUFFERED
- FILE_ANY_ACCESS
- FILE_DEVICE_NFP
Jede Veröffentlichung und jedes Abonnement wird als ein eigenes offenes Handle für den Treiber manifestiert. Daher würden M Veröffentlichungen und N Abonnements M+N offenen Handles für den Treiber entsprechen. Der Windows I/O Manager erzwingt eine angemessene Begrenzung der Anzahl der Handles für Prozesse.
Die IOCTL-Codes sind im Header Nfpdev.h definiert.
Der Sicherheitsdeskriptor des Geräts wird als Standard des Betriebssystems oder der Geräteklasse belassen.
Reservierte und Anbieter-IOCTL-Codes
Die folgende Tabelle beschreibt die reservierten und anbieterspezifischen Steuercodebereiche.
type | Bereichsanfang | Bereichsende |
---|---|---|
Reserviert | CTL_CODE(FILE_DEVICE_NFP, 0x0000, *, *) |
CTL_CODE(FILE_DEVICE_NFP, 0x00FF, *, *) |
Herstellerspezifisch | CTL_CODE(FILE_DEVICE_NFP, 0x0100, *, *) |
CTL_CODE(FILE_DEVICE_NFP, 0x01FF, *, *) |