Try changing the first parameter to an empty string instead of NULL.
If you've got a disjoint namesspace and only want to search from the root, your first call should be to the RootDSE to get the rootDomainNamingContext. This is necessary since a global catalog can be any server in the forest so if you don't define, your default connection may be to a GC in a child domain and your default search may start in the child domain's context.
SearchRequest("", "objectClass=*", SearchScope.Base, attributes)
The your subsequent subtree searches can start at the defined rootDomainNamingContext.