Español
Foro

Dateiöffnen Problemas (Kernelmode)

 
Was mache Yo hier falso? (Windows2000/XP)
KompilierenMarcaSeparación
Def @RtlInitUnicodeString(2) !"NTDLL","RtlInitAnsiString"
Def @RtlInitUnicodeString(2) !"NTDLL","RtlInitUnicodeString"
Def @RtlAnsiStringToUnicodeString(3) !"NTDLL","RtlAnsiStringToUnicodeString"
DEF @LsaNtStatusToWinError(1) !"advapi32","LsaNtStatusToWinError"
DEF @FormatMessage(7) !"KERNEL32","FormatMessageA"
Def @RtlInitAnsiString(2) !"NTDLL","RtlInitAnsiString"
Def @ZwOpenFile(6) !"NTDLL","ZwOpenFile"
Def @ZwClose(1) !"NTDLL","ZwClose"
Declare LSA_Unicode#,ANSI$,Unicode#,Fehler&,Ansi#
Declare AHRückgabe&,AHGETERROR_Buffer#,AHGETERROR_Buffer$
Declare FileHandle&,Status_Block&,Object_Attributes#
Windowstyle 31
WindowTitle "Datei auslesen mit Kernelmode APIs"
Window 0,0-640,440
LET ANSI$="??"+"F:EigenesMister RootUnload.CLL" Pfad bitte anpassen
Dim Ansi#,8
DIM Unicode#,514
DIM LSA_Unicode#,8
WORD LSA_Unicode#,0=0
WORD LSA_Unicode#,2=512
LONG LSA_Unicode#,4=UNICODE#
@RtlInitAnsiString(Ansi#,@ADDR(ANSI$))
LET Fehler&=@RtlAnsiStringToUnicodeString(LSA_Unicode#,Ansi#,0)
LET AHRÜCKGABE&=@LsaNtStatusToWinError(Fehler&)
Fehlercode_bestimmen
PRINT AHGETERROR_Buffer$
Print @Char$(UNICODE#,0,@LEN(ANSI$)*2)
DIM Object_Attributes#,24
Clear Object_Attributes#
Long Object_Attributes#,0=24
Long Object_Attributes#,4=0
Long Object_Attributes#,8=LSA_Unicode#
Long Object_Attributes#,12=$40
LET FEHLER&=@ZwOpenFile(@ADDR(FileHandle&),$110003,Object_Attributes#,@ADDR(Status_Block&),$1,$800 | $20 | $2 | $8)
LET AHRÜCKGABE&=@LsaNtStatusToWinError(Fehler&)
Fehlercode_bestimmen
PRINT "ZwOpenFile: "+AHGETERROR_Buffer$
LET FEHLER&=@ZwClose(FileHandle&)
LET AHRÜCKGABE&=@LsaNtStatusToWinError(Fehler&)
Fehlercode_bestimmen
PRINT "ZwClose: "+AHGETERROR_Buffer$
Dispose Unicode#
Dispose LSA_Unicode#

While 0=0

    Waitinput

wend

End

Proc Fehlercode_bestimmen

    DIM AHGETERROR_Buffer#,32000
    @FormatMessage($1000,0,AHRückgabe&,0,AHGETERROR_Buffer#,32000,0) Wandelt Fehlercode in Landesspezifische Message um.
    Let AHGETERROR_Buffer$=@trim$(@STRING$(AHGETERROR_Buffer#,0))
    Dispose AHGETERROR_Buffer#

/../function-references/XProfan/ENDPROC/'>ENDPROC


Saludo

Andreas
 
27.10.2006  
 




Michael
Wodrich
ANSI$=??+F:EigenesMister RootUnload.CLLPfad Por favor, adaptar

2 oder 3 Fragezeichen?
CLL en lugar de DLL?
 
Programmieren, das spannendste Detektivspiel der Welt.
27.10.2006  
 



Ist sólo irgendein Dateiname.
Das todo tut nichts más como el OpenFile API, sólo tut sies auch en el Kernel. El Problemas entstehen en me beim Schließen des Hauptfensters.
 
28.10.2006  
 




Michael
Wodrich
Und como se uno erraten qué falso es, si simplemente algo eingesetzt se?

P.S.:
En me sagt él:
Der Vorgang wurde erfolgreich final.
Dann se una Unicodestring adecuado (el Dateiname).
Den debería uno antes Anzeige umwandeln.
 
Programmieren, das spannendste Detektivspiel der Welt.
28.10.2006  
 



Setze como simplemente veces irgeneinen (vorhandenen) dateinamen con Pfad una. El Fragezeichen necesario bleiben. Zürückgeliefert se en FileHandle& una Handle en el Expediente.
 
28.10.2006  
 




Michael
Wodrich
Alles liefert Null zurück. Ist el una Fehler oder se el Erfolg signalisieren???

ZwOpenFile aber sólo ZwClose (sin File)???
 
Programmieren, das spannendste Detektivspiel der Welt.
28.10.2006  
 




Michael
Wodrich
[box:3dc1a1301e]
-----------------------------------------------------
Samstag, el 28. Oktober 2006 - 00:52
-----------------------------------------------------
RtlAnsiStringToUnicodeString CODE:0
LsaNtStatusToWinError CODE:0
LsaNtStatusToWinError CODE:0
Der Vorgang wurde erfolgreich final.
??C:CodeWodMisterRoot.prf
ZwOpenFile CODE:0
ZwOpenFile HANDLE: $88
ZwOpenFile STATUS: $0
LsaNtStatusToWinError CODE:0
LsaNtStatusToWinError CODE:0
ZwOpenFile: Der Vorgang wurde erfolgreich final.
ZwClose CODE:0
LsaNtStatusToWinError CODE:0
LsaNtStatusToWinError CODE:0
ZwClose: Der Vorgang wurde erfolgreich final.
[/box:3dc1a1301e]
 
Programmieren, das spannendste Detektivspiel der Welt.
28.10.2006  
 




Michael
Wodrich
Der una Fehlercode es siempre doppelt, porque Yo Umlauten en el Variablennamen no traue - habe also una vez Kleinschrift y una vez Großschrift beim Variablennamen benutzt.

Tatsache es: Der Code se ejecuta por (con obigen Meldungen) y luego semmelt el Programa de.

El beiden zusätzlichen Disponer Yo ya con aufgenommen, daran liegt no.

Yo saber desafortunadamente weder el genauen Aufrufparameter todavía el en el Struktur erwarteten Werte, no puede also no weiterhelfen.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
28.10.2006  
 



En me schwirrt el Code con Zugriffsverletzung ebenfalls beim Schließen des Hauptfensters de - se ejecuta aber sonst alles sin Problemas por. Windows Bug oder Denkfehler?
Das Problema scheint en ZwOpenFile a mentira. ZwClose scheint como auch al richtigen Platz a ser - merkwürdig...

PS: 0=Erfolgsmeldung (NT_STATUS Codes).

Bin gerade en el Vorbereitungen para media Treiber. Hab mich entschieden, doch en Registry a ir, el es sowieso mejor. Yo schreib sólo veces Kernelcode en Profan; el voluntad Yo entonces nacher en MASM umsetzen.

Wundere dich no en APIs - el son Nativo APIs - en el Kernel gibts nichts más.

@IF: Was para una Treiber willst du escribir? Tal vez puede ser se austauschen...
 
28.10.2006  
 



[quote:1695c7078e]@IF: Was para una Treiber willst du escribir? Tal vez puede ser se austauschen...[/quote:1695c7078e]
Yo brauche algo muy einfaches - qué aber tal vez genau deshalb garnicht así simplemente a bewerkstelligen es.

Einen Druckertreiber - el no Druckt - pero el Expediente des a druckenden Dokumentes a una Punto en el Netzwerk kopiert.
 
28.10.2006  
 



Dakannst du einiges de el qué hier es tal vez ya gebrauchen.
 
28.10.2006  
 




Michael
Wodrich
[quote:25b82596d4]Einen Druckertreiber - el no Druckt - pero el Expediente des a druckenden Dokumentes a una Punto en el Netzwerk kopiert.[/quote:25b82596d4]
Lo läßt se aber doch cada Druckertreiber así einstellen, el él en un Expediente druckt.
En me se ejecuta el seit Jahr y Tag así (habe nämlich no Drucker).

Eingestellt es una Laserdrucker (Postscript). El Expediente se entonces anschließend con un Tool (WordToPdf) en un PDF-Expediente gewandelt.

Aus OpenOffice va el natürlich einfacher, aber todos otro Anwendungen erzeugen en esta Art auch una PDF.

Wenn Yo entonces wirklich veces a la Imprimir su brauche gehts con el PDF de a Freunden...

Schöne Grüße
Michael Wodrich

Hab veces rápidamente nachgesehen: Canon C LBP 460PS
 
Programmieren, das spannendste Detektivspiel der Welt.
28.10.2006  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

9.081 Views

Untitledvor 0 min.
Setharial14.02.2013
Michael Borowiak17.12.2012

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie