rem: roster.VisitAll(&visitor);
add: roster.VisitEachPartition(&visitor);
context: main(){/*	TestApp app("application/x-vnd.obos-disk-device-test");	BDiskDeviceRoster roster;	DumpVisitor visitor;	roster.Traverse(&visitor);	status_t error = B_OK;	error = roster.StartWatching(BMessenger(&app));	if (error != B_OK)		printf("start watching failed: %s\n", strerror(error));	if (error == B_OK)		app.Run();	error = roster.StopWatching(BMessenger(&app));	if (error != B_OK)		printf("stop watching failed: %s\n", strerror(error));*//*	TestApp2 app("application/x-vnd.obos-disk-device-test");	app.Run();	return 0;*/	// for userland testing only	KDiskDeviceManager::CreateDefault();	KDiskDeviceManager::Default()->InitialDeviceScan();	// wait till all (scan) jobs are done	wait_for_jobs();	// add a file device	BDiskDeviceRoster roster;	partition_id id = roster.RegisterFileDevice(kTestFileDevice);	if (id < B_OK)		printf("registering the file device failed: %s\n", strerror(id));	else {		// wait till all (scan) jobs are done		wait_for_jobs();	}	// list all disk devices and partitions	DumpVisitor visitor;	roster.VisitAll(&visitor);	// list disk systems	BDiskSystem diskSystem;	while (roster.GetNextDiskSystem(&diskSystem) == B_OK) {		printf("disk system:\n");		printf("  name:        `%s'\n", diskSystem.Name());		printf("  pretty name: `%s'\n", diskSystem.PrettyName());		printf("  file system: %d (!%d)\n", diskSystem.IsFileSystem(),			   diskSystem.IsPartitioningSystem());		// flags		printf("  flags:\n");		bool mounted = false;		bool supports = diskSystem.SupportsDefragmenting(&mounted);		printf("    defragmenting:          %d (%d)\n", supports, mounted);		supports = diskSystem.SupportsRepairing(true, &mounted);		printf("    checking:               %d (%d)\n", supports, mounted);		supports = diskSystem.SupportsRepairing(false, &mounted);		printf("    repairing:              %d (%d)\n", supports, mounted);		supports = diskSystem.SupportsResizing(&mounted);		printf("    resizing:               %d (%d)\n", supports, mounted);		supports = diskSystem.SupportsResizingChild();		printf("    resizing child:         %d\n", supports);		supports = diskSystem.SupportsMoving(&mounted);		printf("    moving:                 %d (%d)\n", supports, mounted);		supports = diskSystem.SupportsMovingChild();		printf("    moving child:           %d\n", supports);		supports = diskSystem.SupportsSettingName();		printf("    setting name:           %d\n", supports);		supports = diskSystem.SupportsSettingContentName(&mounted);		printf("    setting content name:   %d (%d)\n", supports, mounted);		supports = diskSystem.SupportsSettingType();		printf("    setting type:           %d\n", supports);		supports = diskSystem.SupportsSettingParameters();		printf("    setting params:         %d\n", supports);		supports = diskSystem.SupportsSettingContentParameters(&mounted);		printf("    setting content params: %d (%d)\n", supports, mounted);		supports = diskSystem.SupportsCreatingChild();		printf("    creating child:         %d\n", supports);		supports = diskSystem.SupportsDeletingChild();		printf("    deleting child:         %d\n", supports);		supports = diskSystem.SupportsInitializing();		printf("    initializing:           %d\n", supports);	}	// get the file device	BDiskDevice device;	status_t error = roster.GetDeviceWithID(id, &device);	if (error != B_OK)		printf("Couldn't get device: %s\n", strerror(error));	// prepare for modifications	error = device.PrepareModifications();	if (error != B_OK)		printf("Preparing modifications failed: %s\n", strerror(error));	// test resize a partition	if (error == B_OK) {		if (BPartition *partition = device.ChildAt(1)) {			// uninitialize contents			status_t status = partition->Uninitialize();			if (status != B_OK) {				printf("Uninitializing the partition failed: %s\n",					   strerror(status));			}			// resize			status = partition->Resize(1024 * 200);			if (status != B_OK) {				printf("Resizing the partition failed: %s\n",					   strerror(status));			}		}		printf("\nDevice after changing it:\n");		device.VisitEachDescendant(&visitor);	}	// cancel modifications/*	if (error == B_OK) {		error = device.CancelModifications();		if (error != B_OK)			printf("Cancelling modifications failed: %s\n", strerror(error));	}*/	// commit modifications	if (error == B_OK) {		error = device.CommitModifications();		if (error != B_OK)			printf("Committing modifications failed: %s\n", strerror(error));	}	wait_for_jobs();//	printf("\nDevice after cancelling the changes:\n");	printf("\nDevice after committing the changes:\n");	device.VisitEachDescendant(&visitor);	// for userland testing only	KDiskDeviceManager::DeleteDefault();}