Compartir a través de


Buscar datos binarios

Aunque la característica de búsqueda ADSI solo admite la búsqueda de datos de cadena, es posible buscar datos binarios. Para ello, use la función ADsEncodeBinaryData para convertir los datos binarios en una cadena que se puede usar con los métodos de búsqueda. La búsqueda de datos binarios es especialmente útil al buscar un GUID o un SID porque estos tipos de datos se almacenan como datos binarios.

Cuando se usa la función ADsEncodeBinaryData , la memoria asignada debe liberarse mediante la función FreeADsMem .

En el ejemplo de código de C++ siguiente se muestra cómo crear una cadena de consulta para buscar un objeto que tenga un valor objectGUID determinado.

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;
}