問題タブ [kernel-extension]

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.

0 投票する
2 に答える
3030 参照

macos - kext で OS X のバージョン番号を取得するにはどうすればよいですか?

実行している OS X のバージョンを知る必要がある kext があります。CocoaDev には、 Gestalt() を使用して OS X のバージョン情報を取得する方法を説明する記事がありますが、コードには Cocoa が必要です。

kext から Gestalt() を呼び出すことはできますか?
もしそうなら、それを定義するためにどの #include を使用しますか?
そうでない場合、他の解決策はありますか?


バックグラウンド:

10.4 から 10.7 までのすべてのバージョンの OS X で同じ kext を使用したいと考えています。

BUT: kexts callcdevsw_addは、Lion で後方互換性のない方法で変更されました。それを呼び出すいくつかのカーネル プログラムへの (明らかに) 変更に加えて、変更は、ルーチンの前のコメントによるcdevsw_addと、OS X 10.0 から 10.6 までとは異なる最初の引数で 10.7 で呼び出す必要があることを意味します。(Lion では -12、以前のバージョンでは -1。)

kext が実行している OS X のバージョンを判別できる場合、それは簡単です。(そうでない場合、それを行うのは面倒です。おそらく、kext の 2 つの異なるバージョンをビルドし、kext をロードするコードにどちらをロードするかを選択させるような恐ろしい手間がかかります。)

0 投票する
2 に答える
551 参照

c - Mac OS X のカーネル拡張プロジェクトで zlib を使用するには?

Mac OS でネットワーク カーネル エクステンションを開発したいと考えています。関数 sf_data_in() で gzip 形式のデータを取得しました。という名前のヘッダー ファイルをインクルードしました<libkern/zlib.h>。「kextload」で kext をロードした後、以下のコードを実行すると、Mac がクラッシュしました。

カーネルプログラミングでの使用方法を教えてくれる人. いくつかのサンプルを提供する方がはるかに優れています。どうもありがとう。

0 投票する
1 に答える
2452 参照

macos - コードレスkextの読み込みの問題

USBデバイスの1つがAppleUSBUHCIドライバーに誘拐されないように、コードレスkextを作成しました。プラグを差し込むと、別のドライバーがロードされているはずです。これは、FTDIデバイスとCSRデバイスの両方で発生します。

kextをまとめると、info.plistは次の例によく似ています:http ://www.projectosx.com/forum/index.php?showtopic = 798 VID/PIDが異なるだけです。-entZを指定してkextutilを実行しましたが、唯一の警告は、パーソナリティに異なるCFBundleIdがあることでした。MacのUSB(HID)割り込みエンドポイントの読み取りと書き込みの手順に従って、ロードしました。

kextをロードすると、正常にロードされたと表示されますが、kextstatで表示できず、デバイスを接続してもハイジャックされます。kextunloadを実行しようとすると、kextがロードされていないと表示されます。

どんな助けでもいただければ幸いです。

0 投票する
1 に答える
1414 参照

macos - プラグを抜くと、IORegistryExplorer に USB デバイスが 2 回表示される - ライブと終了として

OS Xが先制的にキャプチャしないようにするためのコードレスkextを開発したUSBデバイスがあります。kext は、デバイスを IOBluetoothFamily.kext 内の別の kext と一致させるだけです。

次の操作を実行すると、奇妙な動作に気づきました。

  • IO レジストリをクリアするためだけに再起動します。
  • IORegistryExplorer を起動します。
  • デバイスを接続し、取得: 登録済み、一致、保持 10 でアクティブ、使用中 0。
  • デバイスのプラグを抜くと、エントリが赤くなります (終了したオブジェクト)。
  • レジストリを更新します。終了したオブジェクトが残ります (予想どおり)。また、終了していないオブジェクトは、登録されていない、一致していない、アクティブでない、保持 4、ビジー 2 を除いて、終了したオブジェクトと同じ内容で表示されます。
  • 終了したオブジェクトをクリア - 赤いエントリのみが消えます。もう一方のエントリは残ります。

デバイスにアクセスする他のアプリケーションを実行していません。

マッチングしている kext にバグがある可能性はありますか?

0 投票する
2 に答える
1026 参照

macos - MacOSX: ネットワーク イベントをキャプチャする方法は? または: Private-Eye はどのように機能しますか?

私はプライベートアイに出くわし、それがどのように機能するのか疑問に思いました.

つまり、それらの情報を取得するためにどの API を使用しているか (すべての着信/発信ネットワーク接続とそれを使用するアプリケーション)?

kextをインストールしています。それは必要ですか?

0 投票する
1 に答える
949 参照

cocoa - XcodeCocoaアプリケーションを使用したデバイスドライバーの作成

これについて何か考えを持っている人がいたら、いくつかのヒントを教えてください..あなたのリプレイをありがとう

0 投票する
1 に答える
3434 参照

xcode4 - Xcodeで作成されたデバイスドライバーはロードされません

このリンクに基づいてデバイスドライバーアプリケーションを実装しましたhttp://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptIOKit/iokit_tutorial.html

ターミナル($ sudo cp -R MyDriver.kext / tmp)にデバイスを読み込もうとすると、次のエラーが発生します。

私の疑問は次のとおりです:1)カーネルファイルが指定されていないエラー(アプリケーションで何を見逃したか)とは何ですか?2)MyDriver.kextとは何ですか。依存関係を解決できませんか?3)私のバンドル識別子は次のとおりです:
CFBundleIdentifiercom.MyCompany.driver。${PRODUCT_NAME:maanu}

返信ありがとうございます。

0 投票する
1 に答える
1010 参照

cocoa - USBHIDManager HID、getReport()およびsetReport()Mac環境の場合

USBHIDDeviceと通信しようとしています。このデバイスはWindowsで正常に動作しており、とを使用してレポートを送信したり、レポートを取り戻したりできWriteFile()ますReadFile()

setReoprt()Macでは、とを使用してデバイスとのインターフェイスを試みていますgetReport()。ただしgetReport()、データは返されませんが、エラーが返されます。

アプリケーションの何が問題になっていますか?

0 投票する
1 に答える
617 参照

objective-c - カーネルファイルが指定されていませんKEXTMAC環境でエラーが発生しました

USBHIDデバイスにKEXTを実装してみます。ターミナルをチェックしている場合KEXTをロードできます。つまり
、Newtok:Desktop Rasheed $ kextutil-ntSampleKextDriver.kextカーネルファイルが指定されていません。リンクに実行中のカーネルを使用します。SampleKextDriver.kextはロード可能であるように見えます(ディスク上のライブラリのリンケージを含む)。
しかし残念ながら、私は上記のメッセージを受け取りました。私のplistファイルは

どこが間違っていたのかわかりません。MacOSXの開発経験はあまりありません。誰でも最高のドキュメントやアイデアを提案できますか

あなたの情報をありがとう...

0 投票する
5 に答える
3639 参照

macos - MacOSXでプロセス作成通知を取得する

プロセスが開始されると通知を受け取るMacOSX用のkextを作成しようとしています。

Windowsでは、PsSetLoadImageNotifyRoutine(...)を呼び出してこれを行い、プロセスの開始時に呼び出されるコールバックを指定できます。これは文書化された方法であり、Win2k以降のすべてのWindowsで機能します。

Macに似たものはありますか?これはkauthプロセスリスナーを使用して実現できるようですが、プロセススコープはOSXに実装されていません。

もう1つの方法は、SYS_execveとその仲間をフックすることですが、これは文書化されておらず、サポートされていない方法です。私は本当にこのように行きたくありません。

キャンセルする必要はありません。プロセスが開始されたときに通知を受け取り、pidとパスを取得したいだけです。