0

私のマシンは Windows 8 マシンです。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}カスタム ドライバーから "UpperFilters" キーを読み取って、USB デバイス経由でフィルター ドライバーの存在を取得したいと考えています。

4

2 に答える 2

3

XP の時代からドライバーを書いたことはありませんが、カーネル モード ドライバーについて話していると仮定するとZwOpenKey、. 一般的なガイダンスはこちら.ZwQueryValueKeyZwClose

于 2013-07-29T11:57:19.517 に答える
-2

Cでレジストリを読み取るコードサンプルは次のとおりです

ここにサンプルがあります:

DWORD BufferSize = TOTALBYTES;
DWORD cbData;
DWORD dwRet;

PPERF_DATA_BLOCK PerfData = (PPERF_DATA_BLOCK) malloc( BufferSize );
cbData = BufferSize;

printf("\nRetrieving the data...");

dwRet = RegQueryValueEx( HKEY_PERFORMANCE_DATA,
                         TEXT("Global"),
                         NULL,
                         NULL,
                         (LPBYTE) PerfData,
                         &cbData );
while( dwRet == ERROR_MORE_DATA )
{
    // Get a buffer that is big enough.

    BufferSize += BYTEINCREMENT;
    PerfData = (PPERF_DATA_BLOCK) realloc( PerfData, BufferSize );
    cbData = BufferSize;

    printf(".");
    dwRet = RegQueryValueEx( HKEY_PERFORMANCE_DATA,
                     TEXT("Global"),
                     NULL,
                     NULL,
                     (LPBYTE) PerfData,
                     &cbData );
}
if( dwRet == ERROR_SUCCESS )
    printf("\n\nFinal buffer size is %d\n", BufferSize);
else printf("\nRegQueryValueEx failed (%d)\n", dwRet);

または簡単な例で

RegGetValue(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Class", "{36fc9e60-c465-11cf-8056-444553540000}", RRF_RT_ANY, NULL, (PVOID)&value, &BufferSize);
于 2013-07-29T11:32:51.130 に答える