BOOL CNdasAutoRegister::ProcessRegister( CONST NDAS_DEVICE_ID& deviceId, ACCESS_MASK autoRegAccess) { CNdasDeviceRegistrar* pRegistrar = pGetNdasDeviceRegistrar(); CRefObjPtr<CNdasDevice> pExistingDevice = pRegistrar->Find(deviceId); if (NULL != pExistingDevice.p) { return TRUE; } CRefObjPtr<CNdasDevice> pDevice = pRegistrar->Register(deviceId, TRUE, TRUE); if (NULL == pDevice.p) { return FALSE; } pDevice->SetGrantedAccess(autoRegAccess); BOOL fSuccess = pDevice->Enable(TRUE); if (!fSuccess) { DBGPRT_ERR(_FT("Enable failed: ")); } TCHAR szName[MAX_NDAS_DEVICE_NAME_LEN + 1]; HRESULT hr = ::StringCchPrintf(szName, MAX_NDAS_DEVICE_NAME_LEN + 1, _T("NDAS Device A%04d"), pDevice->GetSlotNo()); _ASSERTE(SUCCEEDED(hr)); pDevice->SetName(szName); return TRUE; }