Freigeben über


Durchsuchen von Binärdaten

Obwohl die ADSI-Suchfunktion nur die Suche nach Zeichenfolgendaten unterstützt, ist es möglich, nach Binärdaten zu suchen. Verwenden Sie dazu die ADsEncodeBinaryData--Funktion, um die Binärdaten in eine Zeichenfolge zu konvertieren, die mit den Suchmethoden verwendet werden kann. Die Suche nach Binärdaten ist besonders nützlich, wenn Sie nach einer GUID oder einer SID suchen, da diese Datentypen als Binärdaten gespeichert werden.

Bei Verwendung der ADsEncodeBinaryData--Funktion muss der zugeordnete Speicher mithilfe der FreeADsMem--Funktion freigegeben werden.

Das folgende C++-Codebeispiel zeigt, wie Sie eine Abfragezeichenfolge erstellen, um nach einem Objekt zu suchen, das einen bestimmten objectGUID- Wert aufweist.

LPWSTR pwszGuid = NULL;
LPWSTR pwszFormat = L"(objectGUID=%s)";
LPWSTR pwszSearch = NULL;
hr = ADsEncodeBinaryData((LPBYTE)pguid, sizeof(GUID), &pwszGuid);
if(FAILED(hr))
{
    goto cleanup;
}

pwszSearch = new WCHAR[lstrlenW(pwszFormat) + lstrlenW(pwszGuid) + 1];
if(NULL == pwszSearch)
{
    goto cleanup;
}
    
swprintf_s(pwszSearch, pwszFormat, pwszGuid);

// Use pwszSearch to perform a query for the object.

cleanup:    
if(pwszGuid)
{
    FreeADsMem(pwszGuid);
}
if(pwszSearch)
{
    delete pwszSearch;
}