問題タブ [nt-native-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-c++ - カーネル モードでのファイルの読み取り
ドライバーを作成していて、いくつかのファイルを読みたいと思っています。「ZwReadFile()」または同様の関数を使用して、ファイルの内容を 1 行ずつ読み取り、ループで処理できるようにする方法はありますか。
MSDN のドキュメントには、次のように記載されています。- ZwReadFile は、指定された ByteOffset または現在のファイル位置から、指定された Buffer への読み取りを開始します。次のいずれかの条件で読み取り操作を終了します。
- Length パラメーターで指定されたバイト数が読み取られたため、バッファーがいっぱいです。したがって、オーバーフローしない限り、これ以上データをバッファに入れることはできません。
- 読み取り操作中にファイルの終わりに達したため、ファイルにはバッファに転送するデータがありません。
ありがとう。
winapi - ネイティブ NT テキストモードでグラフィックスを取得するにはどうすればよいですか?
EASEUS Partition Masterプログラムは、Windows GUI が起動する前にグラフィック を表示できるようです (つまり、ブート時に CheckDisk が実行されるのと同時に実行されます)。
私がすでに知っていること:
これには、十分に文書化されていない関数が必要になる場合があります。それは私には問題ありません。
ネイティブの NT 実行可能ファイルをコンパイルする方法は既に知っているので、回答から省略してもかまいません。
質問:
すべてが起動する前に、どうすればグラフィックを表示できますか? (つまり、どの関数/ライブラリを使用していますか?)
書式設定され整列されたテキストを画面にどのように表示しますか?
がテキストを書くことができることは知ってNtDisplayString
いますが、以下に示すように、フォーマットされた方法で描画することはできません。以下の動作を再現するために、どの関数を使用しますか?
c++ - ユーザーモードdllの高レベル関数をNTDLL.dllにマッピングする
『Windows NT / 2000 Native API Reference』は、(Microsoftによる)文書化されていないネイティブAPIの包括的な文書(古くなっていますが)を提供しています。しかし、私は興味があります。ntdll.dllで宣言されている低レベル関数とkernel32.dll、advapi.dllなどのユーザーモード関数の間のマッピングを見つける方法はありますか。
例えば:
CreateFile
関数がにマップされることを知っていますNtCreateFile
。MoveFileWithProgressW
しかし、kernel32.dllの関数のntdll.dllの正確な関数はありません
windows - Win32名前空間の内容を一覧表示するにはどうすればよいですか?
(UNCパスプレフィックス:)と(Win32 Device Namespaces
UNCパスプレフィックス:)の内容を一覧表示する方法はありますか?\\.\
Win32 File Namespaces
\\?\
目標は、UNC(汎用名前付け規則)を使用してそれらをナビゲートできるコマンドライン(1)ツールとして適したアプリケーションを用意することです。このためにすでに書かれたツールはありますか?私はWinObjを知っていますが、それはオープンソースやGUIツールではありません。
同様に、NT namespace
?の下で使用可能な名前空間を一覧表示する方法
これらを処理するWindowsAPI呼び出しはありますか? Update 2 WinApiはこれには適していません。ハンス・パッサントとロジャー・リップスコムのコメントで指摘されているように
、 NTネイティブAPIは適していません。
アップデート1それらがwinapiによって公開されていない場合、 WinObjはそれらをどのようにリストしますか?
参照: http: //msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#paths
(1):Win32コンソール
winapi - WindowsネイティブAPI呼び出し引数を解釈する
実行トレースに基づいて実行可能ファイルを分析しています。NtTraceツールを使用して実行トレースを取得しました。出力は、引数を使用した一連のネイティブAPI呼び出しです。次のAPI呼び出しを除いて、ほとんどのAPI呼び出しを解釈することができました。
で、を実際のレジストリキーNtQueryKey
にマップするにはどうすればよいですか。KeyHandle=0x46a
さらに、それにNtDeviceIoControlFile
基づいてIoControlCode=0x00012017
、それがTCP_RECV、TCP_SENDなどであるかどうかを見つけることができます...
ありがとうございました。
windows - NT Native API から WOW64 の 32 ビット レジストリ ビューにデータを配置するにはどうすればよいですか?
NtCreateKey
/ZwCreateKey
関数の使用に制限されているアプリケーションがあります。(例: ドライバー) WOW64 で動作する、私が制御していない別のアプリケーションがあり、このレジストリ キーから値を読み取ります。
このアプリケーションが見つけられるように、レジストリ値を設定したいと考えています。ただし、WOW64 は -- に実装されているため、 を使用する場合のようにフラグをkernel32
渡すことはできません。KEY_WOW64_32KEY
RegOpenKeyEx
Wow6432Node
に渡されるパスに含めるのが最も簡単な方法のようですZwCreateKey
が、MSDN はこれを推奨していません。
WOW64 は、
Wow6432Node
. 新しいアプリケーションでは、レジストリ キー パスで Wow6432Node を使用しないようにする必要があります。
これは、岩と難しい場所の間に私を置いているようです...どうすれば32ビットのレジストリビューにデータを配置できますか? MSDN 言語は「回避」と言っていますが、これWow6432Node
は避けられない状況ですか?