_________________________________________.---------------------------------------
Windows98/ME:
Die Funktion ‚CreateFile' öffnet den Gerätetreiber für den
Handle für den Zugriff auf den Gerätetreiber zurück. Als Gerätetreibername muss
‚\\.\xlonpci0' verwendet werden.
2.)
*pHandle = CreateFile( "\\\\.\\xlonpci0", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
Mögliche vom Treiber zurückgegebene Fehlercodes:
Fehler:
Fehlercode:
Nachdem der Treiber geöffnet wurde, muss unter Windows98/ME Betriebssystemen der
Befehl 'LDV_Aquire' ausgeführt werden. Hierdurch wird dem Gerätetreiber angezeigt, dass
auf den Treiber zugegriffen wurde.
3.)
DeviceIoControl(*pHandle, MAKELONG(LDV_Acquire, 0), &inBuf, sizeof(char), &RetInfo, sizeof(RetInfo),
&nBytesReturned, NULL);
Mögliche vom Treiber zurückgegebene Fehlercodes:
Fehler:
Windows2000/XP:
Die Funktion ‚CreateFile' öffnet den Gerätetreiber für den
Handle für den Zugriff auf den Gerätetreiber zurück. Als Gerätetreibername muss
‚\\.\xlonpci0' verwendet werden.
2.)
*pHandle = CreateFile("\\\\.\\xlonpci0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ |
FILE_SHARE_WRITE, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, 0, (HANDLE) NULL);
Mögliche vom Treiber zurückgegebene Fehlercodes:
Fehler:
Fehlercode:
6.1.3.2
Registrieren eines Event-Handles
Zur Kommunikation zwischen Treiber und Applikation kann ein gemeinsamer Event-Handle
registriert werden. Dazu muß die Applikation einen Handle beim Betriebssystem anfordern.
Diesen Handle übergibt die Applikation anschließend dem Treiber. Der Treiber kreiert immer
dann einen Event, wenn der Treiber Daten für die Hostapplikation hat.
Windows98/ME:
Kreieren eines Synchronisations-Event-Handles:
1.)
CreateCommonEvent(&hEventR3, &hEventR0, FALSE, FALSE);
Übergeben des Event-Handles an den Treiber:
2.)
DeviceIoControl(pHandle, MAKELONG(LDV_Register_Event_Handle,0), hEventR0, sizeof(HANDLE),
&RetInfo, sizeof(RetInfo), &nBytesReturned, NULL));
Windows2000/XP:
Hier kommt ein anderer Event Mechanismus zum Einsatz. Der Zugriff erfolgt über
Overlapped IO, das registrieren eines Event-Handle ist somit nicht notwendig.
----------------------------------------,________________________________________
Zu wenig Speicher für die Allokierung der Treiberpuffer
ERROR_NOT_ENOUGH_MEMORY
keine
Zu wenig Speicher für Allokierung Treiberpuffer
ERROR_NOT_ENOUGH_MEMORY
- 41 -
2
3
1
/
7 Adapter und liefert ein
3
2
1
7 Adapter und liefert ein
3
2
1