// Prepare attribute template that defines search criteria
List<ObjectAttribute> objectAttributes = new List<ObjectAttribute>();
objectAttributes.Add(new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_PRIVATE_KEY));
objectAttributes.Add(new ObjectAttribute(CKA.CKA_KEY_TYPE, CKK.CKK_RSA));
objectAttributes.Add(new ObjectAttribute(CKA.CKA_LABEL, "MyKey"));
// Find all objects that match provided attributes
List<ObjectHandle> foundObjects = session.FindAllObjects(objectAttributes);
CKA_LABEL attribute usually stores human readable object name but please note that PKCS#11 does not enforce any uniqueness of attribute values. In other words there may always be more then one object present in your HSM with the same value of CKA_LABEL and you need to handle this situation in your code.
For more detailed information please take a look at our code sample covering object searching [0] and to better understand basic concepts of PKCS#11 API I recommend you to read also "Chapter 2 - Scope", "Chapter 6 - General overview" and "Chapter 10 - Objects" of PKCS#11 standard [1].